aboutsummaryrefslogtreecommitdiff
path: root/util/tests.sh
diff options
context:
space:
mode:
Diffstat (limited to 'util/tests.sh')
-rwxr-xr-xutil/tests.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/util/tests.sh b/util/tests.sh
new file mode 100755
index 0000000..1ee2183
--- /dev/null
+++ b/util/tests.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# Set of compilers and profiles for testing
+compilers="gcc clang"
+profiles="Debug Release Asan"
+
+# Build and run tests
+build_and_run() {
+ compiler=$1
+ mode=$2
+
+ # Reconfigure project
+ rm -rf build
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=${mode} -DCMAKE_C_COMPILER=${compiler}
+ if [ $? -ne 0 ]; then
+ return 1
+ fi
+
+ # Build
+ cmake --build build
+ if [ $? -ne 0 ]; then
+ return 1
+ fi
+
+ # Test
+ ctest -T test --test-dir build
+ if [ $? -ne 0 ]; then
+ return 1
+ fi
+
+ return 0
+}
+
+# For each compiler and profile - run test
+for compiler in $compilers; do
+ for profile in $profiles; do
+ if ! build_and_run $compiler $profile; then
+ echo "Tests failed for $compiler $profile"
+ exit 1
+ fi
+ done
+done