1 if(enable_smpi AND enable_smpi_MPICH3_testsuite)
3 set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
5 set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
6 set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
9 include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
10 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
12 foreach(test allgather2 allgather3 allgather_struct
13 allgatherv2 allgatherv3
14 allred2 allred3 allred4 allred5 allred6 allredmany
15 alltoall1 alltoallv0 alltoallv
16 # alltoallw1 alltoallw2 alltoallw_zeros
17 bcasttest bcastzerotype
18 coll2 coll3 coll4 coll5 coll6 coll7 coll8 coll9 coll10 coll11 coll12 coll13
20 gather gather2 gather_big
22 # iallred icallgather icallgatherv icallreduce
23 # icalltoall icalltoallv icalltoallw icbarrier icbcast
24 # icgather icgatherv icreduce icscatter icscatterv
26 # nonblocking2 nonblocking3
27 # opband opbor opbxor opland oplor oplxor opmax opmaxloc
28 # opmin opminloc opprod opsum
30 red3 red4 redscat2 redscat3 redscatbkinter redscatblk3
31 redscat red_scat_block red_scat_block2
34 scantst scatter2 scatter3 scattern scatterv
37 add_executable(${test} EXCLUDE_FROM_ALL ${test}.c)
38 add_dependencies(tests ${test})
39 target_link_libraries(${test} simgrid mtest_c)
42 foreach(test allgatherv4 allred)
43 if(HAVE_PRIVATIZATION)
44 add_executable(${test} EXCLUDE_FROM_ALL ${test}.c)
46 add_executable(${test} EXCLUDE_FROM_ALL ${test}_manual.c)
48 add_dependencies(tests ${test})
49 target_link_libraries(${test} simgrid mtest_c)
51 set_target_properties(allred PROPERTIES COMPILE_FLAGS "-O0" LINK_FLAGS "-O0")
53 foreach(test bcast_full bcast_min_datatypes bcast_comm_world)
54 add_executable(${test} EXCLUDE_FROM_ALL bcast.c)
55 add_dependencies(tests ${test})
56 target_link_libraries(${test} simgrid mtest_c)
58 set_target_properties(bcast_min_datatypes PROPERTIES COMPILE_FLAGS "-DBCAST_MIN_DATATYPES_ONLY" LINK_FLAGS "-DBCAST_MIN_DATATYPES_ONLY")
59 set_target_properties(bcast_comm_world PROPERTIES COMPILE_FLAGS "-DBCAST_COMM_WORLD_ONLY" LINK_FLAGS "-DBCAST_COMM_WORLD_ONLY")
61 add_executable(reduce_mpich EXCLUDE_FROM_ALL reduce.c)
62 add_dependencies(tests reduce_mpich)
63 target_link_libraries(reduce_mpich simgrid mtest_c)
65 # These tests take 5 to 15 seconds to run, so we don't want to run them several times.
66 # But at the same time, we'd like to check if they work for all factories and all privatization algorithm
67 # Thus the current matrix
69 MACRO(ADD_MPICH3_COLL SELECTOR FACTORY PRIVATIZATION)
70 set(NAME "test-smpi-mpich3-coll-${SELECTOR}")
71 set(ARGS "-execarg=--cfg=smpi/coll-selector:${SELECTOR}" ${ARGN})
72 if(NOT "${PRIVATIZATION}" STREQUAL "" AND HAVE_PRIVATIZATION)
73 set(NAME "${NAME}-${PRIVATIZATION}")
74 set(ARGS ${ARGS} "-execarg=--cfg=smpi/privatization:${PRIVATIZATION}")
76 string(TOUPPER "HAVE_${FACTORY}_CONTEXTS" HAVE_FACTORY)
77 if(NOT "${FACTORY}" STREQUAL "" AND ${HAVE_FACTORY})
78 set(NAME "${NAME}-${FACTORY}")
79 set(ARGS ${ARGS} "-execarg=--cfg=contexts/factory:${FACTORY}")
81 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})
82 SET_TESTS_PROPERTIES(${NAME} PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
85 # Test default selector; default factory; default privatization
86 ADD_MPICH3_COLL(default "" "")
88 # Test OMPI selector: thread factory, dlopen privatization
89 ADD_MPICH3_COLL(ompi "thread" "dlopen" -execarg=--cfg=smpi/bcast:binomial_tree)
91 # Test MPICH selector: boost factory, dlopen privatization
92 ADD_MPICH3_COLL(mpich "boost" "dlopen")
94 # Test MVAPICH2 selector: ucontext factory, mmap privatization
95 ADD_MPICH3_COLL(mvapich2 "ucontext" "mmap")
97 # Test IMPI selector: raw factory, mmap privatization
98 ADD_MPICH3_COLL(impi "raw" "mmap")
102 set(examples_src ${examples_src}
103 ${CMAKE_CURRENT_SOURCE_DIR}/allgather2.c
104 ${CMAKE_CURRENT_SOURCE_DIR}/allgather_struct.c
105 ${CMAKE_CURRENT_SOURCE_DIR}/allgather3.c
106 ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv2.c
107 ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv3.c
108 ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv4.c
109 ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv4_manual.c
110 ${CMAKE_CURRENT_SOURCE_DIR}/allred2.c
111 ${CMAKE_CURRENT_SOURCE_DIR}/allred3.c
112 ${CMAKE_CURRENT_SOURCE_DIR}/allred4.c
113 ${CMAKE_CURRENT_SOURCE_DIR}/allred5.c
114 ${CMAKE_CURRENT_SOURCE_DIR}/allred6.c
115 ${CMAKE_CURRENT_SOURCE_DIR}/allred.c
116 ${CMAKE_CURRENT_SOURCE_DIR}/allred_manual.c
117 ${CMAKE_CURRENT_SOURCE_DIR}/allredmany.c
118 ${CMAKE_CURRENT_SOURCE_DIR}/alltoall1.c
119 ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv0.c
120 ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv.c
121 ${CMAKE_CURRENT_SOURCE_DIR}/alltoallw1.c
122 ${CMAKE_CURRENT_SOURCE_DIR}/alltoallw2.c
123 ${CMAKE_CURRENT_SOURCE_DIR}/alltoallw_zeros.c
124 ${CMAKE_CURRENT_SOURCE_DIR}/bcast.c
125 ${CMAKE_CURRENT_SOURCE_DIR}/bcasttest.c
126 ${CMAKE_CURRENT_SOURCE_DIR}/bcastzerotype.c
127 ${CMAKE_CURRENT_SOURCE_DIR}/coll10.c
128 ${CMAKE_CURRENT_SOURCE_DIR}/coll11.c
129 ${CMAKE_CURRENT_SOURCE_DIR}/coll12.c
130 ${CMAKE_CURRENT_SOURCE_DIR}/coll13.c
131 ${CMAKE_CURRENT_SOURCE_DIR}/coll2.c
132 ${CMAKE_CURRENT_SOURCE_DIR}/coll3.c
133 ${CMAKE_CURRENT_SOURCE_DIR}/coll4.c
134 ${CMAKE_CURRENT_SOURCE_DIR}/coll5.c
135 ${CMAKE_CURRENT_SOURCE_DIR}/coll6.c
136 ${CMAKE_CURRENT_SOURCE_DIR}/coll7.c
137 ${CMAKE_CURRENT_SOURCE_DIR}/coll8.c
138 ${CMAKE_CURRENT_SOURCE_DIR}/coll9.c
139 ${CMAKE_CURRENT_SOURCE_DIR}/exscan2.c
140 ${CMAKE_CURRENT_SOURCE_DIR}/exscan.c
141 ${CMAKE_CURRENT_SOURCE_DIR}/gather2.c
142 ${CMAKE_CURRENT_SOURCE_DIR}/gather_big.c
143 ${CMAKE_CURRENT_SOURCE_DIR}/gather.c
144 ${CMAKE_CURRENT_SOURCE_DIR}/iallred.c
145 ${CMAKE_CURRENT_SOURCE_DIR}/ibarrier.c
146 ${CMAKE_CURRENT_SOURCE_DIR}/icallgather.c
147 ${CMAKE_CURRENT_SOURCE_DIR}/icallgatherv.c
148 ${CMAKE_CURRENT_SOURCE_DIR}/icallreduce.c
149 ${CMAKE_CURRENT_SOURCE_DIR}/icalltoall.c
150 ${CMAKE_CURRENT_SOURCE_DIR}/icalltoallv.c
151 ${CMAKE_CURRENT_SOURCE_DIR}/icalltoallw.c
152 ${CMAKE_CURRENT_SOURCE_DIR}/icbarrier.c
153 ${CMAKE_CURRENT_SOURCE_DIR}/icbcast.c
154 ${CMAKE_CURRENT_SOURCE_DIR}/icgather.c
155 ${CMAKE_CURRENT_SOURCE_DIR}/icgatherv.c
156 ${CMAKE_CURRENT_SOURCE_DIR}/icreduce.c
157 ${CMAKE_CURRENT_SOURCE_DIR}/icscatter.c
158 ${CMAKE_CURRENT_SOURCE_DIR}/icscatterv.c
159 ${CMAKE_CURRENT_SOURCE_DIR}/longuser.c
160 ${CMAKE_CURRENT_SOURCE_DIR}/nonblocking2.c
161 ${CMAKE_CURRENT_SOURCE_DIR}/nonblocking3.c
162 ${CMAKE_CURRENT_SOURCE_DIR}/nonblocking.c
163 ${CMAKE_CURRENT_SOURCE_DIR}/opband.c
164 ${CMAKE_CURRENT_SOURCE_DIR}/opbor.c
165 ${CMAKE_CURRENT_SOURCE_DIR}/opbxor.c
166 ${CMAKE_CURRENT_SOURCE_DIR}/op_commutative.c
167 ${CMAKE_CURRENT_SOURCE_DIR}/opland.c
168 ${CMAKE_CURRENT_SOURCE_DIR}/oplor.c
169 ${CMAKE_CURRENT_SOURCE_DIR}/oplxor.c
170 ${CMAKE_CURRENT_SOURCE_DIR}/opmax.c
171 ${CMAKE_CURRENT_SOURCE_DIR}/opmaxloc.c
172 ${CMAKE_CURRENT_SOURCE_DIR}/opmin.c
173 ${CMAKE_CURRENT_SOURCE_DIR}/opminloc.c
174 ${CMAKE_CURRENT_SOURCE_DIR}/opprod.c
175 ${CMAKE_CURRENT_SOURCE_DIR}/opsum.c
176 ${CMAKE_CURRENT_SOURCE_DIR}/red3.c
177 ${CMAKE_CURRENT_SOURCE_DIR}/red4.c
178 ${CMAKE_CURRENT_SOURCE_DIR}/redscat2.c
179 ${CMAKE_CURRENT_SOURCE_DIR}/redscat3.c
180 ${CMAKE_CURRENT_SOURCE_DIR}/redscatbkinter.c
181 ${CMAKE_CURRENT_SOURCE_DIR}/redscatblk3.c
182 ${CMAKE_CURRENT_SOURCE_DIR}/red_scat_block2.c
183 ${CMAKE_CURRENT_SOURCE_DIR}/red_scat_block.c
184 ${CMAKE_CURRENT_SOURCE_DIR}/redscat.c
185 ${CMAKE_CURRENT_SOURCE_DIR}/redscatinter.c
186 ${CMAKE_CURRENT_SOURCE_DIR}/reduce.c
187 ${CMAKE_CURRENT_SOURCE_DIR}/reduce_local.c
188 ${CMAKE_CURRENT_SOURCE_DIR}/scantst.c
189 ${CMAKE_CURRENT_SOURCE_DIR}/scatter2.c
190 ${CMAKE_CURRENT_SOURCE_DIR}/scatter3.c
191 ${CMAKE_CURRENT_SOURCE_DIR}/scattern.c
192 ${CMAKE_CURRENT_SOURCE_DIR}/scatterv.c
193 ${CMAKE_CURRENT_SOURCE_DIR}/uoplong.c
195 set(txt_files ${txt_files} ${CMAKE_CURRENT_SOURCE_DIR}/testlist PARENT_SCOPE)