Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into master
[simgrid.git] / teshsuite / smpi / isp / umpire / CMakeLists.txt
1 # See http://formalverification.cs.utah.edu/ISP_Tests/
2
3 set(umpire_tests_passing
4   change-send-buffer
5   comm-dup-no-error
6   comm-dup-no-free
7   comm-dup-no-free2
8   comm-simple
9   comm-split-no-free
10   comm-translate-ranks
11   hello
12   no-error
13   no-error2
14   no-error3
15   no-error3-any_src
16   no-error-any_src
17   no-error-interleaved-isend
18   no-error-test
19   no-error-testall
20   no-error-testany
21   no-error-vector-isend
22   no-error-wait
23   no-error-waitany-any_src2
24   no-error-waitany-any_src3
25   no-error-waitany
26   no-error-wait-any_src
27   no-error-wait-any_src2
28   no-error-wait-any_src3
29   no-error-wait-any_src4
30   no-error-waitany-any_src
31   sendrecv-deadlock
32   send-recv-ok
33   irecv-isend-ok
34   lost-request-waitall
35  ) # Passing (no deadlock) tests
36
37 set(umpire_tests_passing_broken
38   irecv-isend-ok2
39   partial-recv
40   )
41
42 # These are supposed to deadlock but ISP does not find deadlock
43 # and we don't either. What should be test here?
44 set(umpire_tests_missed_deadlock
45   any_src-deadlock
46   any_src-can-deadlock
47   any_src-can-deadlock2
48   any_src-can-deadlock3
49   )
50
51 set(umpire_tests_deadlock
52   any_src-can-deadlock10
53   any_src-can-deadlock4
54   any_src-can-deadlock5
55   any_src-can-deadlock6
56   any_src-waitall-deadlock
57   any_src-waitall-deadlock2
58   any_src-waitall-deadlock3
59   any_src-waitany-deadlock2
60   any_src-waitany-deadlock
61   any_src-wait-deadlock
62   any_src-wait-deadlock2
63   basic-deadlock
64   basic-deadlock-comm_create
65   basic-deadlock-comm_dup
66   basic-deadlock-comm_split
67   bcast-deadlock
68   collective-misorder
69   collective-misorder-allreduce
70   complex-deadlock
71   finalize-deadlock
72   irecv-deadlock
73   waitall-deadlock
74   waitany-deadlock
75   wait-deadlock
76  ) # failing (deadlocking) tests
77
78 # Compile but run those tests:
79 set(umpire_tests_deadlock_broken
80   any_src-can-deadlock10_mod
81   any_src-can-deadlock4_mod
82   any_src-can-deadlock5_mod
83   any_src-can-deadlock6_mod
84   any_src-can-deadlock7
85   any_src-can-deadlock8
86   any_src-can-deadlock9
87   any_src-can-deadlock11
88   collective-misorder2
89   comm-bcast-deadlock
90   dropped-req
91   comm-deadlock
92 )
93
94 set(umpire_tests_problematic
95   deadlock-config # No deadlock detected by ISP unless MPI_Send blocking activated
96  ) # problematic tests
97
98  # These files are not listed on http://formalverification.cs.utah.edu/ISP_Tests/
99 set(umpire_src_other
100   abort1.c
101   abort2.c
102   abort3.c
103   abort.c
104   basic-deadlock-cart_create.c
105   basic-deadlock-cart_sub.c
106   basic-deadlock-graph_create.c
107   basic-deadlock-intercomm_create.c
108   basic-deadlock-intercomm_merge.c
109   change-send-buffer-exhaustive.c
110   change-send-buffer-type-exhaustive.c
111   collective-exhaustive-byte-int-mismatch.c
112   collective-exhaustive-no-error.c
113   collective-misorder.c
114   collective-misorder2.c
115
116   deadlock-config_blocking.c
117   errhandler-no-error.c
118   errhandler-no-free.c
119   group-no-error2.c
120   group-no-error3.c
121   group-no-error.c
122   group-no-error-exhaustive.c
123   group-no-free2.c
124   group-no-free3.c
125   group-no-free.c
126   group-no-free-exhaustive.c
127   intercomm_create-deadlock2.c
128   intercomm_create-deadlock3.c
129   intercomm_create-deadlock4.c
130   intercomm_create-deadlock.c
131   intercomm_create-no-error.c
132   intercomm_merge-deadlock.c
133   lost-request2.c
134   lost-request3.c
135   lost-request.c
136   no-error4-any_src.c
137   no-error4.c
138   no-error-derived-comms.c
139
140   no-error-persistent-all-completions.c
141   no-error-persistent.c
142   no-error-persistent-test.c
143   no-error-persistent-testpartial.c
144   no-error-persistent-waitpartial.c
145   no-error-probe-any_src.c
146   no-error-probe-any_tag.c
147   no-error-probe.c
148
149   no-error-wait2.c # Does not compile.
150   no-error-waitall-any_src2.c
151   no-error-waitall-any_src3.c
152   no-error-waitall-any_src.c
153   no-error-waitall.c
154   no-error-waitany2.c
155
156   op-no-error.c
157   op-no-free.c
158   partial-recv-exhaustive.c
159   partial-recv-persistent2.c
160   partial-recv-persistent3.c
161   partial-recv-persistent4.c
162   partial-recv-persistent.c
163   persistent2.c
164   persistent3.c
165   persistent4.c
166   persistent.c
167   probe-any_src-types-can-mismatch.c
168   probe-any_tag-types-can-mismatch.c
169   probe-deadlock.c
170   pt2pt-byte-int-mismatch.c
171   remote_group-no-error.c
172   type-commit-twice.c
173   type-no-error.c
174   type-no-error-exhaustive.c
175   type-no-error-exhaustive-with-isends.c
176   type-no-free2.c
177   type-no-free3.c
178   type-no-free.c
179   type-no-free-exhaustive.c
180   )
181
182 # Add these files to the archive
183 #################
184
185 set(sources "${CMAKE_CURRENT_SOURCE_DIR}/README")
186 foreach(file ${umpire_src_other})
187   set(sources ${sources} ${CMAKE_CURRENT_SOURCE_DIR}/${file})
188 endforeach()
189
190 foreach(file
191     ${umpire_tests_passing}  ${umpire_tests_passing_broken}
192     ${umpire_tests_deadlock} ${umpire_tests_deadlock_broken} ${umpire_tests_missed_deadlock}
193     ${umpire_tests_problematic}
194     ${umpire_tests_ignored} )
195   set(sources ${sources} ${CMAKE_CURRENT_SOURCE_DIR}/${file}.c)
196 endforeach()
197 set(txt_files ${txt_files} ${sources} PARENT_SCOPE)
198
199 # Build the tests
200 #################
201
202 if(enable_smpi AND enable_model-checking AND enable_smpi_ISP_testsuite)
203   set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
204   set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
205
206   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
207
208   foreach (test ${umpire_tests_passing} ${umpire_tests_deadlock} ${umpire_tests_problematic} )
209     add_executable(${test} ${test}.c)
210     target_link_libraries(${test} simgrid)
211     set_source_files_properties(${test}.c PROPERTIES COMPILE_FLAGS "-Dlint -Wno-error -Wno-return-type")
212     set(umpire_tesh ${umpire_tesh} ${test})
213     set(files_to_clean ${files_to_clean} ${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh)
214   endforeach(test)
215
216   # TODO, what should we do about ${umpire_tests_missed_deadlock}?
217
218   foreach (test ${umpire_tests_passing})
219     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "! timeout 30")
220     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "! output display" APPEND)
221     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "\$ \${bindir:=.}/../../../../smpi_script/bin/smpirun -wrapper \"\${bindir:=.}/../../../../bin/simgrid-mc\" -hostfile ../../hostfile -platform ../../../../examples/platforms/small_platform.xml --log=xbt_cfg.thresh:warning -np 3 --cfg=smpi/host-speed:1e9 --cfg=smpi/coll-selector:ompi \${bindir:=.}/${test} --log=smpi_coll.thresh:error" APPEND)
222   endforeach()
223
224   foreach (test ${umpire_tests_deadlock} ${umpire_tests_problematic} )
225     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "! timeout 30"     )
226     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "! expect return 3" APPEND)
227     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "! output display"  APPEND)
228     write_file(${CMAKE_CURRENT_BINARY_DIR}/${test}.tesh "\$ \${bindir:=.}/../../../../smpi_script/bin/smpirun -wrapper \"\${bindir:=.}/../../../../bin/simgrid-mc\" -hostfile ../../hostfile -platform ../../../../examples/platforms/small_platform.xml --log=xbt_cfg.thresh:warning -np 3 --cfg=smpi/host-speed:1e9 --cfg=smpi/coll-selector:ompi \${bindir:=.}/${test} --log=smpi_coll.thresh:error" APPEND)
229   endforeach()
230 endif()
231
232 # Erase all tesh files on cleanup: they are generated anyway
233 set_directory_properties ( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${files_to_clean}" )
234
235 if(enable_smpi AND enable_model-checking AND enable_smpi_ISP_testsuite)
236   foreach (tesh ${umpire_tesh})
237     ADD_TESH(mc-umpire-${tesh}
238       --setenv srcdir=${CMAKE_CURRENT_SOURCE_DIR}
239       --setenv bindir=${CMAKE_CURRENT_BINARY_DIR}
240       --cd ${CMAKE_CURRENT_SOURCE_DIR}
241       ${CMAKE_CURRENT_BINARY_DIR}/${tesh}.tesh)
242   endforeach()
243 endif()