From 800231ee93af6b16ac4202bc39426e78f006ab4f Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 13 May 2020 12:18:42 -0400 Subject: [PATCH] Honor $CC and $CXX in test runner (#132) --- tests/run.sh | 27 +++++++++++++++++++++------ tests/testcase.sh | 4 ++-- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/tests/run.sh b/tests/run.sh index 52f3ecc..8d5a993 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -4,6 +4,14 @@ set -ueo pipefail # Top-level test runner. Usage is "run.sh" to run tests in compile-only mode, # or "run.sh " where is a WASI-capable runtime to run the # tests in full compile and execute mode. +# +# By default this script will look for `clang` and `clang++` in $PATH and +# assume that they are correctly configured with the sysroot in the default +# location. Alternatively, exporting $CC and $CXX allow more flexibility. e.g: +# +# export CXX="/bin/clang++ --sysroot /share/wasi-sysroot" +# export CCC="/bin/clang --sysroot /share/wasi-sysroot" +# # Determine the wasm runtime to use, if one is provided. if [ $# -gt 0 ]; then @@ -12,30 +20,37 @@ else runwasi="" fi -cd compile-only +testdir=$(dirname $0) +CC=${CC:=clang} +CXX=${CXX:=clang++} + +echo $CC +echo $CXX + +cd $testdir/compile-only for options in -O0 -O2 "-O2 -flto"; do echo "===== Testing compile-only with $options =====" for file in *.c; do echo "Testing compile-only $file..." - ../testcase.sh "" clang "$options" "$file" + ../testcase.sh "" "$CC" "$options" "$file" done for file in *.cc; do echo "Testing compile-only $file..." - ../testcase.sh "" clang++ "$options" "$file" + ../testcase.sh "" "$CXX" "$options" "$file" done done cd - >/dev/null -cd general +cd $testdir/general for options in -O0 -O2 "-O2 -flto"; do echo "===== Testing with $options =====" for file in *.c; do echo "Testing $file..." - ../testcase.sh "$runwasi" clang "$options" "$file" + ../testcase.sh "$runwasi" "$CC" "$options" "$file" done for file in *.cc; do echo "Testing $file..." - ../testcase.sh "$runwasi" clang++ "$options" "$file" + ../testcase.sh "$runwasi" "$CXX" "$options" "$file" done done cd - >/dev/null diff --git a/tests/testcase.sh b/tests/testcase.sh index 2589be8..38db9a3 100755 --- a/tests/testcase.sh +++ b/tests/testcase.sh @@ -7,7 +7,7 @@ set -ueo pipefail # Command-line parsing; this script is meant to be run from a higher-level # script, so don't do anything fancy. runwasi="$1" -clang="$2" +compiler="$2" options="$3" input="$4" @@ -27,7 +27,7 @@ fi echo "Testing $input..." # Compile the testcase. -"$clang" $options $file_options "$input" -o "$wasm" +$compiler $options $file_options "$input" -o "$wasm" # If we don't have a runwasi command, we're just doing compile-only testing. if [ "$runwasi" == "" ]; then