-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