ParaViewTesting.cmake
Go to the documentation of this file.
1 if (NOT DEFINED PARAVIEW_TEST_DIR)
2  set(PARAVIEW_TEST_DIR "${CMAKE_BINARY_DIR}/Testing/Temporary")
3 endif ()
4 
6  set(_vtk_testing_python_exe "$<TARGET_FILE:ParaView::pvpython>")
7  set(_vtk_test_python_args --dr ${paraview_python_args})
8  vtk_add_test_python(${ARGN})
9 endfunction ()
10 
12  set(_vtk_testing_python_exe "$<TARGET_FILE:ParaView::pvbatch>")
13  set(_vtk_test_python_args --dr ${paraview_pvbatch_args})
14  set(vtk_test_prefix "Batch-${vtk_test_prefix}")
15  vtk_add_test_python(${ARGN})
16 endfunction ()
17 
19  set(_vtk_testing_python_exe "$<TARGET_FILE:ParaView::pvbatch>")
20  set(_vtk_test_python_args --dr ${paraview_pvbatch_args})
21  set(vtk_test_prefix "Batch-${vtk_test_prefix}")
22  vtk_add_test_python_mpi(${ARGN})
23 endfunction ()
24 
26  if (NOT (TARGET pvserver AND TARGET pvpython))
27  return()
28  endif ()
29  set(_vtk_testing_python_exe "$<TARGET_FILE:ParaView::smTestDriver>")
30  set(_vtk_test_python_args
31  --server $<TARGET_FILE:ParaView::pvserver> --bind-address 127.0.0.1
32  --client $<TARGET_FILE:ParaView::pvpython> --dr)
33  vtk_add_test_python(${ARGN})
34 endfunction ()
35 
36 function (_paraview_add_tests function)
37  cmake_parse_arguments(_paraview_add_tests
38  "FORCE_SERIAL;FORCE_LOCK;SMTESTING_ALLOW_ERRORS"
39  "LOAD_PLUGIN;PLUGIN_PATH;CLIENT;TEST_DIRECTORY;TEST_DATA_TARGET;PREFIX;SUFFIX;_ENABLE_SUFFIX;_DISABLE_SUFFIX;BASELINE_DIR;DATA_DIRECTORY;NUMPROCS;NUMSERVERS"
40  "_COMMAND_PATTERN;LOAD_PLUGINS;PLUGIN_PATHS;TEST_SCRIPTS;TEST_NAME;ENVIRONMENT;ARGS;CLIENT_ARGS"
41  ${ARGN})
42  # NUMSERVERS is not used here, but is used by paraview_add_client_server_tests function.
43  # It is kept here to avoid filtering it out from ARGN in the caller.
44  # If it were not present here, nor filtered out in the caller, then it would be considered
45  # as part of "TEST_SCRIPTS" multivalue argument.
46 
47  if (_paraview_add_tests_UNPARSED_ARGUMENTS)
48  message(FATAL_ERROR
49  "Unparsed arguments for ${function}: "
50  "${_paraview_add_tests_UNPARSED_ARGUMENTS}")
51  endif ()
52 
53  if (NOT DEFINED _paraview_add_tests__COMMAND_PATTERN)
54  message(FATAL_ERROR
55  "The `_COMMAND_PATTERN` argument is required.")
56  endif ()
57 
58  if (NOT DEFINED _paraview_add_tests_CLIENT)
59  if ("__paraview_client__" IN_LIST _paraview_add_tests__COMMAND_PATTERN # do we care?
60  AND NOT TARGET ParaView::paraview # For external testing.
61  AND NOT paraview_will_be_built) # For use within ParaView itself.
62  return ()
63  endif ()
64 
65  set(_paraview_add_tests_CLIENT
66  "$<TARGET_FILE:ParaView::paraview>")
67  endif ()
68 
69  if (NOT DEFINED _paraview_add_tests_PREFIX)
70  set(_paraview_add_tests_PREFIX "pv")
71  endif ()
72 
73  if (NOT DEFINED _paraview_add_tests_TEST_DIRECTORY)
74  if (NOT DEFINED PARAVIEW_TEST_DIR)
75  set(_paraview_add_tests_TEST_DIRECTORY
76  "${CMAKE_BINARY_DIR}/Testing/Temporary")
77  else()
78  set(_paraview_add_tests_TEST_DIRECTORY
79  "${PARAVIEW_TEST_DIR}")
80  set(_vtk_build_TEST_OUTPUT_DIRECTORY "${PARAVIEW_TEST_DIR}")
81  endif()
82  endif ()
83 
84  if (NOT DEFINED _paraview_add_tests_DATA_DIRECTORY AND DEFINED _paraview_add_tests_default_data_directory)
85  set(_paraview_add_tests_DATA_DIRECTORY
86  "${_paraview_add_tests_default_data_directory}")
87  endif ()
88 
89  if (DEFINED _paraview_add_tests_TEST_SCRIPTS AND DEFINED _paraview_add_tests_TEST_NAME)
90  message(FATAL_ERROR
91  "Only one of `TEST_NAME` or `TEST_SCRIPTS` must be specified.")
92  elseif (NOT DEFINED _paraview_add_tests_TEST_SCRIPTS AND NOT DEFINED _paraview_add_tests_TEST_NAME)
93  message(FATAL_ERROR
94  "Either `TEST_SCRIPTS` or `TEST_NAME` must be specified.")
95  endif()
96 
97  set(_paraview_add_tests_args
98  ${_paraview_add_tests_ARGS})
99 
100  if (DEFINED _paraview_add_tests_PLUGIN_PATH)
101  list(APPEND _paraview_add_tests_args
102  "--plugin-search-paths=${_paraview_add_tests_PLUGIN_PATH}")
103  endif ()
104 
105  if (DEFINED _paraview_add_tests_PLUGIN_PATHS)
106  string(REPLACE ";" "," _plugin_paths "${_paraview_add_tests_PLUGIN_PATHS}")
107  list(APPEND _paraview_add_tests_args
108  "--plugin-search-paths=${_plugin_paths}")
109  endif ()
110 
111  if (DEFINED _paraview_add_tests_LOAD_PLUGIN)
112  list(APPEND _paraview_add_tests_args
113  "--plugins=${_paraview_add_tests_LOAD_PLUGIN}")
114  endif ()
115 
116  if (DEFINED _paraview_add_tests_LOAD_PLUGINS)
117  string(REPLACE ";" "," _load_plugins "${_paraview_add_tests_LOAD_PLUGINS}")
118  list(APPEND _paraview_add_tests_args
119  "--plugins=${_load_plugins}")
120  endif ()
121 
122  string(REPLACE "__paraview_args__" "${_paraview_add_tests_args}"
123  _paraview_add_tests__COMMAND_PATTERN
124  "${_paraview_add_tests__COMMAND_PATTERN}")
125  string(REPLACE "__paraview_client__" "${_paraview_add_tests_CLIENT}"
126  _paraview_add_tests__COMMAND_PATTERN
127  "${_paraview_add_tests__COMMAND_PATTERN}")
128 
129  foreach (_paraview_add_tests_script IN LISTS _paraview_add_tests_TEST_SCRIPTS _paraview_add_tests_TEST_NAME)
130  if (DEFINED _paraview_add_tests_TEST_NAME)
131  set(_paraview_add_tests_name "${_paraview_add_tests_script}")
132  set(_paraview_add_tests_name_base "${_paraview_add_tests_name}")
133  set(_paraview_add_tests_script)
134  else()
135  if (NOT IS_ABSOLUTE "${_paraview_add_tests_script}")
136  set(_paraview_add_tests_script
137  "${CMAKE_CURRENT_SOURCE_DIR}/${_paraview_add_tests_script}")
138  endif ()
139  get_filename_component(_paraview_add_tests_name "${_paraview_add_tests_script}" NAME_WE)
140  set(_paraview_add_tests_name_base "${_paraview_add_tests_name}")
141  endif()
142 
143  string(APPEND _paraview_add_tests_name "${_paraview_add_tests_SUFFIX}")
144 
145  if (DEFINED _paraview_add_tests__DISABLE_SUFFIX AND ${_paraview_add_tests_name}${_paraview_add_tests__DISABLE_SUFFIX})
146  continue ()
147  endif ()
148 
149  if (DEFINED _paraview_add_tests__ENABLE_SUFFIX AND NOT ${_paraview_add_tests_name}${_paraview_add_tests__ENABLE_SUFFIX})
150  continue ()
151  endif ()
152 
153  if (NOT DEFINED _paraview_add_tests_TEST_DATA_TARGET)
154  if (DEFINED _paraview_add_tests_default_test_data_target)
155  set(_paraview_add_tests_TEST_DATA_TARGET
156  "${_paraview_add_tests_default_test_data_target}")
157  else()
158  if (NOT DEFINED "${_paraview_add_tests_name}_USES_DIRECT_DATA")
159  message(FATAL_ERROR "The `TEST_DATA_TARGET` argument is required.")
160  endif()
161  endif ()
162  endif ()
163 
164  # Build arguments to pass to smTestDriver
165  set(_paraview_add_tests_smtesting_args "")
166  if (_paraview_add_tests_SMTESTING_ALLOW_ERRORS)
167  list(APPEND _paraview_add_tests_smtesting_args "--allow-errors")
168  endif ()
169 
170  # Build arguments to pass to the clients.
171  set(_paraview_add_tests_client_args
172  "--test-directory=${_paraview_add_tests_TEST_DIRECTORY}"
173  ${_paraview_add_tests_CLIENT_ARGS})
174  if (DEFINED _paraview_add_tests_BASELINE_DIR)
175  if (DEFINED "${_paraview_add_tests_name}_BASELINE")
176  if (DEFINED "${_paraview_add_tests_name}_USES_DIRECT_DATA")
177  list(APPEND _paraview_add_tests_client_args
178  "--test-baseline=${_paraview_add_tests_BASELINE_DIR}/${${_paraview_add_tests_name_base}_BASELINE}")
179  else()
180  list(APPEND _paraview_add_tests_client_args
181  "--test-baseline=DATA{${_paraview_add_tests_BASELINE_DIR}/${${_paraview_add_tests_name_base}_BASELINE}}")
182  endif ()
183  else ()
184  if (DEFINED "${_paraview_add_tests_name}_USES_DIRECT_DATA")
185  list(APPEND _paraview_add_tests_client_args
186  "--test-baseline=${_paraview_add_tests_BASELINE_DIR}/${_paraview_add_tests_name_base}.png")
187  else()
188  list(APPEND _paraview_add_tests_client_args
189  "--test-baseline=DATA{${_paraview_add_tests_BASELINE_DIR}/${_paraview_add_tests_name_base}.png}")
190  endif ()
191  endif ()
192  if (NOT DEFINED "${_paraview_add_tests_name}_USES_DIRECT_DATA")
193  ExternalData_Expand_Arguments("${_paraview_add_tests_TEST_DATA_TARGET}" _
194  "DATA{${_paraview_add_tests_BASELINE_DIR}/,REGEX:${_paraview_add_tests_name_base}(-.*)?(_[0-9]+)?.png}")
195  endif()
196  endif ()
197  if (DEFINED "${_paraview_add_tests_name}_THRESHOLD")
198  list(APPEND _paraview_add_tests_client_args
199  "--test-threshold=${${_paraview_add_tests_name}_THRESHOLD}")
200  endif ()
201  if (DEFINED _paraview_add_tests_DATA_DIRECTORY)
202  list(APPEND _paraview_add_tests_client_args
203  "--data-directory=${_paraview_add_tests_DATA_DIRECTORY}")
204  endif ()
205 
206  if (DEFINED _paraview_add_tests_TEST_NAME)
207  string(REPLACE "__paraview_script__" ""
208  _paraview_add_tests_script_args
209  "${_paraview_add_tests__COMMAND_PATTERN}")
210  string(REPLACE "__paraview_scriptpath__" ""
211  _paraview_add_tests_script_args
212  "${_paraview_add_tests_script_args}")
213  else()
214  string(REPLACE "__paraview_script__" "--test-script=${_paraview_add_tests_script}"
215  _paraview_add_tests_script_args
216  "${_paraview_add_tests__COMMAND_PATTERN}")
217  string(REPLACE "__paraview_scriptpath__" "${_paraview_add_tests_script}"
218  _paraview_add_tests_script_args
219  "${_paraview_add_tests_script_args}")
220  endif()
221 
222  string(REPLACE "__paraview_client_args__" "${_paraview_add_tests_client_args}"
223  _paraview_add_tests_script_args
224  "${_paraview_add_tests_script_args}")
225  string(REPLACE "__paraview_test_name__" "${_paraview_add_tests_name_base}"
226  _paraview_add_tests_script_args
227  "${_paraview_add_tests_script_args}")
228  string(REPLACE "__paraview_smtesting_args__" "${_paraview_add_tests_smtesting_args}"
229  _paraview_add_tests_script_args
230  "${_paraview_add_tests_script_args}")
231 
232  set(testArgs
233  NAME "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
234  COMMAND ParaView::smTestDriver
235  --enable-bt
236  ${_paraview_add_tests_script_args})
237  if (DEFINED "${_paraview_add_tests_name}_USES_DIRECT_DATA")
238  add_test(${testArgs})
239  else()
240  ExternalData_add_test("${_paraview_add_tests_TEST_DATA_TARGET}" ${testArgs})
241  endif()
242 
243  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
244  PROPERTY
245  LABELS ParaView)
246 
247  # set default image compare method for all tests
248  if (DEFINED DEFAULT_USE_SSIM_IMAGE_COMP AND DEFAULT_USE_SSIM_IMAGE_COMP)
249  set(_paraview_default_image_compare_method "VTK_TESTING_IMAGE_COMPARE_METHOD=TIGHT_VALID")
250  else ()
251  set(_paraview_default_image_compare_method "VTK_TESTING_IMAGE_COMPARE_METHOD=LEGACY_VALID")
252  endif ()
253  # METHOD can have one of the following values:
254  # ``TIGHT_VALID``: Uses euclidian type metrics to compare baselines. Baseline
255  # comparison is sensitive to outliers in this setting.
256  #``LOOSE_VALID``: Uses L1 type metrics to compare baselines. Baseline comparison
257  # is somewhat more forgiving. Typical use cases involve rendering that is highly GPU
258  # dependent, and baselines with text.
259  # ``LEGACY_VALID``: Uses legacy image compare. This metric generates a lot of
260  # false negatives. It is recommended not to use it.
261  #
262  # If this variable is not set, a test will use the the default image compare method as defined above
263  set(_paraview_image_compare_method ${_paraview_default_image_compare_method})
264  if (DEFINED "${_paraview_add_tests_name}_METHOD")
265  if ("${${_paraview_add_tests_name}_METHOD}" STREQUAL "LEGACY_VALID")
266  set(_paraview_image_compare_method "VTK_TESTING_IMAGE_COMPARE_METHOD=LEGACY_VALID")
267  elseif ("${${_paraview_add_tests_name}_METHOD}" STREQUAL "LOOSE_VALID")
268  set(_paraview_image_compare_method "VTK_TESTING_IMAGE_COMPARE_METHOD=LOOSE_VALID")
269  elseif ("${${_paraview_add_tests_name}_METHOD}" STREQUAL "TIGHT_VALID")
270  set(_paraview_image_compare_method "VTK_TESTING_IMAGE_COMPARE_METHOD=TIGHT_VALID")
271  endif ()
272  endif ()
273  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
274  PROPERTY
275  ENVIRONMENT "${_paraview_add_tests_ENVIRONMENT};${_paraview_image_compare_method}")
276  if (DEFINED "${_paraview_add_tests_name}_TIMEOUT")
277  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
278  PROPERTY
279  TIMEOUT ${${_paraview_add_tests_name}_TIMEOUT}
280  )
281  endif()
282  if (DEFINED _paraview_add_tests_NUMPROCS)
283  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
284  PROPERTY
285  PROCESSORS "${_paraview_add_tests_NUMPROCS}")
286  endif ()
287  if (${_paraview_add_tests_name}_FORCE_SERIAL OR _paraview_add_tests_FORCE_SERIAL)
288  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
289  PROPERTY
290  RUN_SERIAL ON)
291  elseif (NOT DEFINED _paraview_add_tests_TEST_NAME AND EXISTS "${_paraview_add_tests_script}")
292  # if the XML test contains PARAVIEW_TEST_ROOT we assume that we may be writing
293  # to that file and reading it back in so we add a resource lock on the XML
294  # file so that the pv.X, pvcx.X and pvcrs.X tests don't run simultaneously.
295  # we only need to do this if the test isn't forced to be serial already.
296  if (NOT IS_DIRECTORY "${_paraview_add_tests_script}" AND NOT ${_paraview_add_tests_name}_FORCE_LOCK)
297  file(STRINGS "${_paraview_add_tests_script}" _paraview_add_tests_paraview_test_root REGEX PARAVIEW_TEST_ROOT)
298  endif ()
299  if (${_paraview_add_tests_name}_FORCE_LOCK OR _paraview_add_tests_paraview_test_root)
300  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
301  PROPERTY
302  RESOURCE_LOCK "${_paraview_add_tests_script}")
303  endif ()
304  endif ()
305 
306  # XXX(gitlab-ci): Prevent tests from timing out after a long time. As to
307  # why the tests hang in this situation is not yet known. May be related to
308  # https://gitlab.kitware.com/paraview/paraview/-/issues/20697
309  set_property(TEST "${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}"
310  PROPERTY
311  TIMEOUT_AFTER_MATCH "5" "Couldn't find object\;Endian handshake failed")
312  endforeach ()
313 endfunction ()
314 
315 function(_get_prefix varname default)
316  cmake_parse_arguments(_get_prefix
317  ""
318  "PREFIX"
319  ""
320  ${ARGN})
321  if (_get_prefix_PREFIX)
322  set(${varname} "${_get_prefix_PREFIX}" PARENT_SCOPE)
323  else()
324  set(${varname} "${default}" PARENT_SCOPE)
325  endif()
326 endfunction()
327 
328 # If NUMSERVERS is specified in ${ARGN} then returns in varname the number of servers to use for the test,
329 # otherwise returns the "NOT_FOUND" value.
330 function(_get_num_servers varname)
331  cmake_parse_arguments(_get_num_servers
332  ""
333  "NUMSERVERS"
334  ""
335  ${ARGN})
336  if (_get_num_servers_NUMSERVERS)
337  set(${varname} "${_get_num_servers_NUMSERVERS}" PARENT_SCOPE)
338  else()
339  set(${varname} "NOT_FOUND" PARENT_SCOPE)
340  endif()
341 endfunction()
342 
344  _get_prefix(chosen_prefix "pv" ${ARGN})
345  _paraview_add_tests("paraview_add_client_tests"
346  PREFIX "${chosen_prefix}"
347  _DISABLE_SUFFIX "_DISABLE_C"
348  _COMMAND_PATTERN
349  __paraview_smtesting_args__
350  --client __paraview_client__
351  --enable-bt
352  __paraview_args__
353  __paraview_script__
354  __paraview_client_args__
355  --dr
356  --exit
357  ${ARGN})
358 endfunction ()
359 
361  _get_prefix(chosen_prefix "pvcs" ${ARGN})
362  set(_paraview_add_tests_args
363  PREFIX "${chosen_prefix}"
364  _DISABLE_SUFFIX "_DISABLE_CS"
365  _COMMAND_PATTERN
366  __paraview_smtesting_args__
367  --server "$<TARGET_FILE:ParaView::pvserver>"
368  --bind-address 127.0.0.1
369  --enable-bt
370  __paraview_args__
371  --client __paraview_client__
372  --enable-bt
373  __paraview_args__
374  __paraview_script__
375  __paraview_client_args__
376  --dr
377  --exit
378  ${ARGN}
379  )
380 
381  _get_num_servers(num_servers ${ARGN})
382  if (NOT num_servers STREQUAL "NOT_FOUND")
383  set(_paraview_add_tests_args ${_paraview_add_tests_args};
384  # Set the number of pvservers through the SMTESTDRIVER_MPI_NUMPROCS environment variable.
385  ENVIRONMENT
386  SMTESTDRIVER_MPI_NUMPROCS=${num_servers}
387  # Requires CTest to reserve NUMPROCS among the available processors
388  NUMPROCS "${num_servers}"
389  )
390  endif()
391 
392  _paraview_add_tests("paraview_add_client_server_tests" ${_paraview_add_tests_args})
393 endfunction ()
394 
396  _get_prefix(chosen_prefix "pvcrs" ${ARGN})
397  set(_paraview_add_tests_args
398  PREFIX "${chosen_prefix}"
399  _DISABLE_SUFFIX "_DISABLE_CRS"
400  _COMMAND_PATTERN
401  __paraview_smtesting_args__
402  --data-server "$<TARGET_FILE:ParaView::pvdataserver>"
403  --bind-address 127.0.0.1
404  --enable-bt
405  __paraview_args__
406  --render-server "$<TARGET_FILE:ParaView::pvrenderserver>"
407  --bind-address 127.0.0.1
408  --enable-bt
409  __paraview_args__
410  --client __paraview_client__
411  --enable-bt
412  __paraview_args__
413  __paraview_script__
414  __paraview_client_args__
415  --dr
416  --exit
417  ${ARGN})
418 
419  _get_num_servers(num_servers ${ARGN})
420  if (NOT num_servers STREQUAL "NOT_FOUND")
421  set(_paraview_add_tests_args ${_paraview_add_tests_args};
422  # Set the number of pvservers through the SMTESTDRIVER_MPI_NUMPROCS environment variable.
423  ENVIRONMENT
424  SMTESTDRIVER_MPI_NUMPROCS=${num_servers}
425  # Requires CTest to reserve NUMPROCS among the available processors
426  NUMPROCS "${num_servers}"
427  )
428  endif()
429 
430  _paraview_add_tests("paraview_add_client_server_render_tests" ${_paraview_add_tests_args})
431 endfunction ()
432 
434  _get_prefix(chosen_prefix "pvcs-multi-servers" ${ARGN})
435  _paraview_add_tests("paraview_add_multi_server_tests"
436  PREFIX "${chosen_prefix}"
437  SUFFIX "-${count}"
438  _COMMAND_PATTERN
439  __paraview_smtesting_args__
440  --test-multi-servers "${count}"
441  --server "$<TARGET_FILE:ParaView::pvserver>"
442  --bind-address 127.0.0.1
443  --enable-bt
444  --client __paraview_client__
445  --enable-bt
446  __paraview_args__
447  __paraview_script__
448  __paraview_client_args__
449  --dr
450  --exit
451  ${ARGN})
452 endfunction ()
453 
455  math(EXPR _paraview_add_tile_display_cpu_count "${width} * ${height}")
456 
457  if (_paraview_add_tile_display_cpu_count GREATER 1 AND NOT PARAVIEW_USE_MPI)
458  # we can run 1x1 tile display tests on non MPI builds.
459  return ()
460  endif ()
461 
462  _get_prefix(chosen_prefix "pvcs-tile-display" ${ARGN})
463  _paraview_add_tests("paraview_add_tile_display_tests"
464  PREFIX "${chosen_prefix}"
465  SUFFIX "-${width}x${height}"
466  ENVIRONMENT
467  PV_SHARED_WINDOW_SIZE=800x600
468  SMTESTDRIVER_MPI_NUMPROCS=${_paraview_add_tile_display_cpu_count}
469  NUMPROCS "${_paraview_add_tile_display_cpu_count}"
470  _COMMAND_PATTERN
471  __paraview_smtesting_args__
472  --server "$<TARGET_FILE:ParaView::pvserver>"
473  --bind-address 127.0.0.1
474  --enable-bt
475  --tdx=${width}
476  --tdy=${height}
477  # using offscreen to avoid clobbering display (although should not be
478  # necessary) when running tests in parallel.
479  --force-offscreen-rendering
480  --client __paraview_client__
481  --enable-bt
482  __paraview_args__
483  __paraview_script__
484  __paraview_client_args__
485  --dr
486  --exit
487  ${ARGN})
488 endfunction ()
489 
490 function (paraview_add_cave_tests num_ranks config)
491  if (num_ranks GREATER 1 AND NOT PARAVIEW_USE_MPI)
492  return ()
493  endif ()
494 
495  get_filename_component(_config_name "${config}" NAME_WE)
496 
497  _get_prefix(chosen_prefix "pvcs-cave-${_config_name}" ${ARGN})
498  _paraview_add_tests("paraview_add_cave_tests"
499  PREFIX "${chosen_prefix}"
500  SUFFIX "-${num_ranks}"
501  ENVIRONMENT
502  PV_SHARED_WINDOW_SIZE=400x300
503  SMTESTDRIVER_MPI_NUMPROCS=${num_ranks}
504  NUMPROCS "${num_ranks}"
505  _COMMAND_PATTERN
506  __paraview_smtesting_args__
507  --server "$<TARGET_FILE:ParaView::pvserver>"
508  --bind-address 127.0.0.1
509  --enable-bt
510  # using offscreen to avoid clobbering display (although should not be
511  # necessary) when running tests in parallel.
512  --force-offscreen-rendering
513  --pvx
514  ${config}
515  --client __paraview_client__
516  --enable-bt
517  __paraview_args__
518  __paraview_script__
519  __paraview_client_args__
520  --dr
521  --exit
522  ${ARGN})
523 endfunction ()
524 
525 # This is a catch-all function to run any custom command as the "client"
526 # using th smTestDriver. Note, the command must print "Process started" for
527 # smTestDriver to treat it as started otherwise the test will fail.
528 # The command to execute is passed as {ARGN} and is suffixed by each of the
529 # TEST_SCRIPTS provided, one at at time.
530 function (paraview_add_test)
531  _get_prefix(chosen_prefix "paraview" ${ARGN})
532  _paraview_add_tests("paraview_add_test"
533  PREFIX "${chosen_prefix}"
534  _COMMAND_PATTERN
535  __paraview_smtesting_args__
536  --client
537  __paraview_args__
538  __paraview_scriptpath__
539  ${ARGN})
540 endfunction ()
541 
542 # Same as `paraview_add_test` except makes smTestDriver run the command using
543 # mpi. If `PARAVIEW_USE_MPI` if not defined, this does not add any test.
544 function (paraview_add_test_mpi)
545  if (PARAVIEW_USE_MPI)
546  _get_prefix(chosen_prefix "paraview-mpi" ${ARGN})
547  _paraview_add_tests("paraview_add_test_mpi"
548  PREFIX "${chosen_prefix}"
549  NUMPROCS 2 # See Utilities/TestDriver/CMakeLists.txt (PARAVIEW_MPI_MAX_NUMPROCS)
550  _COMMAND_PATTERN
551  __paraview_smtesting_args__
552  --client-mpi
553  __paraview_args__
554  __paraview_scriptpath__
555  ${ARGN})
556  endif ()
557 endfunction ()
558 
559 
560 # if PARAVIEW_USE_MPI, calls paraview_add_test_mpi(), else calls
561 # paraview_add_test()
562 function (paraview_add_test_mpi_optional)
563  if (PARAVIEW_USE_MPI)
564  paraview_add_test_mpi(${ARGN})
565  else()
566  paraview_add_test(${ARGN})
567  endif()
568 endfunction()
data
address
function paraview_add_test_mpi()
function paraview_add_cave_tests(num_ranks, config)
function _get_num_servers(varname)
function paraview_add_tile_display_tests(width, height)
string
function paraview_add_client_server_tests()
function paraview_add_multi_server_tests(count)
function paraview_add_test_pvbatch_mpi()
function paraview_add_test_pvbatch()
function paraview_add_test_python()
height
function paraview_add_test()
function _get_prefix(varname, default)
function _paraview_add_tests(function)
function paraview_add_client_server_render_tests()
function paraview_add_client_tests()
function paraview_add_test_driven()