X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/48eccb2c1532e35819830ca56fad7cf89887359f..b195400e3382f070aa49293a0ab7d9441889f5e4:/teshsuite/smpi/mpich3-test/runtests diff --git a/teshsuite/smpi/mpich3-test/runtests b/teshsuite/smpi/mpich3-test/runtests index 1e35c24254..4d458482f7 100755 --- a/teshsuite/smpi/mpich3-test/runtests +++ b/teshsuite/smpi/mpich3-test/runtests @@ -40,9 +40,11 @@ use File::Path; # Global variables -$MPIMajorVersion = "1"; +$MPIMajorVersion = "3"; $MPIMinorVersion = "1"; $mpiexec = "smpirun"; # Name of mpiexec program (including path, if necessary) +$platformfile = "../../../../examples/platforms/small_platform_with_routers.xml"; +$hostfile = "../../hostfile_mpich"; $testIsStrict = "true"; $MPIhasMPIX = "no"; $np_arg = "-np"; # Name of argument to specify the number of processes @@ -73,6 +75,8 @@ $batrundir = "."; # Set to the directory into which to run the examples $execarg=""; $wrapparg=""; + +$enabled_privatization = 1; # disable tests that need SMPI privatization to run # TAP (Test Anything Protocol) output my $tapoutput = 0; my $tapfile = ''; @@ -154,8 +158,10 @@ foreach $_ (@ARGV) { elsif (/--?np=(.*)/) { $np_default = $1; } elsif (/--?maxnp=(.*)/) { $np_max = $1; } elsif (/--?tests=(.*)/) { $listfiles = $1; } + elsif (/--?platformfile=(.*)/) { $platformfile = $1; } + elsif (/--?hostfile=(.*)/) { $hostfile = $1; } elsif (/--?srcdir=(.*)/) { $srcdir = $1; - $mpiexec="$mpiexec -platform ${srcdir}/../../../../examples/platforms/small_platform_with_routers.xml -hostfile ${srcdir}/../../hostfile_coll --log=root.thr:critical --cfg=smpi/running-power:1e9 --cfg=smpi/async-small-thresh:65536"; } + $mpiexec="$mpiexec -platform ${srcdir}/$platformfile -hostfile ${srcdir}/$hostfile --log=root.thr:critical --cfg=smpi/host-speed:1e9 --cfg=smpi/async-small-thresh:65536"; } elsif (/--?verbose/) { $verbose = 1; } elsif (/--?showprogress/) { $showProgress = 1; } elsif (/--?debug/) { $debug = 1; } @@ -163,10 +169,12 @@ foreach $_ (@ARGV) { elsif (/--?batchdir=(.*)/) { $batrundir = $1; } elsif (/--?timeoutarg=(.*)/) { $timeoutArgPattern = $1; } elsif (/--?execarg=(.*)/) { $execarg = "$execarg $1"; } - elsif (/VALGRIND_COMMAND=(.*)/) { - $valgrind = $1; } - elsif (/VALGRIND_OPTIONS=(.*)/) { - $wrapparg = "-wrapper \"$valgrind $1\""; } + elsif (/--?privatization=(.*)/) { +print STDERR "privatization called\n"; +$enabled_privatization = $1; } + elsif (/--?wrapper=(.*)/) { + $wrapparg = "-wrapper \"$1\"" if $1 ne ""; + } elsif (/--?xmlfile=(.*)/) { $xmlfile = $1; if (! ($xmlfile =~ /^\//)) { @@ -265,6 +273,7 @@ if ($batchRun) { else { if ($err_count) { print "$err_count tests failed out of $total_run\n"; + print "Failing tests : $failed_tests\n"; if ($xmloutput) { print "Details in $xmlfullfile\n"; } @@ -276,6 +285,7 @@ else { print "TAP formatted results in $tapfullfile\n"; } } +exit ($err_count > 0); # # --------------------------------------------------------------------------- # Routines @@ -363,6 +373,7 @@ sub RunList { my $requiresMPIX = ""; my $progEnv = ""; my $mpiVersion = ""; + my $needs_privatization = 0; my $xfail = ""; if ($#args >= 1) { $np = $args[1]; } # Process the key=value arguments @@ -391,6 +402,9 @@ sub RunList { elsif ($key eq "mpiversion") { $mpiVersion = $value; } + elsif ($key eq "needs_privatization") { + $needs_privatization = $value; + } elsif ($key eq "strict") { $requiresStrict = $value } @@ -412,6 +426,13 @@ sub RunList { # skip empty lines if ($programname eq "") { next; } + # if privatization is disabled, and if the test needs it, ignore it + if ($needs_privatization == 1 && + $enabled_privatization != 1) { + SkippedTest($programname, $np, $workdir, "requires SMPI privatization"); + next; + } + if ($np eq "") { $np = $np_default; } if ($np_max > 0 && $np > $np_max) { $np = $np_max; } @@ -634,6 +655,13 @@ sub RunMPIProgram { # Skip FORTRAN STOP if (/FORTRAN STOP/) { next; } $inline .= $_; + if (m{^==[0-9]+== ?WARNING: ASan doesn't fully support} || + m{^==[0-9]+== ?WARNING: ASan is ignoring requested __asan_handle_no_return: stack top:} || + m{^False positive error reports may follow$} || + m{^For details see http://code.google.com/p/address-sanitizer/issues/detail\?id=189$} || + m{^For details see https://github.com/google/sanitizers/issues/189$}) { + next; + } if (/^\s*No [Ee]rrors\s*$/ && $found_noerror == 0) { $found_noerror = 1; } @@ -641,6 +669,8 @@ sub RunMPIProgram { print STDERR "Unexpected output in $programname: $_"; if (!$found_error) { $found_error = 1; + $failed_tests .= $programname; + $failed_tests .= " "; $err_count ++; } } @@ -649,6 +679,8 @@ sub RunMPIProgram { print STDERR "Program $programname exited without No Errors\n"; if (!$found_error) { $found_error = 1; + $failed_tests .= $programname; + $failed_tests .= " "; $err_count ++; } } @@ -664,6 +696,8 @@ sub RunMPIProgram { if ($signal_num != 0) { print STDERR "Program $programname exited with signal $signal_num\n"; } + $failed_tests .= $programname; + $failed_tests .= " "; $found_error = 1; $err_count ++; } @@ -690,7 +724,7 @@ sub AddMPIProgram { if ($ResultTest ne "") { # This test really needs to be run manually, with this test - # Eventually, we can update this to include handleing in checktests. + # Eventually, we can update this to include handling in checktests. print STDERR "Run $curdir/$programname with $np processes and use $ResultTest to check the results\n"; return; }