utils/test-pkg: stop on sigint

When SIGINT is issued for a package test run, it will abort the active
toolchain run then proceed to the next. If a user is running the entire
default toolchain set (`-a`), they can be required to invoke SIGINT
multiple times to stop a run.

This commit uses a SIGINT hook to flag a shutdown state and stop further
attempts to run anymore toolchain tests.

Signed-off-by: James Knight <git@jdknight.me>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit 8f09106e81)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
James Knight
2025-07-01 15:06:45 -04:00
committed by Thomas Perale
parent 074e005e42
commit e0275af534

View File

@@ -3,6 +3,11 @@ set -e
TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv'
TEMP_CONF=""
abort=0
do_abort() {
abort=1
}
do_clean() {
if [ -n "${TEMP_CONF}" ]; then
@@ -67,7 +72,8 @@ main() {
esac
done
trap do_clean INT TERM HUP EXIT
trap do_abort INT
trap do_clean TERM HUP EXIT
if [ -z "${cfg}" ]; then
pkg_br_name="${pkg//-/_}"
@@ -139,6 +145,10 @@ main() {
(3) : $((nb_legal++)); printf "FAILED\n";;
(4) : $((nb_show++)); printf "FAILED\n";;
esac
if [ "${abort}" -eq 1 ]; then
return 1
fi
done
printf "%d builds, %d skipped, %d build failed, %d legal-info failed, %d show-info failed\n" \