improve testme.sh
This commit is contained in:
parent
543ffc7a03
commit
2e3ed19c3d
140
testme.sh
140
testme.sh
|
@ -7,13 +7,45 @@
|
|||
|
||||
set -e
|
||||
|
||||
if [ -f /proc/cpuinfo ]
|
||||
then
|
||||
MAKE_JOBS=$(( ($(cat /proc/cpuinfo | grep processor | tail -n -1 | cut -d':' -f2) + 1) * 2 + 1 ))
|
||||
else
|
||||
MAKE_JOBS=8
|
||||
fi
|
||||
|
||||
ret=0
|
||||
TEST_CFLAGS=""
|
||||
|
||||
if [ "$#" == "1" ]
|
||||
then
|
||||
MAKE_OPTIONS=$1
|
||||
fi
|
||||
_help()
|
||||
{
|
||||
echo "Usage options for $(basename $0) [--with-cc=arg [other options]]"
|
||||
echo
|
||||
echo "Executing this script without any parameter will only run the default configuration"
|
||||
echo "that has automatically been determined for the architecture you're running."
|
||||
echo
|
||||
echo " --with-cc=* The compiler(s) to use for the tests"
|
||||
echo " This is an option that will be iterated."
|
||||
echo
|
||||
echo "To be able to specify options a compiler has to be given."
|
||||
echo "All options will be tested with all MP_xBIT configurations."
|
||||
echo
|
||||
echo " --with-{m64,m32,mx32} The architecture(s) to build and test for,"
|
||||
echo " e.g. --with-mx32."
|
||||
echo " This is an option that will be iterated, multiple selections are possible."
|
||||
echo " The mx32 architecture is not supported by clang and will not be executed."
|
||||
echo
|
||||
echo " --cflags=* Give an option to the compiler,"
|
||||
echo " e.g. --cflags=-g"
|
||||
echo " This is an option that will always be passed as parameter to CC."
|
||||
echo
|
||||
echo " --make-option=* Give an option to make,"
|
||||
echo " e.g. --make-option=\"-f makefile.shared\""
|
||||
echo " This is an option that will always be passed as parameter to make."
|
||||
echo
|
||||
echo " --help This message"
|
||||
exit 0
|
||||
}
|
||||
|
||||
_die()
|
||||
{
|
||||
|
@ -31,19 +63,79 @@ _runtest()
|
|||
{
|
||||
echo -ne " Compile $1 $2"
|
||||
make clean > /dev/null
|
||||
CC="$1" CFLAGS="$2 $TEST_CFLAGS" make -j8 test_standalone $MAKE_OPTIONS > /dev/null 2>test_errors.txt
|
||||
CC="$1" CFLAGS="$2 $TEST_CFLAGS" make -j$MAKE_JOBS test_standalone $MAKE_OPTIONS > /dev/null 2>test_errors.txt
|
||||
echo -e "\rRun test $1 $2"
|
||||
timeout --foreground 90 ./test > test_$(echo ${1}${2} | tr ' ' '_').txt || _die "running tests" $?
|
||||
}
|
||||
|
||||
compilers=( $COMPILERS gcc )
|
||||
_banner()
|
||||
{
|
||||
echo "uname="$(uname -a)
|
||||
[[ "$#" != "0" ]] && (echo $1=$($1 -dumpversion)) || true
|
||||
}
|
||||
|
||||
echo "uname="$(uname -a)
|
||||
_exit()
|
||||
{
|
||||
if [ "$ret" == "0" ]
|
||||
then
|
||||
echo "Tests successful"
|
||||
else
|
||||
echo "$ret tests timed out"
|
||||
fi
|
||||
|
||||
exit $ret
|
||||
}
|
||||
|
||||
ARCHFLAGS=""
|
||||
COMPILERS=""
|
||||
CFLAGS=""
|
||||
|
||||
while [ $# -gt 0 ];
|
||||
do
|
||||
case $1 in
|
||||
"--with-m64" | "--with-m32" | "--with-mx32")
|
||||
ARCHFLAGS="$ARCHFLAGS ${1:6}"
|
||||
;;
|
||||
--with-cc=*)
|
||||
COMPILERS="$COMPILERS ${1#*=}"
|
||||
;;
|
||||
--cflags=*)
|
||||
CFLAGS="$CFLAGS ${1#*=}"
|
||||
;;
|
||||
--make-option=*)
|
||||
MAKE_OPTIONS="$MAKE_OPTIONS ${1#*=}"
|
||||
;;
|
||||
--help)
|
||||
_help
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# default to gcc if nothing is given
|
||||
if [[ "$COMPILERS" == "" ]]
|
||||
then
|
||||
_banner gcc
|
||||
_runtest "gcc" ""
|
||||
_exit
|
||||
fi
|
||||
|
||||
archflags=( $ARCHFLAGS )
|
||||
compilers=( $COMPILERS )
|
||||
|
||||
# choosing a compiler without specifying an architecture will use the default architecture
|
||||
if [ "${#archflags[@]}" == "0" ]
|
||||
then
|
||||
archflags[0]=" "
|
||||
fi
|
||||
|
||||
_banner
|
||||
|
||||
for i in "${compilers[@]}"
|
||||
do
|
||||
if [ -z "$(which $i)" ]
|
||||
then
|
||||
echo "Skipped compiler $i, file not found"
|
||||
continue
|
||||
fi
|
||||
compiler_version=$(echo "$i="$($i -dumpversion))
|
||||
|
@ -55,28 +147,20 @@ do
|
|||
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" ]
|
||||
|
||||
for a in "${archflags[@]}"
|
||||
do
|
||||
if [[ $(expr "$i" : "clang") && "$a" == "-mx32" ]]
|
||||
then
|
||||
_runtest "$i -mx32" ""
|
||||
_runtest "$i -mx32" "-DMP_8BIT"
|
||||
_runtest "$i -mx32" "-DMP_16BIT"
|
||||
_runtest "$i -mx32" "-DMP_32BIT"
|
||||
echo "clang -mx32 tests skipped"
|
||||
continue
|
||||
fi
|
||||
|
||||
_runtest "$i $a" ""
|
||||
_runtest "$i $a" "-DMP_8BIT"
|
||||
_runtest "$i $a" "-DMP_16BIT"
|
||||
_runtest "$i $a" "-DMP_32BIT"
|
||||
done
|
||||
done
|
||||
|
||||
if [ "$ret" == "0" ]
|
||||
then
|
||||
echo "Tests successful"
|
||||
else
|
||||
echo "$ret tests timed out"
|
||||
fi
|
||||
|
||||
exit $ret
|
||||
_exit
|
||||
|
|
Loading…
Reference in New Issue