Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of framagit.org:simgrid/simgrid
[simgrid.git] / teshsuite / smpi / mpich3-test / coll / CMakeLists.txt
1 if(enable_smpi AND enable_testsuite_smpi_MPICH3)
2   set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
3   set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
4   # There are too many warnings with these programs
5   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-sign-compare")
6
7   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
8   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
9
10   foreach(test allgather2 allgather3 allgather_struct allgatherv2 allgatherv3
11           allred2 allred3 allred4 allred5 allred6 allredmany alltoall1
12           alltoallv0 alltoallv alltoallw1 alltoallw2 alltoallw_zeros
13           bcasttest bcastzerotype coll2 coll3 coll4 coll5 coll6 coll7 coll8
14           coll9 coll10 coll11 coll12 coll13 exscan exscan2 gather gather2
15           gather_big ibarrier longuser nonblocking nonblocking2 nonblocking3 iallred
16         # icallgather icallgatherv icallreduce
17         # icalltoall icalltoallv icalltoallw icbarrier icbcast
18         # icgather icgatherv icreduce icscatter icscatterv
19          opband opbor opbxor opland oplor oplxor opmax opmaxloc
20          opmin opminloc opprod opsum
21          op_commutative red3 red4 redscat2 redscat3 redscatbkinter redscatblk3
22          redscat red_scat_block red_scat_block2 allgatherv4 allred
23         # redscatinter
24           reduce_local scantst scatter2 scatter3 scattern scatterv
25          uoplong
26          )
27     add_executable(${test} EXCLUDE_FROM_ALL ${test}.c)
28     add_dependencies(tests ${test})
29     target_link_libraries(${test} simgrid mtest_c)
30   endforeach()
31
32   set_target_properties(allred PROPERTIES COMPILE_FLAGS "-O0" LINK_FLAGS "-O0")
33
34   foreach(test bcast_full bcast_min_datatypes bcast_comm_world)
35     add_executable(${test} EXCLUDE_FROM_ALL bcast.c)
36     add_dependencies(tests ${test})
37     target_link_libraries(${test} simgrid mtest_c)
38   endforeach()
39   set_target_properties(bcast_min_datatypes PROPERTIES COMPILE_FLAGS "-DBCAST_MIN_DATATYPES_ONLY" LINK_FLAGS "-DBCAST_MIN_DATATYPES_ONLY")
40   set_target_properties(bcast_comm_world PROPERTIES COMPILE_FLAGS "-DBCAST_COMM_WORLD_ONLY" LINK_FLAGS "-DBCAST_COMM_WORLD_ONLY")
41
42   add_executable(reduce_mpich EXCLUDE_FROM_ALL reduce.c)
43   add_dependencies(tests reduce_mpich)
44   target_link_libraries(reduce_mpich  simgrid mtest_c)
45
46   # These tests take 5 to 15 seconds to run, so we don't want to run them several times.
47   # But at the same time, we'd like to check if they work for all factories and all privatization algorithm
48   # Thus the current matrix
49
50   MACRO(ADD_MPICH3_COLL SELECTOR FACTORY PRIVATIZATION)
51     set(NAME "test-smpi-mpich3-coll-${SELECTOR}")
52     set(ARGS "-execarg=--cfg=smpi/coll-selector:${SELECTOR}" ${ARGN})
53     if(NOT "${PRIVATIZATION}" STREQUAL "" AND HAVE_PRIVATIZATION)
54       set(NAME "${NAME}-${PRIVATIZATION}")
55       set(ARGS ${ARGS} "-execarg=--cfg=smpi/privatization:${PRIVATIZATION}")
56     endif()
57     string(TOUPPER "HAVE_${FACTORY}_CONTEXTS" HAVE_FACTORY)
58     if(NOT "${FACTORY}" STREQUAL "" AND ${HAVE_FACTORY})
59       set(NAME "${NAME}-${FACTORY}")
60       set(ARGS ${ARGS} "-execarg=--cfg=contexts/factory:${FACTORY}")
61     endif()
62     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=${VALGRIND_WRAPPER}" -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist ${ARGS})
63     SET_TESTS_PROPERTIES(${NAME} PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
64   ENDMACRO()
65
66   # Test default selector; default factory; default privatization
67   ADD_MPICH3_COLL(default "" "")
68
69   # Test OMPI selector: thread factory, dlopen privatization
70   ADD_MPICH3_COLL(ompi "thread" "dlopen" -execarg=--cfg=smpi/bcast:binomial_tree)
71
72   # Test MPICH selector: boost factory, dlopen privatization
73   ADD_MPICH3_COLL(mpich "boost" "dlopen")
74
75   # Test MVAPICH2 selector: ucontext factory, mmap privatization
76   ADD_MPICH3_COLL(mvapich2 "ucontext" "mmap")
77
78   # Test IMPI selector: raw factory, mmap privatization
79   ADD_MPICH3_COLL(impi "raw" "mmap")
80
81 endif()
82
83 set(examples_src  ${examples_src}
84  ${CMAKE_CURRENT_SOURCE_DIR}/allgather2.c
85  ${CMAKE_CURRENT_SOURCE_DIR}/allgather_struct.c
86  ${CMAKE_CURRENT_SOURCE_DIR}/allgather3.c
87  ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv2.c
88  ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv3.c
89  ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv4.c
90  ${CMAKE_CURRENT_SOURCE_DIR}/allred2.c
91  ${CMAKE_CURRENT_SOURCE_DIR}/allred3.c
92  ${CMAKE_CURRENT_SOURCE_DIR}/allred4.c
93  ${CMAKE_CURRENT_SOURCE_DIR}/allred5.c
94  ${CMAKE_CURRENT_SOURCE_DIR}/allred6.c
95  ${CMAKE_CURRENT_SOURCE_DIR}/allred.c
96  ${CMAKE_CURRENT_SOURCE_DIR}/allredmany.c
97  ${CMAKE_CURRENT_SOURCE_DIR}/alltoall1.c
98  ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv0.c
99  ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv.c
100  ${CMAKE_CURRENT_SOURCE_DIR}/alltoallw1.c
101  ${CMAKE_CURRENT_SOURCE_DIR}/alltoallw2.c
102  ${CMAKE_CURRENT_SOURCE_DIR}/alltoallw_zeros.c
103  ${CMAKE_CURRENT_SOURCE_DIR}/bcast.c
104  ${CMAKE_CURRENT_SOURCE_DIR}/bcasttest.c
105  ${CMAKE_CURRENT_SOURCE_DIR}/bcastzerotype.c
106  ${CMAKE_CURRENT_SOURCE_DIR}/coll10.c
107  ${CMAKE_CURRENT_SOURCE_DIR}/coll11.c
108  ${CMAKE_CURRENT_SOURCE_DIR}/coll12.c
109  ${CMAKE_CURRENT_SOURCE_DIR}/coll13.c
110  ${CMAKE_CURRENT_SOURCE_DIR}/coll2.c
111  ${CMAKE_CURRENT_SOURCE_DIR}/coll3.c
112  ${CMAKE_CURRENT_SOURCE_DIR}/coll4.c
113  ${CMAKE_CURRENT_SOURCE_DIR}/coll5.c
114  ${CMAKE_CURRENT_SOURCE_DIR}/coll6.c
115  ${CMAKE_CURRENT_SOURCE_DIR}/coll7.c
116  ${CMAKE_CURRENT_SOURCE_DIR}/coll8.c
117  ${CMAKE_CURRENT_SOURCE_DIR}/coll9.c
118  ${CMAKE_CURRENT_SOURCE_DIR}/exscan2.c
119  ${CMAKE_CURRENT_SOURCE_DIR}/exscan.c
120  ${CMAKE_CURRENT_SOURCE_DIR}/gather2.c
121  ${CMAKE_CURRENT_SOURCE_DIR}/gather_big.c
122  ${CMAKE_CURRENT_SOURCE_DIR}/gather.c
123  ${CMAKE_CURRENT_SOURCE_DIR}/iallred.c
124  ${CMAKE_CURRENT_SOURCE_DIR}/ibarrier.c
125  ${CMAKE_CURRENT_SOURCE_DIR}/icallgather.c
126  ${CMAKE_CURRENT_SOURCE_DIR}/icallgatherv.c
127  ${CMAKE_CURRENT_SOURCE_DIR}/icallreduce.c
128  ${CMAKE_CURRENT_SOURCE_DIR}/icalltoall.c
129  ${CMAKE_CURRENT_SOURCE_DIR}/icalltoallv.c
130  ${CMAKE_CURRENT_SOURCE_DIR}/icalltoallw.c
131  ${CMAKE_CURRENT_SOURCE_DIR}/icbarrier.c
132  ${CMAKE_CURRENT_SOURCE_DIR}/icbcast.c
133  ${CMAKE_CURRENT_SOURCE_DIR}/icgather.c
134  ${CMAKE_CURRENT_SOURCE_DIR}/icgatherv.c
135  ${CMAKE_CURRENT_SOURCE_DIR}/icreduce.c
136  ${CMAKE_CURRENT_SOURCE_DIR}/icscatter.c
137  ${CMAKE_CURRENT_SOURCE_DIR}/icscatterv.c
138  ${CMAKE_CURRENT_SOURCE_DIR}/longuser.c
139  ${CMAKE_CURRENT_SOURCE_DIR}/nonblocking2.c
140  ${CMAKE_CURRENT_SOURCE_DIR}/nonblocking3.c
141  ${CMAKE_CURRENT_SOURCE_DIR}/nonblocking.c
142  ${CMAKE_CURRENT_SOURCE_DIR}/opband.c
143  ${CMAKE_CURRENT_SOURCE_DIR}/opbor.c
144  ${CMAKE_CURRENT_SOURCE_DIR}/opbxor.c
145  ${CMAKE_CURRENT_SOURCE_DIR}/op_commutative.c
146  ${CMAKE_CURRENT_SOURCE_DIR}/opland.c
147  ${CMAKE_CURRENT_SOURCE_DIR}/oplor.c
148  ${CMAKE_CURRENT_SOURCE_DIR}/oplxor.c
149  ${CMAKE_CURRENT_SOURCE_DIR}/opmax.c
150  ${CMAKE_CURRENT_SOURCE_DIR}/opmaxloc.c
151  ${CMAKE_CURRENT_SOURCE_DIR}/opmin.c
152  ${CMAKE_CURRENT_SOURCE_DIR}/opminloc.c
153  ${CMAKE_CURRENT_SOURCE_DIR}/opprod.c
154  ${CMAKE_CURRENT_SOURCE_DIR}/opsum.c
155  ${CMAKE_CURRENT_SOURCE_DIR}/red3.c
156  ${CMAKE_CURRENT_SOURCE_DIR}/red4.c
157  ${CMAKE_CURRENT_SOURCE_DIR}/redscat2.c
158  ${CMAKE_CURRENT_SOURCE_DIR}/redscat3.c
159  ${CMAKE_CURRENT_SOURCE_DIR}/redscatbkinter.c
160  ${CMAKE_CURRENT_SOURCE_DIR}/redscatblk3.c
161  ${CMAKE_CURRENT_SOURCE_DIR}/red_scat_block2.c
162  ${CMAKE_CURRENT_SOURCE_DIR}/red_scat_block.c
163  ${CMAKE_CURRENT_SOURCE_DIR}/redscat.c
164  ${CMAKE_CURRENT_SOURCE_DIR}/redscatinter.c
165  ${CMAKE_CURRENT_SOURCE_DIR}/reduce.c
166  ${CMAKE_CURRENT_SOURCE_DIR}/reduce_local.c
167  ${CMAKE_CURRENT_SOURCE_DIR}/scantst.c
168  ${CMAKE_CURRENT_SOURCE_DIR}/scatter2.c
169  ${CMAKE_CURRENT_SOURCE_DIR}/scatter3.c
170  ${CMAKE_CURRENT_SOURCE_DIR}/scattern.c
171  ${CMAKE_CURRENT_SOURCE_DIR}/scatterv.c
172  ${CMAKE_CURRENT_SOURCE_DIR}/uoplong.c
173   PARENT_SCOPE)
174 set(txt_files  ${txt_files}  ${CMAKE_CURRENT_SOURCE_DIR}/testlist  PARENT_SCOPE)