42 lines
543 B
Bash
42 lines
543 B
Bash
|
#!/bin/sh
|
||
|
|
||
|
#
|
||
|
# tests a binary
|
||
|
# against a output and an exit code
|
||
|
#
|
||
|
|
||
|
dir="$(dirname "$0")"
|
||
|
|
||
|
msim="$dir/../bin/msim/msim"
|
||
|
bin="$dir/../test/msim/$1"
|
||
|
|
||
|
out=$(cat "$dir/../test/out/$1")
|
||
|
status=$(cat "$dir/../test/out/$1.status")
|
||
|
|
||
|
temp=$(mktemp)
|
||
|
|
||
|
$msim $bin &> $temp
|
||
|
|
||
|
rstatus="$?"
|
||
|
rout=$(cat $temp)
|
||
|
rm $temp
|
||
|
|
||
|
res=0
|
||
|
|
||
|
if [ "$out" != "$rout" ]; then
|
||
|
res=1
|
||
|
fi
|
||
|
|
||
|
if [ "$status" != "$rstatus" ]; then
|
||
|
res=1
|
||
|
fi
|
||
|
|
||
|
if [ $res = 0 ]; then
|
||
|
printf "\033[32mPASSED\033[0m\n"
|
||
|
else
|
||
|
printf "\033[31mFAILED\033[0m\n"
|
||
|
diff <(echo $out) <(echo $rout)
|
||
|
fi
|
||
|
|
||
|
exit $res
|