From b5460057394ccb7b079c994881a2c27ae61784fe Mon Sep 17 00:00:00 2001
From: Antonio Terceiro <terceiro@debian.org>
Date: Wed, 19 Feb 2025 19:55:59 -0300
Subject: [PATCH 2/3] tools/test.sh: allow running against installed package

If $bin is set in the environment, use it instead of using `qbe` from
the source tree. The same for $binref. This supports the following use
cases:

- I have a qbe package installed, and I want to test my local changes
  with the installed packages as a reference:

  $ binref=/usr/bin/qbe ./tools/test.sh all

- I want to test the installed qbe against new tests that I have
  written, to reproduce a bug:

  $ bin=/usr/bin/qbe ./tools/test.sh test/newtest.ssa

In Debian, we also run tests against the installed package when
dependencies change, etc. We will also run on several architectures
where the necessary cross compilers might not be available. So make
tests that cannot be run because of a missing compiler exit with 77,
signaling to Debian's autopkgtest that the test is skipped.
---
 tools/test.sh | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/tools/test.sh b/tools/test.sh
index 0eb6593..f8025c4 100755
--- a/tools/test.sh
+++ b/tools/test.sh
@@ -1,8 +1,12 @@
 #!/bin/sh
 
 dir=`dirname "$0"`
-bin=$dir/../qbe
-binref=$dir/../qbe.ref
+if [ -z "${bin:-}" ]; then
+	bin=$dir/../qbe
+fi
+if [ -z "${binref:-}" ]; then
+	binref=${bin}.ref
+fi
 
 tmp=/tmp/qbe.zzzz
 
@@ -34,7 +38,7 @@ init() {
 		if test -z "$cc"
 		then
 			echo "Cannot find arm64 compiler or qemu."
-			exit 1
+			exit 77
 		fi
 		bin="$bin -t arm64"
 		;;
@@ -58,7 +62,7 @@ init() {
 		if test -z "$cc"
 		then
 			echo "Cannot find riscv64 compiler or qemu."
-			exit 1
+			exit 77
 		fi
 		bin="$bin -t rv64"
 		;;
@@ -82,7 +86,7 @@ init() {
 		if test -z "$cc"
 		then
 			echo "Cannot find x86_64 compiler or qemu."
-			exit 1
+			exit 77
 		fi
 		bin="$bin -t amd64_sysv"
 		;;
@@ -106,7 +110,7 @@ init() {
 		;;
 	*)
 		echo "Unknown target '$TARGET'."
-		exit 1
+		exit 77
 		;;
 	esac
 }
-- 
2.47.2

