Logo AND Algorithmique Numérique Distribuée

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