Edit

kc3-lang/libtommath/testme.sh

Branch :

  • Show log

    Commit

  • Author : Steffen Jaeckel
    Date : 2015-11-12 01:34:28
    Hash : 5a15247b
    Message : improve testme.sh you can now do something like `COMPILERS="gcc-5" ./testme.sh`

  • testme.sh
  • #!/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 -ne " Compile $1 $2"
      make clean > /dev/null
      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" $?
    }
    
    compilers=( $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