Skip to content

Commit

Permalink
testme.sh: improve a bit
Browse files Browse the repository at this point in the history
- add parameter when calling that will be forwarded to make
  (e.g. to give the correct -j# option for your CPU)
- timeout after running the tests for 2 minutes, assuming something went
  wrong, but don't cancel the rest of the tests
- add compilation with clang (if available on the system)
  • Loading branch information
sjaeckel committed Apr 18, 2015
1 parent 5eb6ebb commit ac4550c
Showing 1 changed file with 76 additions and 18 deletions.
94 changes: 76 additions & 18 deletions testme.sh
@@ -1,24 +1,82 @@
#!/bin/bash -e
#!/bin/bash
#
# return values of this script are:
# 0 success
# 128 a test failed
# >0 the number of timed-out tests

set -e

ret=0
TEST_CFLAGS=""

if [ "$#" == "1" ]
then
MAKE_OPTIONS=$1
fi

_die()
{
echo "error $2 while $1"
if [ "$2" != "124" ]
then
exit 128
else
echo "assuming timeout while running test - continue"
ret=$(( $ret + 1 ))
fi
}

_runtest()
{
echo "Run test $1 $2"
echo -ne " Compile $1 $2"
make clean > /dev/null
CC="$1" CFLAGS="$2" make test_standalone -j9 > /dev/null 2>test_gcc_errors.txt
./test > test_$(echo ${1}${2} | tr ' ' '_').txt
CC="$1" CFLAGS="$2 $TEST_CFLAGS" make test_standalone $MAKE_OPTIONS > /dev/null 2>test_errors.txt
echo -e "\rRun test $1 $2"
timeout --foreground 120 ./test > test_$(echo ${1}${2} | tr ' ' '_').txt || _die "running tests" $?
}

_runtest "gcc" ""
_runtest "gcc" "-DMP_8BIT"
_runtest "gcc" "-DMP_16BIT"
_runtest "gcc" "-DMP_32BIT"
_runtest "gcc -m32" ""
_runtest "gcc -m32" "-DMP_8BIT"
# mh, this configuration does not work! it gets stuck at
# Testing (not safe-prime): 46 bits
#_runtest "gcc -m32" "-DMP_16BIT"
_runtest "gcc -m32" "-DMP_32BIT"
_runtest "gcc -mx32" ""
_runtest "gcc -mx32" "-DMP_8BIT"
_runtest "gcc -mx32" "-DMP_16BIT"
_runtest "gcc -mx32" "-DMP_32BIT"
compilers=( clang gcc )

echo "uname="$(uname -a)

for i in "${compilers[@]}"
do
if [ -z "$(which $i)" ]
then
continue
fi
compiler_version=$(echo "$i="$($i -dumpversion))
if [ "$compiler_version" == "clang=4.2.1" ]
then
# one of my versions of clang complains about some stuff in stdio.h and stdarg.h ...
TEST_CFLAGS="-Wno-typedef-redefinition"
else
TEST_CFLAGS=""
fi
echo $compiler_version
_runtest "$i" ""
_runtest "$i" "-DMP_8BIT"
_runtest "$i" "-DMP_16BIT"
_runtest "$i" "-DMP_32BIT"
_runtest "$i -m32" ""
_runtest "$i -m32" "-DMP_8BIT"
_runtest "$i -m32" "-DMP_16BIT"
_runtest "$i -m32" "-DMP_32BIT"
if [ "$i" != "clang" ]
then
_runtest "$i -mx32" ""
_runtest "$i -mx32" "-DMP_8BIT"
_runtest "$i -mx32" "-DMP_16BIT"
_runtest "$i -mx32" "-DMP_32BIT"
fi
done

if [ "$ret" == "0" ]
then
echo "Tests successful"
else
echo "$ret tests timed out"
fi

exit $ret

0 comments on commit ac4550c

Please sign in to comment.