#! @BASH@ ## ## Cleanups of previous executions ## failed_nb=0 success_nb=0 ignored_nb=0 tests_nb=0 rm -f test.failed test.success test.ignored # Work around a libtool issue on solaris export LD_LIBRARY_PATH=@top_srcdir@/src/.libs ## ## Args parsing (simplistic for now) ## if [ xvalgrind = "x$1" ] ; then valgrind="libtool --mode=execute valgrind --show-reachable=yes" else valgrind= fi ## ## Tests defintions ## xbt_TESTS=" xbt/log_usage@EXEEXT@; \ xbt/dynar_int@EXEEXT@; \ xbt/dynar_double@EXEEXT@; \ xbt/dynar_string@EXEEXT@; \ xbt/dict_usage@EXEEXT@; \ xbt/dict_crash@EXEEXT@; \ xbt/multidict_crash@EXEEXT@; \ xbt/config_usage@EXEEXT@; \ xbt/heap_bench@EXEEXT@;" surf_TESTS="surf/maxmin_usage@EXEEXT@; \ surf/maxmin_bench@EXEEXT@; \ surf/trace_usage@EXEEXT@ --surf-path=@srcdir@/surf/; \ surf/surf_usage@EXEEXT@ --surf-path=@srcdir@/surf/ platform.xml; \ surf/surf_usage2@EXEEXT@ --surf-path=@srcdir@/surf/ platform.xml;" gras_TESTS="gras/trp_tcp_usage; gras/trp_file_usage; \ gras/datadesc_usage@EXEEXT@; \ gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.little32; \ gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.little32_4;\ gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.little64; \ gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.big32; \ gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.big32_8_4; \ gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.big32_2;" # Data sets still to regenerate: # # gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.big32_4; \ # gras/datadesc_usage@EXEEXT@ --read @srcdir@/gras/datadesc.big64;" ## ## Loop on all tests to run them ## # we split tests on ';' so that they can contain spaces (test=accumulator) test="" for testpart in $xbt_TESTS $gras_TESTS $surf_TESTS do test="$test $testpart" if echo $test | grep ';' ; then # end of test declaration found. # we must have a space after the ; if echo $test | egrep ';[^ ]' ; then echo "$0.in broken: you should add a space after each ';'" exit 1 fi # Cleanup test declaration, run it. test=`echo $test | sed 's/;//'` tests_nb=`expr $tests_nb + 1` echo "#### Test $test" if [ x@EXEEXT@ = x ] ; then wine= else wine=wine fi if [ "x$test" = "xdict_crash@EXEEXT@" ] ; then $wine ./$test --xbt-log="root.thres=info" 2>&1 retval=$? else winesave=$wine if [ x@EXEEXT@ != x ] ; then if echo ${test} | grep @EXEEXT@ >/dev/null ; then : ; else # echo "This is not a win32 binary, don't use wine" wine="" fi fi # if the user defines valgrind while cross-compiling, too bad $wine $valgrind ./$test --xbt-log="root.thres=info" 2>&1 retval=$? wine=$winesave fi if [ $retval != 0 ] ; then if [ $retval != 77 ]; then echo "## failed" # . Rerun $test with full details." # if [ "x$test" = "xdict_crash" ] ; then # $wine ./$test --xbt-log="root.thres=debug" 2>&1 # else # $wine $valgrind ./$test --xbt-log="root.thres=debug" 2>&1 # fi failed_nb=`expr $failed_nb + 1` echo " $test (returned $retval)" >> test.failed else # retval == 77 echo "## Ignored since it returned 77" ignored_nb=`expr $ignored_nb + 1` echo " $test" >> test.ignored fi else echo "## Success" success_nb=`expr $success_nb + 1` echo " $test" >> test.success fi test="" fi # end of ';' found in test declaration => run it done ### ### Display summary ### echo echo "#### Summary" echo "$success_nb tests of $tests_nb successfull:" cat test.success if [ $ignored_nb != 0 ] ; then echo "$failed_nb tests of $tests_nb ignored:" cat test.ignored echo " (they returned 77, meaning that they are not applicable)" fi if [ $failed_nb != 0 ] ; then echo "$failed_nb tests of $tests_nb failed: " cat test.failed echo "Rerun the tests using the following command: script -c 'make test' simgrid.tests.log" echo " and send the following informations to simgrid-devel@lists.gforge.inria.fr:" echo " - the file simgrid.tests.log produced by this command." echo " - a short description of the target platform (arch, OS, distrib, compiler)." echo " - the config.log produced by the compilation." fi rm -f test.success test.failed test.ignored exit $failed_nb