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=""