X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cc8c1451d07d37a1800adc4f8a5f1a77bd2b1e21..3d462afa403565dd50d8b96bb96300e3bc7eed87:/testsuite/run_tests.in diff --git a/testsuite/run_tests.in b/testsuite/run_tests.in index f2fdbde128..6b7e999a44 100755 --- a/testsuite/run_tests.in +++ b/testsuite/run_tests.in @@ -1,39 +1,156 @@ #! @BASH@ + +## +## Cleanups of previous executions +## failed_nb=0 success_nb=0 +ignored_nb=0 tests_nb=0 -for test in log_usage \ - dynar_int dynar_double dynar_string \ - dict_usage dict_crash \ - config_usage \ - \ - datadesc_usage -do - tests_nb=`expr $tests_nb + 1` - echo "#### Test $test" - ./$test --gras-log="root.thres=info" 2>&1 - if [ $? != 0 ] ; then - echo "## failed. Rerun $test with full details." - ./$test --gras-log="root.thres=debug" 2>&1 - failed_nb=`expr $failed_nb + 1` - failed="$failed $test" - else - echo "## Success" - success_nb=`expr $success_nb + 1` - success="$success $test" - fi + +rm -f test.failed test.success test.ignored + +# Work around a libtool issue on solaris, making sure that it works even on sh older than tcsh +LD_LIBRARY_PATH=@top_srcdir@/src/.libs +if export LD_LIBRARY_PATH ; then + : +else + setenv LD_LIBRARY_PATH @top_srcdir@/src/.libs +fi + +## +## Args parsing (simplistic for now) +## +if [ xvalgrind = "x$1" ] ; then + exenv="libtool --mode=execute valgrind --show-reachable=yes" +else + exenv= +fi + +## +## Tests defintions +## +xbt_TESTS=" \ + xbt/log_usage@EXEEXT@; \ + xbt/context_usage@EXEEXT@; \ + xbt/graphxml_usage@EXEEXT@ @srcdir@/xbt/graph.xml; \ + xbt/heap_bench@EXEEXT@;" + +surf_TESTS="surf/lmm_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;" + +simdag_TESTS="simdag/sd_test --surf-path=@srcdir@/simdag @srcdir@/simdag/small_platform_variable.xml; \ + simdag/sd_test @top_srcdir@/examples/msg/small_platform.xml; \ + simdag/sd_test @top_srcdir@/examples/msg/msg_platform.xml; " + + +## +## 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 $surf_TESTS $simdag_TESTS +do + test="$test $testpart" + if echo $test | grep ';' >/dev/null ; 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/;//'` + + if [ ".$1" = .windump ] ; then + test=`echo $test | sed 's|/home.*testsuite/|//10.0.2.4/qemu/testsuite/|'` + test=`echo $test | sed 's|/|\\\\|g'` + echo "\\\\10.0.2.4\\qemu\\testsuite\\$test" + echo "@if errorlevel 1 echo ERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERROR" + test="" + else + tests_nb=`expr $tests_nb + 1` + echo "#### Test $test" + if [ x@EXEEXT@ = x ] ; then + : + else + # overwrites "valgrind" as a value, but should be exclusive. + exenv=wine + fi + exenvsave=$exenv + if [ "x$test" = "xxbt/dict_crash@EXEEXT@" ] ; then + if echo $exenv | grep valgrind >/dev/null ; then + exenv= + fi + $exenv ./$test --log="root.thres=info" 2>&1 + retval=$? + else + if [ x@EXEEXT@ != x ] && [ x$exenv = xwine ] ; then + if echo ${test} | grep @EXEEXT@ >/dev/null ; then : ; else + exenv="" + fi + fi + $exenv ./$test --log="root.thres=info" 2>&1 + retval=$? + fi + exenv=$exenvsave + if [ $retval != 0 ] ; then if [ $retval != 77 ]; then + echo "## failed" # . Rerun $test with full details." +# if [ "x$test" = "xdict_crash" ] ; then +# $exenv ./$test --log="root.thres=debug" 2>&1 +# else +# $exenv ./$test --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 + fi # end of run it only if not in windump mode done -failed=`echo $failed|sed 's|^ ||'` -success=`echo $success|sed 's|^ ||'` + +### +### Display summary +### +if [ ".$1" = .windump ] ; then + echo pause + exit 0 +fi + echo echo "#### Summary" -echo "$success_nb tests of $tests_nb successfull ($success)" +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 ($failed)" - echo "Rerun the tests using the following command: script -c 'make test' gras.tests.log" - echo " and send the following informations to martin.quinson@ens-lyon.fr:" - echo " - the file gras.tests.log produced by this command" + echo "$failed_nb tests of $tests_nb failed: " + cat test.failed + echo "Rerun the tests using the following command: script -c 'make check' 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, if possible." + echo " - the config.log produced by the compilation." fi + +rm -f test.success test.failed test.ignored exit $failed_nb