From f7ab20680b84ff16936bff17def5f9a849ff57cb Mon Sep 17 00:00:00 2001 From: Antonio Terceiro Date: Sun, 23 Feb 2025 09:48:22 -0300 Subject: 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 } -- cgit v1.2.3