ref: bccb73dc9a1d19bf472c9ce776cc6ee76cef05d5
dir: /test/runtest.rc/
#!/bin/rc
passed=''
failed=''
npassed=0
nfailed=0
fn build {
rm -f $1 $1^.6 $1^.use
../mbld/mbld -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