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