A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
one more test for attr
[simgrid.git]
/
teshsuite
/
smpi
/
mpich3-test
/
runtests
diff --git
a/teshsuite/smpi/mpich3-test/runtests
b/teshsuite/smpi/mpich3-test/runtests
index
6c9f46b
..
f58c024
100755
(executable)
--- a/
teshsuite/smpi/mpich3-test/runtests
+++ b/
teshsuite/smpi/mpich3-test/runtests
@@
-40,9
+40,11
@@
use File::Path;
# Global variables
use File::Path;
# Global variables
-$MPIMajorVersion = "
1
";
+$MPIMajorVersion = "
3
";
$MPIMinorVersion = "1";
$mpiexec = "smpirun"; # Name of mpiexec program (including path, if necessary)
$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
$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="";
$execarg="";
$wrapparg="";
+
+$enabled_privatization = 1; # disable tests that need SMPI privatization to run
# TAP (Test Anything Protocol) output
my $tapoutput = 0;
my $tapfile = '';
# 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 (/--?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;
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 --log=smpi_kernel.thr:warning --cfg=smpi/host-speed:1e9f --cfg=smpi/async-small-thresh:65536 --cfg=smpi/os:1:0.0000003:0.0000002 --cfg=smpi/ois:1:0.0000003:0.0000002
"; }
elsif (/--?verbose/) { $verbose = 1; }
elsif (/--?showprogress/) { $showProgress = 1; }
elsif (/--?debug/) { $debug = 1; }
elsif (/--?verbose/) { $verbose = 1; }
elsif (/--?showprogress/) { $showProgress = 1; }
elsif (/--?debug/) { $debug = 1; }
@@
-163,13
+169,12
@@
foreach $_ (@ARGV) {
elsif (/--?batchdir=(.*)/) { $batrundir = $1; }
elsif (/--?timeoutarg=(.*)/) { $timeoutArgPattern = $1; }
elsif (/--?execarg=(.*)/) { $execarg = "$execarg $1"; }
elsif (/--?batchdir=(.*)/) { $batrundir = $1; }
elsif (/--?timeoutarg=(.*)/) { $timeoutArgPattern = $1; }
elsif (/--?execarg=(.*)/) { $execarg = "$execarg $1"; }
- elsif (/--?setenv/) { }
- elsif (/--?enable-coverage/) { }
- elsif (/--?timeout/) { }
- 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 =~ /^\//)) {
elsif (/--?xmlfile=(.*)/) {
$xmlfile = $1;
if (! ($xmlfile =~ /^\//)) {
@@
-215,14
+220,6
@@
foreach $_ (@ARGV) {
# we do not know at this point how many tests will be run, so do
# not print a test plan line like "1..450" until the very end
}
# we do not know at this point how many tests will be run, so do
# not print a test plan line like "1..450" until the very end
}
- else {
- print STDERR "Unrecognized argument $_\n";
- print STDERR "runtests [-tests=testfile] [-np=nprocesses] \
- [-maxnp=max-nprocesses] [-srcdir=location-of-tests] \
- [-xmlfile=filename ] [-noxmlclose] \
- [-verbose] [-showprogress] [-debug] [-batch]\n";
- exit(1);
- }
}
# Perform any post argument processing
}
# Perform any post argument processing
@@
-276,6
+273,7
@@
if ($batchRun) {
else {
if ($err_count) {
print "$err_count tests failed out of $total_run\n";
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";
}
if ($xmloutput) {
print "Details in $xmlfullfile\n";
}
@@
-287,6
+285,7
@@
else {
print "TAP formatted results in $tapfullfile\n";
}
}
print "TAP formatted results in $tapfullfile\n";
}
}
+exit ($err_count > 0);
#
\f
# ---------------------------------------------------------------------------
# Routines
#
\f
# ---------------------------------------------------------------------------
# Routines
@@
-374,6
+373,7
@@
sub RunList {
my $requiresMPIX = "";
my $progEnv = "";
my $mpiVersion = "";
my $requiresMPIX = "";
my $progEnv = "";
my $mpiVersion = "";
+ my $needs_privatization = 0;
my $xfail = "";
if ($#args >= 1) { $np = $args[1]; }
# Process the key=value arguments
my $xfail = "";
if ($#args >= 1) { $np = $args[1]; }
# Process the key=value arguments
@@
-402,6
+402,9
@@
sub RunList {
elsif ($key eq "mpiversion") {
$mpiVersion = $value;
}
elsif ($key eq "mpiversion") {
$mpiVersion = $value;
}
+ elsif ($key eq "needs_privatization") {
+ $needs_privatization = $value;
+ }
elsif ($key eq "strict") {
$requiresStrict = $value
}
elsif ($key eq "strict") {
$requiresStrict = $value
}
@@
-423,6
+426,13
@@
sub RunList {
# skip empty lines
if ($programname eq "") { next; }
# 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; }
if ($np eq "") { $np = $np_default; }
if ($np_max > 0 && $np > $np_max) { $np = $np_max; }
@@
-645,6
+655,13
@@
sub RunMPIProgram {
# Skip FORTRAN STOP
if (/FORTRAN STOP/) { next; }
$inline .= $_;
# 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 } ||
+ 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;
}
if (/^\s*No [Ee]rrors\s*$/ && $found_noerror == 0) {
$found_noerror = 1;
}
@@
-652,6
+669,8
@@
sub RunMPIProgram {
print STDERR "Unexpected output in $programname: $_";
if (!$found_error) {
$found_error = 1;
print STDERR "Unexpected output in $programname: $_";
if (!$found_error) {
$found_error = 1;
+ $failed_tests .= $programname;
+ $failed_tests .= " ";
$err_count ++;
}
}
$err_count ++;
}
}
@@
-660,6
+679,8
@@
sub RunMPIProgram {
print STDERR "Program $programname exited without No Errors\n";
if (!$found_error) {
$found_error = 1;
print STDERR "Program $programname exited without No Errors\n";
if (!$found_error) {
$found_error = 1;
+ $failed_tests .= $programname;
+ $failed_tests .= " ";
$err_count ++;
}
}
$err_count ++;
}
}
@@
-675,6
+696,8
@@
sub RunMPIProgram {
if ($signal_num != 0) {
print STDERR "Program $programname exited with signal $signal_num\n";
}
if ($signal_num != 0) {
print STDERR "Program $programname exited with signal $signal_num\n";
}
+ $failed_tests .= $programname;
+ $failed_tests .= " ";
$found_error = 1;
$err_count ++;
}
$found_error = 1;
$err_count ++;
}
@@
-701,7
+724,7
@@
sub AddMPIProgram {
if ($ResultTest ne "") {
# This test really needs to be run manually, with this test
if ($ResultTest ne "") {
# This test really needs to be run manually, with this test
- # Eventually, we can update this to include handl
e
ing 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;
}
print STDERR "Run $curdir/$programname with $np processes and use $ResultTest to check the results\n";
return;
}