ref: ac7fed3ddfa3caf2e2c97f221e023b75ec9693ac
dir: /test/runtest.rc/
#!/bin/rc passed='' failed='' npassed=0 nfailed=0 fn build { rm -f $1 $1^.6 $1^.use ../myrbuild/6.out -b $1 -C../6/6.out -M../muse/6.out -I../libstd -r../rt/_myrrt.6 $1^.myr } fn pass { passed=$passed ^ ' ' ^ $1 } fn fail { echo FAIL: $1 failed=$failed ^ ' ' ^ $1 } fn expectstatus { st='*'^$2 if(~ $2 0) st='''''' ./$1 $3 if(eval '~ $status '$st) pass $1 if not fail $1 } fn expectprint { if(~ `{./$1 $3} $2) pass $1 if not fail $1 } fn expectcmp { t=/tmp/myrtest-^$1 rm -f $t ./$1 $3 > $t if (cmp $t data/$1-expected) pass $1 if not fail $1 } fn expectfcmp { t=/tmp/myrtest-^$1 rm -f $t ./$1 $3 if (cmp $2 data/$1-expected) pass $1 if not fail $1 } fn B { test=$1; shift type=$1; shift res=$1; shift build $test switch($type) { case E expectstatus $test $res case P expectprint $test $res case C expectcmp $test $res case F expectfcmp $test $res } } fn F { @{ build $1 } > /dev/null if (~ $status ''/) fail $1 if not pass $1 } . tests echo PASSED ^ ' ' ^ $passed if(~ $failed '') echo SUCCESS if not echo FAILURES ^ ' ' ^ $failed