[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.0.1-72-g6a954d0
mysql vizuser
noreply at mpich.org
Fri Jan 25 17:33:29 CST 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 6a954d01628b1443336bee7e197d91d56690d8f6 (commit)
via 4aba817fda95da257258befed3fa34167ee44507 (commit)
via b187ee20f4167555ed752601ba56f62878c02fe4 (commit)
via 237d91bf62040f46f32ecf5f65a475c578bd6b9d (commit)
from 39ed84ae13cbed02f561144a0b509c052339377d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/6a954d01628b1443336bee7e197d91d56690d8f6
commit 6a954d01628b1443336bee7e197d91d56690d8f6
Author: Dave Goodell <goodell at mcs.anl.gov>
Date: Fri Jan 25 16:50:49 2013 -0600
add `xfail=ticketXYZ` annotations to failing tests
These five tests are currently failing on a regular basis with MPICH.
All need to be dealt with at some point, but we cannot fix them right
now and they make it hard to spot new failures in the tests.
references #1767, #1788
Reviewed-by: dinan
diff --git a/test/mpi/datatype/testlist b/test/mpi/datatype/testlist
index ccef43d..755b25b 100644
--- a/test/mpi/datatype/testlist
+++ b/test/mpi/datatype/testlist
@@ -48,5 +48,5 @@ get-elements 1
hindexed_block 1 mpiversion=3.0
hindexed_block_contents 1 mpiversion=3.0
longdouble 1
-large-count 1 mpiversion=3.0
+large-count 1 mpiversion=3.0 xfail=ticket1767
cxx-types 1 mpiversion=3.0
diff --git a/test/mpi/perf/testlist b/test/mpi/perf/testlist
index 503729f..b81ea53 100644
--- a/test/mpi/perf/testlist
+++ b/test/mpi/perf/testlist
@@ -1,10 +1,10 @@
transp-datatype 2
sendrecvl 2
-twovec 1
+twovec 1 xfail=ticket1788
dtpack 1
-nestvec 1
-nestvec2 1
-indexperf 1
+nestvec 1 xfail=ticket1788
+nestvec2 1 xfail=ticket1788
+indexperf 1 xfail=ticket1788
non_zero_root 4
timer 1
# The commcreatep test looks at how communicator creation scales with group
http://git.mpich.org/mpich.git/commitdiff/4aba817fda95da257258befed3fa34167ee44507
commit 4aba817fda95da257258befed3fa34167ee44507
Author: Dave Goodell <goodell at mcs.anl.gov>
Date: Fri Jan 25 14:51:17 2013 -0600
TAP: add "xfail" support
This is used to indicate tests that are correct, but functionality that
is expected to fail in the current version of the MPI implementation.
This is expressed in `testlist` files with an argument string like
`xfail=ticketXYZ` or `xfail=REASON` after the program name.
Unfortunately, spaces, quotes, and `#` characters are not permitted in
the format at this time, due to the primitive nature of the testfile
parser code.
If strict MPI testing is requested (by configuring the test suite with
`--enable-strictmpi`) then the `xfail=BLAH` arguments are ignored under
the assumption that they are only accurate for the current version of
the MPICH implementation.
No xfail support has been added to the XML output at this time.
Reviewed-by: dinan
diff --git a/test/mpi/runtests.in b/test/mpi/runtests.in
index 3046cc8..56b6e39 100644
--- a/test/mpi/runtests.in
+++ b/test/mpi/runtests.in
@@ -362,6 +362,7 @@ sub RunList {
my $requiresMPIX = "";
my $progEnv = "";
my $mpiVersion = "";
+ my $xfail = "";
if ($#args >= 1) { $np = $args[1]; }
# Process the key=value arguments
for (my $i=2; $i <= $#args; $i++) {
@@ -395,6 +396,12 @@ sub RunList {
elsif ($key eq "mpix") {
$requiresMPIX = $value
}
+ elsif ($key eq "xfail") {
+ if ($value eq "") {
+ print STDERR "\"xfail=\" requires an argument\n";
+ }
+ $xfail = $value;
+ }
else {
print STDERR "Unrecognized key $key in $listfileSource\n";
}
@@ -441,6 +448,13 @@ sub RunList {
next;
}
+ if (lc($testIsStrict) eq "true") {
+ # Strict MPI testing was requested, so assume that a non-MPICH MPI
+ # implementation is being tested and the "xfail" implementation
+ # assumptions do not hold.
+ $xfail = '';
+ }
+
if (lc($requiresMPIX) eq "true" && lc($MPIHasMPIX) eq "no") {
unless (-d $programname) {
SkippedTest($programname, $np, $workdir, "tests MPIX extensions, MPIX testing disabled");
@@ -455,19 +469,19 @@ sub RunList {
}
else {
$total_run++;
- if (&BuildMPIProgram( $programname ) == 0) {
+ if (&BuildMPIProgram( $programname, $xfail ) == 0) {
if ($batchRun == 1) {
&AddMPIProgram( $programname, $np, $ResultTest,
$InitForRun, $timeLimit, $progArgs,
- $progEnv, $mpiexecArgs );
+ $progEnv, $mpiexecArgs, $xfail );
}
else {
&RunMPIProgram( $programname, $np, $ResultTest,
$InitForRun, $timeLimit, $progArgs,
- $progEnv, $mpiexecArgs );
+ $progEnv, $mpiexecArgs, $xfail );
}
}
- else {
+ elsif ($xfail ne '') {
# We expected to run this program, so failure to build
# is an error
$found_error = 1;
@@ -520,7 +534,7 @@ sub ProcessImplicitList {
if ($programname eq "runtests") { next; } # Ignore self
if (-x $programname) {
$total_run++;
- &RunMPIProgram( $programname, $np_default, "", "", "", "", "", "" );
+ &RunMPIProgram( $programname, $np_default, "", "", "", "", "", "", "" );
}
}
close PGMS;
@@ -540,8 +554,8 @@ sub ProcessImplicitList {
if (! -s $programname) { next; }
$programname =~ s/\.c//;
$total_run++;
- if (&BuildMPIProgram( $programname ) == 0) {
- &RunMPIProgram( $programname, $np_default, "", "", "", "", "", "" );
+ if (&BuildMPIProgram( $programname, "") == 0) {
+ &RunMPIProgram( $programname, $np_default, "", "", "", "", "", "", "" );
}
else {
# We expected to run this program, so failure to build
@@ -562,7 +576,7 @@ sub ProcessImplicitList {
# If the 3rd arg is not present, the a default that simply checks that the
# return status is 0 and that the output is " No Errors" is used.
sub RunMPIProgram {
- my ($programname,$np,$ResultTest,$InitForTest,$timeLimit,$progArgs,$progEnv,$mpiexecArgs) = @_;
+ my ($programname,$np,$ResultTest,$InitForTest,$timeLimit,$progArgs,$progEnv,$mpiexecArgs,$xfail) = @_;
my $found_error = 0;
my $found_noerror = 0;
my $inline = "";
@@ -655,10 +669,10 @@ sub RunMPIProgram {
}
}
if ($found_error) {
- &RunTestFailed( $programname, $np, $curdir, $inline );
+ &RunTestFailed( $programname, $np, $curdir, $inline, $xfail );
}
else {
- &RunTestPassed( $programname, $np, $curdir );
+ &RunTestPassed( $programname, $np, $curdir, $xfail );
}
&RunPostMsg( $programname, $np, $curdir );
}
@@ -666,7 +680,7 @@ sub RunMPIProgram {
# This version simply writes the mpiexec command out, with the output going
# into a file, and recording the output status of the run.
sub AddMPIProgram {
- my ($programname,$np,$ResultTest,$InitForTest,$timeLimit,$progArgs,$progEnv,$mpiexecArgs) = @_;
+ my ($programname,$np,$ResultTest,$InitForTest,$timeLimit,$progArgs,$progEnv,$mpiexecArgs, $xfail) = @_;
if (! -x $programname) {
print STDERR "Could not find $programname!";
@@ -734,7 +748,8 @@ sub AddMPIProgram {
#
# Return value is 0 on success, non zero on failure
sub BuildMPIProgram {
- my $programname = $_[0];
+ my $programname = shift;
+ my $xfail = shift;
my $rc = 0;
if ($verbose) { print STDERR "making $programname\n"; }
if (! -x $programname) { $remove_this_pgm = 1; }
@@ -752,7 +767,7 @@ sub BuildMPIProgram {
# in the summary file (which is otherwise written by the
# RunMPIProgram step)
&RunPreMsg( $programname, $np, $curdir );
- &RunTestFailed( $programname, $np, $curdir, "Failed to build $programname; $output" );
+ &RunTestFailed( $programname, $np, $curdir, "Failed to build $programname; $output", $xfail );
&RunPostMsg( $programname, $np, $curdir );
}
return $rc;
@@ -966,12 +981,16 @@ sub RunPostMsg {
}
}
sub RunTestPassed {
- my ($programname, $np, $workdir) = @_;
+ my ($programname, $np, $workdir, $xfail) = @_;
if ($xmloutput) {
print XMLOUT "<STATUS>pass</STATUS>$newline";
}
if ($tapoutput) {
- print TAPOUT "ok ${total_run} - $workdir/$programname $np\n";
+ my $xfailstr = '';
+ if ($xfail ne '') {
+ $xfailstr = " # TODO $xfail";
+ }
+ print TAPOUT "ok ${total_run} - $workdir/$programname ${np}${xfailstr}\n";
}
}
sub RunTestFailed {
@@ -979,6 +998,7 @@ sub RunTestFailed {
my $np = shift;
my $workdir = shift;
my $output = shift;
+ my $xfail = shift;
if ($xmloutput) {
my $xout = $output;
@@ -994,7 +1014,11 @@ sub RunTestFailed {
}
if ($tapoutput) {
- print TAPOUT "not ok ${total_run} - $workdir/$programname $np\n";
+ my $xfailstr = '';
+ if ($xfail ne '') {
+ $xfailstr = " # TODO $xfail";
+ }
+ print TAPOUT "not ok ${total_run} - $workdir/$programname ${np}${xfailstr}\n";
print TAPOUT " ---\n";
print TAPOUT " Directory: $workdir\n";
print TAPOUT " File: $programname\n";
http://git.mpich.org/mpich.git/commitdiff/b187ee20f4167555ed752601ba56f62878c02fe4
commit b187ee20f4167555ed752601ba56f62878c02fe4
Author: Dave Goodell <goodell at mcs.anl.gov>
Date: Fri Jan 25 14:50:14 2013 -0600
runtests: permit arbitrary capitalization in args
At Jim's request...
Reviewed-by: dinan
diff --git a/test/mpi/runtests.in b/test/mpi/runtests.in
index 7eec47f..3046cc8 100644
--- a/test/mpi/runtests.in
+++ b/test/mpi/runtests.in
@@ -434,14 +434,14 @@ sub RunList {
}
# Check whether strict is required by MPI but not by the
# test (use strict=false for tests that use non-standard extensions)
- if ($requiresStrict eq "false" && $testIsStrict eq "true") {
+ if (lc($requiresStrict) eq "false" && lc($testIsStrict) eq "true") {
unless (-d $programname) {
SkippedTest($programname, $np, $workdir, "non-strict test, strict MPI mode requested");
}
next;
}
- if ($requiresMPIX eq "true" && $MPIHasMPIX eq "no") {
+ if (lc($requiresMPIX) eq "true" && lc($MPIHasMPIX) eq "no") {
unless (-d $programname) {
SkippedTest($programname, $np, $workdir, "tests MPIX extensions, MPIX testing disabled");
}
http://git.mpich.org/mpich.git/commitdiff/237d91bf62040f46f32ecf5f65a475c578bd6b9d
commit 237d91bf62040f46f32ecf5f65a475c578bd6b9d
Author: Dave Goodell <goodell at mcs.anl.gov>
Date: Fri Jan 25 13:21:06 2013 -0600
TAP: add "# SKIP" directive support
This way tests that were skipped because of strictness or version
constraints will show up in the summary.tap output file.
Reviewed-by: dinan
diff --git a/test/mpi/runtests.in b/test/mpi/runtests.in
index e71a978..7eec47f 100644
--- a/test/mpi/runtests.in
+++ b/test/mpi/runtests.in
@@ -47,7 +47,8 @@ $testIsStrict = "@MPI_IS_STRICT@";
$MPIhasMPIX = "@MPI_HAS_MPIX@";
$np_arg = "-n"; # Name of argument to specify the number of processes
$err_count = 0; # Number of programs that failed.
-$total_count = 0; # Number of programs tested
+$total_run = 0; # Number of programs tested
+$total_seen = 0; # Number of programs considered for testing
$np_default = 2; # Default number of processes to use
$np_max = -1; # Maximum number of processes to use (overrides any
# value in the test list files. -1 is Infinity
@@ -251,7 +252,7 @@ if ($xmloutput && $closeXMLOutput) {
}
if ($tapoutput) {
- print TAPOUT "1..$total_count";
+ print TAPOUT "1..$total_seen";
close TAPOUT;
}
@@ -262,13 +263,13 @@ if ($batchRun) {
}
else {
if ($err_count) {
- print "$err_count tests failed out of $total_count\n";
+ print "$err_count tests failed out of $total_run\n";
if ($xmloutput) {
print "Details in $xmlfullfile\n";
}
}
else {
- print " All $total_count tests passed!\n";
+ print " All $total_run tests passed!\n";
}
if ($tapoutput) {
print "TAP formatted results in $tapfullfile\n";
@@ -400,33 +401,60 @@ sub RunList {
}
}
+ # skip empty lines
+ if ($programname eq "") { next; }
+
+ if ($np eq "") { $np = $np_default; }
+ if ($np_max > 0 && $np > $np_max) { $np = $np_max; }
+
+ # allows us to accurately output TAP test numbers without disturbing the
+ # original totals that have traditionally been reported
+ #
+ # These "unless" blocks are ugly, but permit us to honor skipping
+ # criteria for directories as well without counting directories as tests
+ # in our XML/TAP output.
+ unless (-d $programname) {
+ $total_seen++;
+ }
+
# If a minimum MPI version is specified, check against the
# available MPI. If the version is unknown, we ignore this
# test (thus, all tests will be run).
if ($mpiVersion ne "" && $MPIMajorVersion ne "unknown" &&
$MPIMinorVersion ne "unknown") {
my ($majorReq,$minorReq) = split(/\./,$mpiVersion);
- if ($majorReq > $MPIMajorVersion) { next; }
- if ($majorReq == $MPIMajorVersion &&
- $minorReq > $MPIMinorVersion) { next; }
+ if ($majorReq > $MPIMajorVersion or
+ ($majorReq == $MPIMajorVersion && $minorReq > $MPIMinorVersion))
+ {
+ unless (-d $programname) {
+ SkippedTest($programname, $np, $workdir, "requires MPI version $mpiVersion");
+ }
+ next;
+ }
}
# Check whether strict is required by MPI but not by the
# test (use strict=false for tests that use non-standard extensions)
- if ($requiresStrict eq "false" && $testIsStrict eq "true") { next; }
+ if ($requiresStrict eq "false" && $testIsStrict eq "true") {
+ unless (-d $programname) {
+ SkippedTest($programname, $np, $workdir, "non-strict test, strict MPI mode requested");
+ }
+ next;
+ }
- if ($requiresMPIX eq "true" && $MPIHasMPIX eq "no") { next; }
+ if ($requiresMPIX eq "true" && $MPIHasMPIX eq "no") {
+ unless (-d $programname) {
+ SkippedTest($programname, $np, $workdir, "tests MPIX extensions, MPIX testing disabled");
+ }
+ next;
+ }
- if ($np eq "") { $np = $np_default; }
- if ($np_max > 0 && $np > $np_max) { $np = $np_max; }
- # skip empty lines
- if ($programname eq "") { next; }
if (-d $programname) {
# If a directory, go into the that directory and
# look for a new list file
&ProcessDir( $programname, $listfile );
}
else {
- $total_count++;
+ $total_run++;
if (&BuildMPIProgram( $programname ) == 0) {
if ($batchRun == 1) {
&AddMPIProgram( $programname, $np, $ResultTest,
@@ -491,7 +519,7 @@ sub ProcessImplicitList {
if (-d $programname) { next; } # Ignore directories
if ($programname eq "runtests") { next; } # Ignore self
if (-x $programname) {
- $total_count++;
+ $total_run++;
&RunMPIProgram( $programname, $np_default, "", "", "", "", "", "" );
}
}
@@ -511,7 +539,7 @@ sub ProcessImplicitList {
# Skip messages from ls about no files
if (! -s $programname) { next; }
$programname =~ s/\.c//;
- $total_count++;
+ $total_run++;
if (&BuildMPIProgram( $programname ) == 0) {
&RunMPIProgram( $programname, $np_default, "", "", "", "", "", "" );
}
@@ -943,7 +971,7 @@ sub RunTestPassed {
print XMLOUT "<STATUS>pass</STATUS>$newline";
}
if ($tapoutput) {
- print TAPOUT "ok ${total_count} - $workdir/$programname $np\n";
+ print TAPOUT "ok ${total_run} - $workdir/$programname $np\n";
}
}
sub RunTestFailed {
@@ -966,7 +994,7 @@ sub RunTestFailed {
}
if ($tapoutput) {
- print TAPOUT "not ok ${total_count} - $workdir/$programname $np\n";
+ print TAPOUT "not ok ${total_run} - $workdir/$programname $np\n";
print TAPOUT " ---\n";
print TAPOUT " Directory: $workdir\n";
print TAPOUT " File: $programname\n";
@@ -996,6 +1024,20 @@ sub RunTestFailed {
}
}
}
+
+sub SkippedTest {
+ my $programname = shift;
+ my $np = shift;
+ my $workdir = shift;
+ my $reason = shift;
+
+ # simply omit from the XML output
+
+ if ($tapoutput) {
+ print TAPOUT "ok ${total_seen} - $workdir/$programname $np # SKIP $reason\n";
+ }
+}
+
# ----------------------------------------------------------------------------
# Alternate init routines
sub InitQuickTimeout {
-----------------------------------------------------------------------
Summary of changes:
test/mpi/datatype/testlist | 2 +-
test/mpi/perf/testlist | 8 ++--
test/mpi/runtests.in | 130 +++++++++++++++++++++++++++++++++-----------
3 files changed, 103 insertions(+), 37 deletions(-)
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list