use run_tests.sh to drive builds.yml

This commit is contained in:
Nikita Smith
2026-06-02 12:10:21 -07:00
committed by Ryan Fleury
parent 1de3be3b8b
commit 56c5036593
3 changed files with 48 additions and 12 deletions
Regular → Executable
+45 -8
View File
@@ -3,23 +3,60 @@ set -eu
cd "$(dirname "$0")"
target_values=(raddbg raddbg_non_graphical radlink radbin torture)
# TODO: gcc
cc_values=(clang)
cc_values=(clang gcc)
mode_values=(debug release)
run_torture=1
torture_args=()
while [[ $# -gt 0 ]]; do
case "$1" in
--)
shift
torture_args=("$@")
break
;;
clang|clang-*)
cc_values=("$1")
shift
;;
gcc|gcc-*)
cc_values=("$1")
shift
;;
debug|release)
mode_values=("$1")
shift
;;
no_torture)
run_torture=0
shift
;;
*)
echo "usage: $0 [clang|clang-*|gcc|gcc-*] [debug|release] [no_torture] [-- <torture args>]"
exit 1
;;
esac
done
for m in "${mode_values[@]}"; do
for c in "${cc_values[@]}"; do
build_cc=clang
if [[ "$c" == gcc* ]]; then build_cc=gcc; fi
# nuke artifacts from last run
rm -rf build/torture_artifacts
rm -f build/metagen
for t in "${target_values[@]}"; do
rm -f "build/$t"
done
./build.sh meta "$c" "$m" "${target_values[@]}"
# build targets
CC="$c" ./build.sh meta "$build_cc" "$m" "${target_values[@]}"
# run torture
cd build
./torture "$@"
cd ..
# run torture from build folder
if [[ "$run_torture" == "1" ]]; then
(cd build && ./torture "${torture_args[@]}")
fi
done
done