summary refs log tree commit diff
path: root/tools
diff options
context:
space:
mode:
authorNguyễn Gia Phong <cnx@loang.net>2024-02-29 23:20:04 +0900
committerNguyễn Gia Phong <cnx@loang.net>2024-03-01 05:27:39 +0900
commit63ac01380080200d38f16795a64b62a4f2cd680a (patch)
tree51bc0d8ed353ec0cb853ac721e54e333452ad30a /tools
parentf6c6302192bfc6f1bfba253367317cdb52ba4370 (diff)
downloadroux-63ac01380080200d38f16795a64b62a4f2cd680a.tar.gz
Port test runner to Zig
Diffstat (limited to 'tools')
-rwxr-xr-xtools/test.sh220
1 files changed, 0 insertions, 220 deletions
diff --git a/tools/test.sh b/tools/test.sh
deleted file mode 100755
index 23c6663..0000000
--- a/tools/test.sh
+++ /dev/null
@@ -1,220 +0,0 @@
-#!/bin/sh
-
-dir=`dirname "$0"`
-bin=$dir/../qbe
-binref=$dir/../qbe.ref
-
-tmp=/tmp/qbe.zzzz
-
-drv=$tmp.c
-asm=$tmp.s
-asmref=$tmp.ref.s
-exe=$tmp.exe
-out=$tmp.out
-
-init() {
-	case "$TARGET" in
-	arm64)
-		for p in aarch64-linux-musl aarch64-linux-gnu
-		do
-			cc="$p-gcc -no-pie -static"
-			qemu="qemu-aarch64"
-			if
-				$cc -v >/dev/null 2>&1 &&
-				$qemu -version >/dev/null 2>&1
-			then
-				if sysroot=$($cc -print-sysroot) && test -n "$sysroot"
-				then
-					qemu="$qemu -L $sysroot"
-				fi
-				break
-			fi
-			cc=
-		done
-		if test -z "$cc"
-		then
-			echo "Cannot find arm64 compiler or qemu."
-			exit 1
-		fi
-		bin="$bin -t arm64"
-		;;
-	rv64)
-		for p in riscv64-linux-musl riscv64-linux-gnu
-		do
-			cc="$p-gcc -no-pie -static"
-			qemu="qemu-riscv64"
-			if
-				$cc -v >/dev/null 2>&1 &&
-				$qemu -version >/dev/null 2>&1
-			then
-				if sysroot=$($cc -print-sysroot) && test -n "$sysroot"
-				then
-					qemu="$qemu -L $sysroot"
-				fi
-				break
-			fi
-			cc=
-		done
-		if test -z "$cc"
-		then
-			echo "Cannot find riscv64 compiler or qemu."
-			exit 1
-		fi
-		bin="$bin -t rv64"
-		;;
-	"")
-		case `uname` in
-		*Darwin*)
-			cc="cc"
-			;;
-		*OpenBSD*)
-			cc="cc -nopie -lpthread"
-			;;
-		*FreeBSD*)
-			cc="cc -lpthread"
-			;;
-		*)
-			cc="${CC:-cc}"
-			ccpost="-lpthread"
-			;;
-		esac
-		TARGET=`$bin -t?`
-		;;
-	*)
-		echo "Unknown target '$TARGET'."
-		exit 1
-		;;
-	esac
-}
-
-cleanup() {
-	rm -f $drv $asm $exe $out
-}
-
-extract() {
-	WHAT="$1"
-	FILE="$2"
-
-	awk "
-		/^# >>> $WHAT/ {
-			p = 1
-			next
-		}
-		/^# <<</ {
-			p = 0
-		}
-		p
-	" $FILE \
-	| sed -e 's/# //' \
-	| sed -e 's/#$//'
-}
-
-once() {
-	t="$1"
-
-	if ! test -f $t
-	then
-		echo "invalid test file $t" >&2
-		exit 1
-	fi
-
-	if
-		sed -e 1q $t |
-		grep "skip.* $TARGET\( .*\)\?$" \
-		>/dev/null
-	then
-		return 0
-	fi
-
-	printf "%-45s" "$(basename $t)..."
-
-	if ! $bin -o $asm $t
-	then
-		echo "[qbe fail]"
-		return 1
-	fi
-
-	if test -x $binref
-	then
-		$binref -o $asmref $t 2>/dev/null
-	fi
-
-	extract driver $t > $drv
-	extract output $t > $out
-
-	if test -s $drv
-	then
-		src="$drv $asm"
-	else
-		src="$asm"
-	fi
-
-	if ! $cc -g -o $exe $src $ccpost
-	then
-		echo "[cc fail]"
-		return 1
-	fi
-
-	if test -s $out
-	then
-		$qemu $exe a b c | diff -u - $out
-		ret=$?
-		reason="output"
-	else
-		$qemu $exe a b c
-		ret=$?
-		reason="returned $ret"
-	fi
-
-	if test $ret -ne 0
-	then
-		echo "[$reason fail]"
-		return 1
-	fi
-
-	echo "[ok]"
-
-	if test -f $asmref && ! cmp -s $asm $asmref
-	then
-		loc0=`wc -l $asm    | cut -d' ' -f1`
-		loc1=`wc -l $asmref | cut -d' ' -f1`
-		printf "    asm diff: %+d\n" $(($loc0 - $loc1))
-		return 0
-	fi
-}
-
-#trap cleanup TERM QUIT
-
-init
-
-if test -z "$1"
-then
-	echo "usage: tools/test.sh {all, SSAFILE}" 2>&1
-	exit 1
-fi
-
-case "$1" in
-"all")
-	fail=0
-	count=0
-	for t in $dir/../test/[!_]*.ssa
-	do
-		once $t
-		fail=`expr $fail + $?`
-		count=`expr $count + 1`
-	done
-	if test $fail -ge 1
-	then
-		echo
-		echo "$fail of $count tests failed!"
-	else
-		echo
-		echo "All is fine!"
-	fi
-	exit $fail
-	;;
-*)
-	once $1
-	exit $?
-	;;
-esac