3 dir
=`cd $(dirname "$0"); pwd`
5 binref
=$dir/..
/obj
/qbe.ref
16 echo "int main() { }" |
$1 -x c
-o /dev
/null
- >/dev
/null
2>&1
23 qemucmd
=qemu-system-aarch64
24 if ! $qemucmd -version >/dev
/null
2>&1
28 for p
in aarch64-linux-musl aarch64-linux-gnu
31 qemu
="$qemucmd -L /usr/$p"
33 $cc -v >/dev
/null
2>&1 &&
34 $qemu -version >/dev
/null
2>&1 &&
43 echo "Cannot find arm64 compiler or qemu."
61 testcc
"$cc" || cc
="cc"
66 echo "Unknown target '$TARGET'."
73 rm -f $drv $asm $exe $out
99 echo "invalid test file $t" >&2
105 grep "skip.* $TARGET\( .*\)\?$" \
111 printf "%-45s" "$(basename $t)..."
121 $binref -o $asmref $t 2>/dev
/null
124 extract driver
$t > $drv
125 extract output
$t > $out
134 if ! $cc -g -o $exe $src
142 $qemu $exe a b c |
diff - $out
148 reason
="returned $RET"
153 echo "[$reason fail]"
159 if test -f $asmref && ! cmp -s $asm $asmref
161 loc0
=`wc -l $asm | cut -d' ' -f1`
162 loc1
=`wc -l $asmref | cut -d' ' -f1`
163 printf " asm diff: %+d\n" $
(($loc0 - $loc1))
168 #trap cleanup TERM QUIT
174 echo "usage: tools/test.sh {all, SSAFILE}" 2>&1
181 for t
in $dir/..
/test
/[!_
]*.ssa
184 fail
=`expr $fail + $?`
189 echo "$fail test(s) failed!"