+ set_target_properties(bcast_min_datatypes PROPERTIES COMPILE_FLAGS "-DBCAST_MIN_DATATYPES_ONLY" LINK_FLAGS "-DBCAST_MIN_DATATYPES_ONLY")
+ set_target_properties(bcast_comm_world PROPERTIES COMPILE_FLAGS "-DBCAST_COMM_WORLD_ONLY" LINK_FLAGS "-DBCAST_COMM_WORLD_ONLY")
+
+ # These tests take 5 to 15 seconds to run, so we don't want to run them several times.
+ # But at the same time, we'd like to check if they work for all factories and all privatization algorithm
+ # Thus the current matrix
+
+ MACRO(ADD_MPICH3_COLL SELECTOR FACTORY PRIVATIZATION)
+ set(NAME "test-smpi-mpich3-coll-${SELECTOR}")
+ set(ARGS "-execarg=--cfg=smpi/coll-selector:${SELECTOR}" ${ARGN})
+ if(NOT "${PRIVATIZATION}" STREQUAL "" AND HAVE_PRIVATIZATION)
+ set(NAME "${NAME}-${PRIVATIZATION}")
+ set(ARGS ${ARGS} "-execarg=--cfg=smpi/privatization:${PRIVATIZATION}")
+ endif()
+ string(TOUPPER "HAVE_${FACTORY}_CONTEXTS" HAVE_FACTORY)
+ if(NOT "${FACTORY}" STREQUAL "" AND ${HAVE_FACTORY})
+ set(NAME "${NAME}-${FACTORY}")
+ set(ARGS ${ARGS} "-execarg=--cfg=contexts/factory:${FACTORY}")
+ endif()
+ ADD_TEST(${NAME} ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests "-wrapper=${TESH_WRAPPER}" -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist ${ARGS})
+ SET_TESTS_PROPERTIES(${NAME} PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
+ ENDMACRO()
+
+ # Test default selector; default factory; default privatization
+ ADD_MPICH3_COLL(default "" "")
+
+ # Test OMPI selector: thread factory, dlopen privatization
+ ADD_MPICH3_COLL(ompi "thread" "dlopen" -execarg=--cfg=smpi/bcast:binomial_tree)
+
+ # Test MPICH selector: boost factory, dlopen privatization
+ ADD_MPICH3_COLL(mpich "boost" "dlopen")
+
+ # Test MVAPICH2 selector: ucontext factory, mmap privatization
+ ADD_MPICH3_COLL(mvapich2 "ucontext" "mmap")
+
+ # Test IMPI selector: raw factory, mmap privatization
+ ADD_MPICH3_COLL(impi "raw" "mmap")
+