Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Big fat warning 'dont forget ctest'
[simgrid.git] / testsuite / run_tests.in
index e44f361..2f76722 100755 (executable)
@@ -10,51 +10,46 @@ 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
+# 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
-  valgrind="libtool --mode=execute valgrind --show-reachable=yes"
+  exenv="libtool --mode=execute valgrind --show-reachable=yes"
 else
-  valgrind=
+  exenv=
 fi
 
 ##
 ## Tests defintions
 ##
-xbt_TESTS=" xbt/ex_test@EXEEXT@;          \
+
+##########################################################################
+## UPDATE buildtools/Cmake/CTestList.txt WHEN YOU CHANGE SOMETHING HERE ##
+##########################################################################
+
+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/graphxml_usage@EXEEXT@ @srcdir@/xbt/graph.xml;    \
             xbt/heap_bench@EXEEXT@;"
-          
-surf_TESTS="surf/maxmin_usage@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;"
-
-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;"    
+           surf/trace_usage@EXEEXT@ --cfg=path:@srcdir@/surf/;              \
+           surf/surf_usage@EXEEXT@  --cfg=path:@srcdir@/surf/ platform.xml; \
+           surf/surf_usage2@EXEEXT@ --cfg=path:@srcdir@/surf/ platform.xml;"
+
+simdag_TESTS="simdag/sd_test --cfg=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
@@ -63,10 +58,10 @@ gras_TESTS="gras/trp_tcp_usage;      gras/trp_file_usage;
 # we split tests on ';' so that they can contain spaces (test=accumulator)
 test=""
 
-for testpart in $xbt_TESTS $gras_TESTS $surf_TESTS
+for testpart in $xbt_TESTS $surf_TESTS $simdag_TESTS
 do
   test="$test $testpart"
-  if echo $test | grep ';' ; then
+  if echo $test | grep  ';' >/dev/null ; then
     # end of test declaration found.
   
     # we must have a space after the ;
@@ -78,54 +73,68 @@ do
     # 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=
+    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
-      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
+      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
-        # if the user defines valgrind while cross-compiling, too bad
-        $wine $valgrind ./$test --xbt-log="root.thres=info" 2>&1
+      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=$?
-      wine=$winesave
-    fi
-    if [ $retval != 0 ] ; then if [ $retval != 77 ]; then
-      echo "## failed" # . Rerun $test with full details."
+      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
-#      $wine ./$test --xbt-log="root.thres=debug" 2>&1
+#      $exenv ./$test --log="root.thres=debug" 2>&1
 #    else 
-#      $wine $valgrind ./$test --xbt-log="root.thres=debug" 2>&1
+#      $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
+        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
 
 ###
 ### Display summary
 ###
+if [ ".$1" = .windump ] ; then
+  echo pause
+  exit 0
+fi
 
 echo
 echo "#### Summary"
@@ -140,7 +149,7 @@ 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 "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)."