tests.sh / test_compilers.sh: test compilers and flags on the same system - sfeed_tests - sfeed tests and RSS and Atom files
(HTM) git clone git://git.codemadness.org/sfeed_tests
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit d283a18f897a8c185dea4adecfa8629cdb841c2b
(DIR) parent f3a9c287203b71c6d25de07d48e7b75064f97f38
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 14 Dec 2025 13:24:31 +0100
tests.sh / test_compilers.sh: test compilers and flags on the same system
Small wrapper script to easy regress test compilers and combinations on the
same system.
Allow to override sfeed and program1/program2 (for comparison/regress testing).
This tests gcc, clang, tcc and musl-gcc with -O0, -O1, -O2, -Os (most common
flags) so far.
All tests pass: just wanted to make sure and also make it easy to retest it in
the future.
Diffstat:
A test_compilers.sh | 39 +++++++++++++++++++++++++++++++
M tests.sh | 20 +++++---------------
2 files changed, 44 insertions(+), 15 deletions(-)
---
(DIR) diff --git a/test_compilers.sh b/test_compilers.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+curdir="$(pwd)"
+
+for cc in gcc clang tcc musl-gcc; do
+ for flags in "-O0" "-O1" "-O2" "-Os"; do
+
+ cd "$curdir"
+ if ! test -d "sfeed"; then
+ echo "sfeed repo must exist in ${curdir}/sfeed" >&2
+ exit 1
+ fi
+
+ cd sfeed || exit 1
+ bin="sfeed"
+ make clean || exit 2
+ make CC="$cc" CFLAGS="$flags" sfeed || exit 2
+
+ if ! test -f "${curdir}/sfeed/sfeed"; then
+ echo "compiled binary not found" >&2
+ exit 2
+ fi
+
+ # current version
+ PROGRAM1="$HOME/p/sfeed/sfeed"
+ # compiled version
+ PROGRAM2="${curdir}/sfeed/sfeed"
+
+ cd ~/p/sfeed_tests
+ PROGRAM1="$PROGRAM1" PROGRAM2="$PROGRAM2" ./tests.sh run2
+ if test "$?" -ne "0"; then
+ exit 3
+ fi
+
+# break # DEBUG
+ done
+# break # DEBUG
+done
+
(DIR) diff --git a/tests.sh b/tests.sh
@@ -1,22 +1,10 @@
#!/bin/sh
# script for running tests/coverage/etc. Tuned for my system.
-#sfeed="bins/sfeed_gcc_O2_1.0"
+sfeed="${SFEED:-$HOME/p/sfeed/sfeed}"
-# installed version
-#sfeed="sfeed"
-
-# dev version
-sfeed="$HOME/p/sfeed/sfeed"
-
-# dev version (profiled coverage).
-#sfeed="$HOME/p/sfeed/sfeed"
-
-#program1="bins/sfeed_gcc_O2_0.9.10"
-#program1="bins/sfeed_gcc_O2_1.0"
-program1="bins/sfeed_gcc_O2_2.0"
-#program1="sfeed"
-program2="$HOME/p/sfeed/sfeed"
+program1="${PROGRAM1:-/tmp/sfeed/sfeed}"
+program2="${PROGRAM2:-$HOME/p/sfeed/sfeed}"
# force non-builtin printf, requires support for non-POSIX \x.
alias printf='/bin/printf'
@@ -123,6 +111,8 @@ run() {
# run and compare with program versions (don't compare to recorded expected results).
run2() {
+ echo "$program1 vs $program2"
+
status=0
count=0
baseurl=""