3 dir
=`cd $(dirname "$0"); pwd`
16 echo "int main() { }" |
$1 -x c
-o /dev
/null
- >/dev
/null
2>&1
23 for p
in aarch64-linux-musl aarch64-linux-gnu
25 cc
="$p-gcc -no-pie -static"
28 $cc -v >/dev
/null
2>&1 &&
29 $qemu -version >/dev
/null
2>&1
31 if sysroot
=$
($cc -print-sysroot) && test -n "$sysroot"
33 qemu
="$qemu -L $sysroot"
41 echo "Cannot find arm64 compiler or qemu."
47 for p
in riscv64-linux-musl riscv64-linux-gnu
49 cc
="$p-gcc -no-pie -static"
52 $cc -v >/dev
/null
2>&1 &&
53 $qemu -version >/dev
/null
2>&1
55 if sysroot
=$
($cc -print-sysroot) && test -n "$sysroot"
57 qemu
="$qemu -L $sysroot"
65 echo "Cannot find riscv64 compiler or qemu."
76 cc
="cc -nopie -lpthread"
82 cc
="${CC:-cc} -lpthread"
83 testcc
"$cc" || cc
="${CC:-cc}"
89 echo "Unknown target '$TARGET'."
96 rm -f $drv $asm $exe $out
122 echo "invalid test file $t" >&2
128 grep "skip.* $TARGET\( .*\)\?$" \
134 printf "%-45s" "$(basename $t)..."
144 $binref -o $asmref $t 2>/dev
/null
147 extract driver
$t > $drv
148 extract output
$t > $out
157 if ! $cc -g -o $exe $src
165 $qemu $exe a b c |
diff -u - $out
171 reason
="returned $ret"
176 echo "[$reason fail]"
182 if test -f $asmref && ! cmp -s $asm $asmref
184 loc0
=`wc -l $asm | cut -d' ' -f1`
185 loc1
=`wc -l $asmref | cut -d' ' -f1`
186 printf " asm diff: %+d\n" $
(($loc0 - $loc1))
191 #trap cleanup TERM QUIT
197 echo "usage: tools/test.sh {all, SSAFILE}" 2>&1
204 for t
in $dir/..
/test
/[!_
]*.ssa
207 fail
=`expr $fail + $?`
212 echo "$fail test(s) failed!"