From 14e0cf6bf3e6dedb9bf20540b3ff90d9acf5f135 Mon Sep 17 00:00:00 2001 From: degomme Date: Mon, 16 May 2016 16:50:40 +0200 Subject: [PATCH] don't run some mpich3 fortran tests when there is no privatization We don't provide manual way of privatizing global variables in Fortran anymore. So on some (BSD) systems, these tests would fail. --- teshsuite/smpi/mpich3-test/f77/pt2pt/testlist | 2 +- teshsuite/smpi/mpich3-test/f77/rma/testlist | 8 ++++---- teshsuite/smpi/mpich3-test/f90/pt2pt/testlist | 2 +- teshsuite/smpi/mpich3-test/f90/rma/testlist | 8 ++++---- teshsuite/smpi/mpich3-test/runtests | 16 ++++++++++++++++ tools/cmake/Tests.cmake | 4 ++-- 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/teshsuite/smpi/mpich3-test/f77/pt2pt/testlist b/teshsuite/smpi/mpich3-test/f77/pt2pt/testlist index fe7ad6b359..b71a61fcff 100644 --- a/teshsuite/smpi/mpich3-test/f77/pt2pt/testlist +++ b/teshsuite/smpi/mpich3-test/f77/pt2pt/testlist @@ -1,4 +1,4 @@ statusesf 1 #greqf 1 -allpairf 2 +allpairf 2 needs_privatization=1 mprobef 2 mpiversion=3.0 diff --git a/teshsuite/smpi/mpich3-test/f77/rma/testlist b/teshsuite/smpi/mpich3-test/f77/rma/testlist index 1e3dac2a46..f3cf47b553 100644 --- a/teshsuite/smpi/mpich3-test/f77/rma/testlist +++ b/teshsuite/smpi/mpich3-test/f77/rma/testlist @@ -1,6 +1,6 @@ -winscale1f 4 -winfencef 4 -wingetf 5 +winscale1f 4 needs_privatization=1 +winfencef 4 needs_privatization=1 +wingetf 5 needs_privatization=1 #Needs win_test #winscale2f 4 #Needs win error handling @@ -8,7 +8,7 @@ wingetf 5 winnamef 1 #Needs win get group #wingroupf 4 -winaccf 4 +winaccf 4 needs_privatization=1 #Needs mpi_win_f2c c2f2cwinf 1 #Needs attr diff --git a/teshsuite/smpi/mpich3-test/f90/pt2pt/testlist b/teshsuite/smpi/mpich3-test/f90/pt2pt/testlist index 920fba2c4b..d7a4b64fde 100644 --- a/teshsuite/smpi/mpich3-test/f90/pt2pt/testlist +++ b/teshsuite/smpi/mpich3-test/f90/pt2pt/testlist @@ -1,5 +1,5 @@ # This file generated by f77tof90 statusesf90 1 #greqf90 1 -allpairf90 2 +allpairf90 2 needs_privatization=1 mprobef90 2 mpiversion=3.0 diff --git a/teshsuite/smpi/mpich3-test/f90/rma/testlist b/teshsuite/smpi/mpich3-test/f90/rma/testlist index 337fe3188d..1dddb0c8ac 100644 --- a/teshsuite/smpi/mpich3-test/f90/rma/testlist +++ b/teshsuite/smpi/mpich3-test/f90/rma/testlist @@ -1,13 +1,13 @@ # This file generated by f77tof90 #See ../../f77/rma/testlist for reasons of deactivation -winscale1f90 4 -winfencef90 4 -wingetf90 5 +winscale1f90 4 needs_privatization=1 +winfencef90 4 needs_privatization=1 +wingetf90 5 needs_privatization=1 #winscale2f90 4 #winerrf90 1 winnamef90 1 #wingroupf90 4 -winaccf90 4 +winaccf90 4 needs_privatization=1 c2f2cwinf90 1 #baseattrwinf90 1 #winattrf90 1 diff --git a/teshsuite/smpi/mpich3-test/runtests b/teshsuite/smpi/mpich3-test/runtests index 1e35c24254..5b0f88e972 100755 --- a/teshsuite/smpi/mpich3-test/runtests +++ b/teshsuite/smpi/mpich3-test/runtests @@ -73,6 +73,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 = ''; @@ -163,6 +165,9 @@ foreach $_ (@ARGV) { elsif (/--?batchdir=(.*)/) { $batrundir = $1; } elsif (/--?timeoutarg=(.*)/) { $timeoutArgPattern = $1; } elsif (/--?execarg=(.*)/) { $execarg = "$execarg $1"; } + elsif (/--?privatization=(.*)/) { +print STDERR "privatization called\n"; +$enabled_privatization = $1; } elsif (/VALGRIND_COMMAND=(.*)/) { $valgrind = $1; } elsif (/VALGRIND_OPTIONS=(.*)/) { @@ -363,6 +368,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 +397,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 +421,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; } diff --git a/tools/cmake/Tests.cmake b/tools/cmake/Tests.cmake index f98eb409d3..953fabdfbc 100644 --- a/tools/cmake/Tests.cmake +++ b/tools/cmake/Tests.cmake @@ -71,9 +71,9 @@ IF(HAVE_MC) ENDIF() IF(enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN AND HAVE_THREAD_CONTEXTS) - ADD_TEST(test-smpi-mpich3-thread-f77 ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f77/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests ${TESH_OPTION} -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f77/ -tests=testlist -execarg=--cfg=contexts/stack_size:8000 -execarg=--cfg=contexts/factory:thread -execarg=--cfg=smpi/privatize-global-variables:${HAVE_PRIVATIZATION}) + ADD_TEST(test-smpi-mpich3-thread-f77 ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f77/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests ${TESH_OPTION} -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f77/ -tests=testlist -privatization=${HAVE_PRIVATIZATION} -execarg=--cfg=contexts/stack_size:8000 -execarg=--cfg=contexts/factory:thread -execarg=--cfg=smpi/privatize-global-variables:${HAVE_PRIVATIZATION}) SET_TESTS_PROPERTIES(test-smpi-mpich3-thread-f77 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!") - ADD_TEST(test-smpi-mpich3-thread-f90 ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f90/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests ${TESH_OPTION} -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/ -tests=testlist -execarg=--cfg=smpi/privatize-global-variables:${HAVE_PRIVATIZATION} -execarg=--cfg=contexts/factory:thread) + ADD_TEST(test-smpi-mpich3-thread-f90 ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f90/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests ${TESH_OPTION} -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/ -tests=testlist -privatization=${HAVE_PRIVATIZATION} -execarg=--cfg=smpi/privatize-global-variables:${HAVE_PRIVATIZATION} -execarg=--cfg=contexts/factory:thread) SET_TESTS_PROPERTIES(test-smpi-mpich3-thread-f90 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!") ENDIF() -- 2.20.1