1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-01 06:24:58 +03:00
inform7/inter/Tests/inter.intest
Philip Chimento e811fc28d2 Put linker flags at the end of the linker command line
On some systems, the libraries must come after the object files that they
reference.
2022-04-30 13:21:29 -07:00

236 lines
6.2 KiB
Plaintext

-set CCOMPILER 'set-me-to-some-c-compiler-please'
-set CLINKER 'set-me-to-some-c-linker-please'
-set EXESUFFIX ''
-set LINKFLAGS ''
-if MacOS -set CCOMPILER 'clang -g -std=c11 -ferror-limit=10000 -Wno-unused-value -c'
-if MacOS -set CLINKER 'clang -g -ferror-limit=10000'
-if Windows -set CCOMPILER 'x86_64-w64-mingw32-clang -g -std=c11 -ferror-limit=10000 -Wno-unused-value -c'
-if Windows -set CLINKER 'x86_64-w64-mingw32-clang -g -ferror-limit=10000'
-if Windows -set EXESUFFIX '.exe'
-if linux -set CCOMPILER 'gcc -g -std=c11 -fmax-errors=10000 -c'
-if linux -set CLINKER 'gcc -g'
-if linux -set LINKFLAGS '-lm -pthread'
-cases [Valid] 'inter/Tests/Valid'
-cases [Invalid] 'inter/Tests/Invalid'
-cases [General] 'inter/Tests/General'
-cases [Duplex] 'inter/Tests/Duplex'
-cases [PipelineErrors] 'inter/Tests/PipelineErrors'
-cases [Toy] 'inter/Tests/Toys'
-cases [Kit] 'inter/Tests/Kits'
-groups 'inter/Tests/Groups'
-recipe [Valid]
set: $O = $PATH/$CASE.intert
set: $A = $PATH/_Textual/$CASE.intert
set: $B = $PATH/_Binary/$CASE.interb
set: $T = $PATH/_Console/$CASE.txt
mkdir: $PATH/_Textual
mkdir: $PATH/_Binary
mkdir: $PATH/_Console
debugger: lldb -f inter/Tangled/inter -- $O -format=binary -o $B -crash
step: inter/Tangled/inter $O -format=binary -o $B >$T 2>&1
or: 'produced errors in inter' $T
step: inter/Tangled/inter $B -format=text -o $A >$T 2>&1
or: 'produced errors in inter' $T
show: $A
match text: $A $O
or: 'produced incorrect output'
-end
-recipe [Invalid]
set: $O = $PATH/$CASE.intert
set: $A = $PATH/_Results_Actual/$CASE.txt
set: $I = $PATH/_Results_Ideal/$CASE.txt
mkdir: $PATH/_Results_Actual
mkdir: $PATH/_Results_Ideal
fail step: inter/Tangled/inter $O >$A 2>&1
or: 'failed to produce error message' $A
show: $A
exists: $I
or: 'produced error(s), but no ideal transcript existed'
match platform text: $A $I
or: 'produced the wrong error message(s)'
-end
-recipe [General]
set: $O = $PATH/$CASE.intert
set: $P = $PATH/_Pipelines/$CASE.interpipeline
set: $A = $PATH/_Results_Actual/$CASE.txt
set: $I = $PATH/_Results_Ideal/$CASE.txt
set: $T = $PATH/_Console/$CASE.txt
mkdir: $PATH/_Results_Actual
mkdir: $PATH/_Results_Ideal
mkdir: $PATH/_Console
step: inter/Tangled/inter -architecture 16d -variable *in=$O -variable *out=$A -pipeline-file $P >$T 2>&1
or: 'failed to produce output' $T
show: $A
match text: $A $I
or: 'produced incorrect output'
-end
-recipe [Duplex]
set: $P = $PATH/$CASE.interpipeline
set: $OA = $PATH/_Pairs/$CASE+A.intert
set: $OB = $PATH/_Pairs/$CASE+B.intert
set: $BA = $PATH/_Binaries/$CASE+A.interb
set: $BB = $PATH/_Binaries/$CASE+B.interb
set: $AA = $PATH/_Results_Actual/$CASE+A.txt
set: $IA = $PATH/_Results_Ideal/$CASE+A.txt
set: $AB = $PATH/_Results_Actual/$CASE+B.txt
set: $IB = $PATH/_Results_Ideal/$CASE+B.txt
set: $T = $PATH/_Console/$CASE.txt
mkdir: $PATH/_Results_Actual
mkdir: $PATH/_Results_Ideal
mkdir: $PATH/_Console
mkdir: $PATH/_Binaries
step: inter/Tangled/inter -variable *inA=$OA -variable *inB=$OB -variable *binA=$BA -variable *binB=$BB -variable *outA=$AA -variable *outB=$AB -pipeline-file $P >$T 2>&1
or: 'failed to produce output' $T
show: $A
match text: $AA $IA
or: 'produced incorrect output on A'
match text: $AB $IB
or: 'produced incorrect output on B'
-end
-recipe [PipelineErrors]
set: $O = $PATH/$CASE.intert
set: $P = $PATH/$CASE.interpipeline
set: $A = $PATH/_Results_Actual/$CASE.txt
set: $I = $PATH/_Results_Ideal/$CASE.txt
mkdir: $PATH/_Results_Actual
mkdir: $PATH/_Results_Ideal
fail step: inter/Tangled/inter -variable *in=$O -pipeline-file $P >$A 2>&1
or: 'failed to produce errors' $A
show: $A
match platform text: $A $I
or: 'produced incorrect errors'
-end
-recipe [Kit]
set: $O = $PATH/$CASE.intert
set: $K = $PATH/_kits/$CASE
set: $A = $PATH/_Results_Actual/$CASE.txt
set: $I = $PATH/_Results_Ideal/$CASE.txt
mkdir: $PATH/_Results_Actual
mkdir: $PATH/_Results_Ideal
fail step: inter/Tangled/inter -architecture 16 -build-kit $K >$A 2>&1
or: 'failed to produce errors' $A
show: $A
match platform text: $A $I
or: 'produced incorrect errors'
-end
-recipe [Toy]
set: $I7CLIB = inform7/Internal/Miscellany
set: $O = $PATH/$CASE.intert
set: $P = $PATH/_Pipelines/toy_i6.interpipeline
set: $A = $PATH/_I6_Results_Actual/$CASE.txt
set: $T = $PATH/_I6_Console/$CASE.txt
set: $CT = $PATH/_I6_Console/compile-$CASE.txt
set: $X = $PATH/_I6_Object_Code/$CASE
set: $AO = $PATH/_I6_Output_Actual/$CASE.txt
set: $AI = $PATH/_I6_Output_Ideal/$CASE.txt
set: $PC = $PATH/_Pipelines/toy_c.interpipeline
set: $AC = $PATH/_C_Results_Actual/$CASE.c
set: $TC = $PATH/_C_Console/$CASE.txt
set: $OC = $PATH/_C_Object_Code/$CASE.o
set: $CTC = $PATH/_C_Console/compile-$CASE.txt
set: $LTC = $PATH/_C_Console/link-$CASE.txt
set: $XC = $PATH/_C_Object_Code/$CASE$$EXESUFFIX
set: $AOC = $PATH/_C_Output_Actual/$CASE.txt
set: $AIC = $PATH/_C_Output_Ideal/$CASE.txt
mkdir: $PATH/_I6_Results_Actual
mkdir: $PATH/_I6_Console
mkdir: $PATH/_I6_Object_Code
mkdir: $PATH/_I6_Output_Actual
mkdir: $PATH/_I6_Output_Ideal
mkdir: $PATH/_C_Results_Actual
mkdir: $PATH/_C_Console
mkdir: $PATH/_C_Object_Code
mkdir: $PATH/_C_Output_Actual
mkdir: $PATH/_C_Output_Ideal
step: inter/Tangled/inter -architecture 32d -variable *in=$O -variable *out=$A -pipeline-file $P >$T 2>&1
or: 'failed to produce output' $T
step: inter/Tangled/inter -architecture 32d -variable *in=$O -variable *out=$AC -pipeline-file $PC >$TC 2>&1
or: 'failed to produce output' $T
step: `$$CCOMPILER -o $OC $AC -I $I7CLIB >$CTC 2>&1
or: 'failed to compile C' $CTC
step: `$$CLINKER -o $XC $OC `$$LINKFLAGS >$LTC 2>&1
or: 'failed to link C' $LTC
step: $XC >$AOC 2>&1
or: 'failed to run C program' $AOC
match text: $AOC $AIC
or: 'C program misbehaved'
show: $AOC
set: $I6 = inform6/Tangled/inform6
set: $I6OPTIONS = -E2SDwGx
step: $I6 `$I6OPTIONS $A $X >$CT 2>&1
or: 'failed to pass through Inform 6' $CT
set: $INT = inform6/Tests/Assistants/dumb-glulx/glulxe/glulxe
set: $INTNAME = dumb-glulxe
set: $INTOPTIONS = -u -q
step: $INT `$INTOPTIONS $X >$AO 2>&1
or: 'unable to run $INTNAME (do you need to make interpreters?)'
match text: $AO $AI
or: 'I6 program misbehaved'
match text: $AO $AOC
or: 'I6 and C programs disagreed'
-end