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> --bind-address 127.0.0.1
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\;Endian handshake failed")
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  --bind-address 127.0.0.1
365  --enable-bt
366  __paraview_args__
367  --client __paraview_client__
368  --enable-bt
369  __paraview_args__
370  __paraview_script__
371  __paraview_client_args__
372  --dr
373  --exit
374  ${ARGN}
375  )
376 
377  _get_num_servers(num_servers ${ARGN})
378  if (NOT num_servers STREQUAL "NOT_FOUND")
379  set(_paraview_add_tests_args ${_paraview_add_tests_args};
380  # Set the number of pvservers through the SMTESTDRIVER_MPI_NUMPROCS environment variable.
381  ENVIRONMENT
382  SMTESTDRIVER_MPI_NUMPROCS=${num_servers}
383  # Requires CTest to reserve NUMPROCS among the available processors
384  NUMPROCS "${num_servers}"
385  )
386  endif()
387 
388  _paraview_add_tests("paraview_add_client_server_tests" ${_paraview_add_tests_args})
389 endfunction ()
390 
392  _get_prefix(chosen_prefix "pvcrs" ${ARGN})
393  set(_paraview_add_tests_args
394  PREFIX "${chosen_prefix}"
395  _DISABLE_SUFFIX "_DISABLE_CRS"
396  _COMMAND_PATTERN
397  __paraview_smtesting_args__
398  --data-server "$<TARGET_FILE:ParaView::pvdataserver>"
399  --bind-address 127.0.0.1
400  --enable-bt
401  __paraview_args__
402  --render-server "$<TARGET_FILE:ParaView::pvrenderserver>"
403  --bind-address 127.0.0.1
404  --enable-bt
405  __paraview_args__
406  --client __paraview_client__
407  --enable-bt
408  __paraview_args__
409  __paraview_script__
410  __paraview_client_args__
411  --dr
412  --exit
413  ${ARGN})
414 
415  _get_num_servers(num_servers ${ARGN})
416  if (NOT num_servers STREQUAL "NOT_FOUND")
417  set(_paraview_add_tests_args ${_paraview_add_tests_args};
418  # Set the number of pvservers through the SMTESTDRIVER_MPI_NUMPROCS environment variable.
419  ENVIRONMENT
420  SMTESTDRIVER_MPI_NUMPROCS=${num_servers}
421  # Requires CTest to reserve NUMPROCS among the available processors
422  NUMPROCS "${num_servers}"
423  )
424  endif()
425 
426  _paraview_add_tests("paraview_add_client_server_render_tests" ${_paraview_add_tests_args})
427 endfunction ()
428 
430  _get_prefix(chosen_prefix "pvcs-multi-servers" ${ARGN})
431  _paraview_add_tests("paraview_add_multi_server_tests"
432  PREFIX "${chosen_prefix}"
433  SUFFIX "-${count}"
434  _COMMAND_PATTERN
435  __paraview_smtesting_args__
436  --test-multi-servers "${count}"
437  --server "$<TARGET_FILE:ParaView::pvserver>"
438  --bind-address 127.0.0.1
439  --enable-bt
440  --client __paraview_client__
441  --enable-bt
442  __paraview_args__
443  __paraview_script__
444  __paraview_client_args__
445  --dr
446  --exit
447  ${ARGN})
448 endfunction ()
449 
451  math(EXPR _paraview_add_tile_display_cpu_count "${width} * ${height}")
452 
453  if (_paraview_add_tile_display_cpu_count GREATER 1 AND NOT PARAVIEW_USE_MPI)
454  # we can run 1x1 tile display tests on non MPI builds.
455  return ()
456  endif ()
457 
458  _get_prefix(chosen_prefix "pvcs-tile-display" ${ARGN})
459  _paraview_add_tests("paraview_add_tile_display_tests"
460  PREFIX "${chosen_prefix}"
461  SUFFIX "-${width}x${height}"
462  ENVIRONMENT
463  PV_SHARED_WINDOW_SIZE=800x600
464  SMTESTDRIVER_MPI_NUMPROCS=${_paraview_add_tile_display_cpu_count}
465  NUMPROCS "${_paraview_add_tile_display_cpu_count}"
466  _COMMAND_PATTERN
467  __paraview_smtesting_args__
468  --server "$<TARGET_FILE:ParaView::pvserver>"
469  --bind-address 127.0.0.1
470  --enable-bt
471  --tdx=${width}
472  --tdy=${height}
473  # using offscreen to avoid clobbering display (although should not be
474  # necessary) when running tests in parallel.
475  --force-offscreen-rendering
476  --client __paraview_client__
477  --enable-bt
478  __paraview_args__
479  __paraview_script__
480  __paraview_client_args__
481  --dr
482  --exit
483  ${ARGN})
484 endfunction ()
485 
486 function (paraview_add_cave_tests num_ranks config)
487  if (num_ranks GREATER 1 AND NOT PARAVIEW_USE_MPI)
488  return ()
489  endif ()
490 
491  get_filename_component(_config_name "${config}" NAME_WE)
492 
493  _get_prefix(chosen_prefix "pvcs-cave-${_config_name}" ${ARGN})
494  _paraview_add_tests("paraview_add_cave_tests"
495  PREFIX "${chosen_prefix}"
496  SUFFIX "-${num_ranks}"
497  ENVIRONMENT
498  PV_SHARED_WINDOW_SIZE=400x300
499  SMTESTDRIVER_MPI_NUMPROCS=${num_ranks}
500  NUMPROCS "${num_ranks}"
501  _COMMAND_PATTERN
502  __paraview_smtesting_args__
503  --server "$<TARGET_FILE:ParaView::pvserver>"
504  --bind-address 127.0.0.1
505  --enable-bt
506  # using offscreen to avoid clobbering display (although should not be
507  # necessary) when running tests in parallel.
508  --force-offscreen-rendering
509  --pvx
510  ${config}
511  --client __paraview_client__
512  --enable-bt
513  __paraview_args__
514  __paraview_script__
515  __paraview_client_args__
516  --dr
517  --exit
518  ${ARGN})
519 endfunction ()
520 
521 # This is a catch-all function to run any custom command as the "client"
522 # using th smTestDriver. Note, the command must print "Process started" for
523 # smTestDriver to treat it as started otherwise the test will fail.
524 # The command to execute is passed as {ARGN} and is suffixed by each of the
525 # TEST_SCRIPTS provided, one at at time.
526 function (paraview_add_test)
527  _get_prefix(chosen_prefix "paraview" ${ARGN})
528  _paraview_add_tests("paraview_add_test"
529  PREFIX "${chosen_prefix}"
530  _COMMAND_PATTERN
531  __paraview_smtesting_args__
532  --client
533  __paraview_args__
534  __paraview_scriptpath__
535  ${ARGN})
536 endfunction ()
537 
538 # Same as `paraview_add_test` except makes smTestDriver run the command using
539 # mpi. If `PARAVIEW_USE_MPI` if not defined, this does not add any test.
540 function (paraview_add_test_mpi)
541  if (PARAVIEW_USE_MPI)
542  _get_prefix(chosen_prefix "paraview-mpi" ${ARGN})
543  _paraview_add_tests("paraview_add_test_mpi"
544  PREFIX "${chosen_prefix}"
545  NUMPROCS 2 # See Utilities/TestDriver/CMakeLists.txt (PARAVIEW_MPI_MAX_NUMPROCS)
546  _COMMAND_PATTERN
547  __paraview_smtesting_args__
548  --client-mpi
549  __paraview_args__
550  __paraview_scriptpath__
551  ${ARGN})
552  endif ()
553 endfunction ()
554 
555 
556 # if PARAVIEW_USE_MPI, calls paraview_add_test_mpi(), else calls
557 # paraview_add_test()
558 function (paraview_add_test_mpi_optional)
559  if (PARAVIEW_USE_MPI)
560  paraview_add_test_mpi(${ARGN})
561  else()
562  paraview_add_test(${ARGN})
563  endif()
564 endfunction()
data
function paraview_add_client_server_render_tests()
address
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()