-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 [BasicC] 'inter/Tests/C' -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 step: inter/Tangled/inter $O -binary $B >$T 2>&1 or: 'produced errors in inter' $T step: inter/Tangled/inter $B -textual $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 [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: $I = $PATH/_I6_Results_Ideal/$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: $IC = $PATH/_C_Results_Ideal/$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 set: $AOC = $PATH/_C_Output_Actual/$CASE.txt set: $AIC = $PATH/_C_Output_Ideal/$CASE.txt mkdir: $PATH/_I6_Results_Actual mkdir: $PATH/_I6_Results_Ideal 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_Results_Ideal mkdir: $PATH/_C_Console mkdir: $PATH/_C_Object_Code mkdir: $PATH/_C_Output_Actual mkdir: $PATH/_C_Output_Ideal step: inter/Tangled/inter -architecture 16d -variable *in=$O -variable *out=$A -pipeline-file $P >$T 2>&1 or: 'failed to produce output' $T match text: $A $I or: 'produced incorrect I6 code' step: inter/Tangled/inter -architecture 16d -variable *in=$O -variable *out=$AC -pipeline-file $PC >$TC 2>&1 or: 'failed to produce output' $T ! match text: $AC $IC ! or: 'produced incorrect C code' step: clang -std=c99 -c -o $OC $AC -I $I7CLIB >$CTC 2>&1 or: 'failed to compile C' $CTC step: clang -g -o $XC $OC >$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 = -E2SDwv8x step: $I6 `$I6OPTIONS $A $X >$CT 2>&1 or: 'failed to pass through Inform 6' $CT set: $INT = inform6/Tests/Assistants/dumb-frotz/dumb-frotz set: $INTNAME = dumb-frotz set: $INTOPTIONS = -w 1000 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' ! Annoyingly, I can't get dumb-frotz to output text on small programs, ! so I'm having to skip this: ! match text: $AO $AOC ! or: 'I6 and C programs disagreed' -end -recipe [BasicC] set: $I7 = inform7/Tangled/inform7 set: $INTERNAL = inform7/Internal set: $WORKSPACE = intest/Workspace set: $ZINT = inform6/Tests/Assistants/dumb-frotz/dumb-frotz set: $GINT = inform6/Tests/Assistants/dumb-glulx/glulxe/glulxe set: $I7CLIB = inform7/Internal/Miscellany set: $VM = G set: $FORMAT = ulx set: $I6OPTIONS = -E2SDwGx set: $INT = $GINT set: $INTNAME = dumb-glulxe set: $INTOPTIONS = -u -q extract: $WORK/Example.inform/Source/story.ni $VM mkdir: $WORK/Transient step: find $WORK/Transient -mindepth 1 -delete mkdir: $PATH/_Results_Actual mkdir: $PATH/_Results_Ideal mkdir: $PATH/_Textual mkdir: $PATH/_C set: $I7OPTIONS = -kit BasicInformKit -format=$FORMAT -no-progress -fixtime -rng -sigils -log nothing -external inform7/Tests -transient $WORK/Transient -no-index -internal $INTERNAL set: $PIPELINE = test_basic_c set: $I7CONSOLE = $WORK/Example.inform/Build/i7_output.txt set: $TOUT = $PATH/_Textual/$CASE.intert set: $COUT = $PATH/_C/$CASE.c set: $OFILE = $WORK/Example.inform/Build/$CASE.o step: $I7 `$I7OPTIONS -format=$FORMAT -project $WORK/Example.inform -variable *tout=$TOUT -variable *cout=$COUT -pipeline $PIPELINE >$I7CONSOLE 2>&1 or: 'failed with Problem message(s)' $I7CONSOLE set: $CCCONSOLE = $WORK/Example.inform/Build/cc_output.txt set: $LINKCONSOLE = $WORK/Example.inform/Build/link_output.txt set: $STORYFILE = $WORK/Example.inform/Build/final step: clang -std=c99 -c -o $OFILE $COUT -ferror-limit=10000 -Wno-parentheses-equality -I $I7CLIB >$CCCONSOLE 2>&1 or: 'failed to compile C' $CCCONSOLE step: clang -g -o $STORYFILE $OFILE -ferror-limit=10000 >$LINKCONSOLE 2>&1 or: 'failed to link C' $LINKCONSOLE set: $A = $PATH/_Results_Actual/$CASE.txt set: $I = $PATH/_Results_Ideal/$CASE.txt step: $STORYFILE >$A 2>&1 or: 'failed to run C program' $A show: $A match text: $A $I or: 'C program misbehaved' pass: 'passed' -end