2 set(_vtk_testing_python_exe
"$<TARGET_FILE:ParaView::pvpython>")
3 set(_vtk_test_python_args -dr ${paraview_python_args})
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}")
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}")
22 if (NOT (TARGET pvserver AND TARGET pvpython))
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)
34 "FORCE_SERIAL;FORCE_LOCK" 35 "LOAD_PLUGIN;PLUGIN_PATH;CLIENT;TEST_DIRECTORY;TEST_DATA_TARGET;PREFIX;SUFFIX;_ENABLE_SUFFIX;_DISABLE_SUFFIX;BASELINE_DIR;DATA_DIRECTORY;NUMPROCS" 36 "_COMMAND_PATTERN;LOAD_PLUGINS;PLUGIN_PATHS;TEST_SCRIPTS;ENVIRONMENT;ARGS;CLIENT_ARGS" 39 if (_paraview_add_tests_UNPARSED_ARGUMENTS)
41 "Unparsed arguments for ${function}: " 42 "${_paraview_add_tests_UNPARSED_ARGUMENTS}")
45 if (NOT DEFINED _paraview_add_tests__COMMAND_PATTERN)
47 "The `_COMMAND_PATTERN` argument is required.")
50 if (NOT DEFINED _paraview_add_tests_CLIENT)
51 set(_paraview_add_tests_CLIENT
52 "$<TARGET_FILE:ParaView::paraview>")
55 if (NOT DEFINED _paraview_add_tests_PREFIX)
56 set(_paraview_add_tests_PREFIX
"pv")
59 if (NOT DEFINED _paraview_add_tests_TEST_DIRECTORY)
60 set(_paraview_add_tests_TEST_DIRECTORY
61 "${CMAKE_BINARY_DIR}/Testing/Temporary")
64 if (NOT DEFINED _paraview_add_tests_DATA_DIRECTORY AND DEFINED _paraview_add_tests_default_data_directory)
65 set(_paraview_add_tests_DATA_DIRECTORY
66 "${_paraview_add_tests_default_data_directory}")
69 set(_paraview_add_tests_args
70 ${_paraview_add_tests_ARGS})
72 if (DEFINED _paraview_add_tests_PLUGIN_PATH)
73 if (DEFINED _paraview_add_tests_PLUGIN_PATHS)
75 "The `PLUGIN_PATH` argument is incompatible " 76 "with `PLUGIN_PATHS`.")
78 list(APPEND _paraview_add_tests_args
79 "--test-plugin-path=${_paraview_add_tests_PLUGIN_PATH}")
82 if (DEFINED _paraview_add_tests_PLUGIN_PATHS)
83 string(REPLACE
";" "," _plugin_paths
"${_paraview_add_tests_PLUGIN_PATHS}")
84 list(APPEND _paraview_add_tests_args
85 "--test-plugin-paths=${_plugin_paths}")
88 if (DEFINED _paraview_add_tests_LOAD_PLUGIN)
89 if (DEFINED _paraview_add_tests_LOAD_PLUGINS)
91 "The `LOAD_PLUGIN` argument is incompatible " 92 "with `LOAD_PLUGINS`.")
94 list(APPEND _paraview_add_tests_args
95 "--test-plugin=${_paraview_add_tests_LOAD_PLUGIN}")
98 if (DEFINED _paraview_add_tests_LOAD_PLUGINS)
99 string(REPLACE
";" "," _load_plugins
"${_paraview_add_tests_LOAD_PLUGINS}")
100 list(APPEND _paraview_add_tests_args
101 "--test-plugins=${_load_plugins}")
104 string(REPLACE
"__paraview_args__" "${_paraview_add_tests_args}" 105 _paraview_add_tests__COMMAND_PATTERN
106 "${_paraview_add_tests__COMMAND_PATTERN}")
107 string(REPLACE
"__paraview_client__" "${_paraview_add_tests_CLIENT}" 108 _paraview_add_tests__COMMAND_PATTERN
109 "${_paraview_add_tests__COMMAND_PATTERN}")
111 foreach (_paraview_add_tests_script IN LISTS _paraview_add_tests_TEST_SCRIPTS)
112 if (NOT IS_ABSOLUTE
"${_paraview_add_tests_script}")
113 set(_paraview_add_tests_script
114 "${CMAKE_CURRENT_SOURCE_DIR}/${_paraview_add_tests_script}")
116 get_filename_component(_paraview_add_tests_name
"${_paraview_add_tests_script}" NAME_WE)
117 set(_paraview_add_tests_name_base
"${_paraview_add_tests_name}")
118 string(APPEND _paraview_add_tests_name
"${_paraview_add_tests_SUFFIX}")
120 if (DEFINED _paraview_add_tests__DISABLE_SUFFIX AND ${_paraview_add_tests_name}${_paraview_add_tests__DISABLE_SUFFIX})
124 if (DEFINED _paraview_add_tests__ENABLE_SUFFIX AND NOT ${_paraview_add_tests_name}${_paraview_add_tests__ENABLE_SUFFIX})
128 if (NOT DEFINED _paraview_add_tests_TEST_DATA_TARGET)
129 if (DEFINED _paraview_add_tests_default_test_data_target)
130 set(_paraview_add_tests_TEST_DATA_TARGET
131 "${_paraview_add_tests_default_test_data_target}")
133 if (NOT DEFINED
"${_paraview_add_tests_name}_USES_DIRECT_DATA")
134 message(FATAL_ERROR
"The `TEST_DATA_TARGET` argument is required.")
139 # Build arguments to pass to the clients. 140 set(_paraview_add_tests_client_args
141 "--test-directory=${_paraview_add_tests_TEST_DIRECTORY}" 142 ${_paraview_add_tests_CLIENT_ARGS})
143 if (DEFINED _paraview_add_tests_BASELINE_DIR)
144 if (DEFINED
"${_paraview_add_tests_name}_BASELINE")
145 if (DEFINED
"${_paraview_add_tests_name}_USES_DIRECT_DATA")
146 list(APPEND _paraview_add_tests_client_args
147 "--test-baseline=${_paraview_add_tests_BASELINE_DIR}/${${_paraview_add_tests_name_base}_BASELINE}")
149 list(APPEND _paraview_add_tests_client_args
150 "--test-baseline=DATA{${_paraview_add_tests_BASELINE_DIR}/${${_paraview_add_tests_name_base}_BASELINE}}")
153 if (DEFINED
"${_paraview_add_tests_name}_USES_DIRECT_DATA")
154 list(APPEND _paraview_add_tests_client_args
155 "--test-baseline=${_paraview_add_tests_BASELINE_DIR}/${_paraview_add_tests_name_base}.png")
157 list(APPEND _paraview_add_tests_client_args
158 "--test-baseline=DATA{${_paraview_add_tests_BASELINE_DIR}/${_paraview_add_tests_name_base}.png}")
161 if (NOT DEFINED
"${_paraview_add_tests_name}_USES_DIRECT_DATA")
162 ExternalData_Expand_Arguments(
"${_paraview_add_tests_TEST_DATA_TARGET}" _
163 "DATA{${_paraview_add_tests_BASELINE_DIR}/,REGEX:${_paraview_add_tests_name_base}(-.*)?(_[0-9]+)?.png}")
166 if (DEFINED
"${_paraview_add_tests_name}_THRESHOLD")
167 list(APPEND _paraview_add_tests_client_args
168 "--test-threshold=${${_paraview_add_tests_name}_THRESHOLD}")
170 if (DEFINED _paraview_add_tests_DATA_DIRECTORY)
171 list(APPEND _paraview_add_tests_client_args
172 "--data-directory=${_paraview_add_tests_DATA_DIRECTORY}")
175 string(REPLACE
"__paraview_script__" "--test-script=${_paraview_add_tests_script}" 176 _paraview_add_tests_script_args
177 "${_paraview_add_tests__COMMAND_PATTERN}")
178 string(REPLACE
"__paraview_scriptpath__" "${_paraview_add_tests_script}" 179 _paraview_add_tests_script_args
180 "${_paraview_add_tests_script_args}")
181 string(REPLACE
"__paraview_client_args__" "${_paraview_add_tests_client_args}" 182 _paraview_add_tests_script_args
183 "${_paraview_add_tests_script_args}")
184 string(REPLACE
"__paraview_test_name__" "${_paraview_add_tests_name_base}" 185 _paraview_add_tests_script_args
186 "${_paraview_add_tests_script_args}")
189 NAME
"${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}" 190 COMMAND ParaView::smTestDriver
192 ${_paraview_add_tests_script_args})
193 if (DEFINED
"${_paraview_add_tests_name}_USES_DIRECT_DATA")
194 add_test(${testArgs})
196 ExternalData_add_test(
"${_paraview_add_tests_TEST_DATA_TARGET}" ${testArgs})
199 set_property(TEST
"${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}" 202 set_property(TEST
"${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}" 204 ENVIRONMENT
"${_paraview_add_tests_ENVIRONMENT}")
205 if (DEFINED _paraview_add_tests_NUMPROCS)
206 set_property(TEST
"${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}" 208 PROCESSORS
"${_paraview_add_tests_NUMPROCS}")
210 if (${_paraview_add_tests_name}_FORCE_SERIAL OR _paraview_add_tests_FORCE_SERIAL)
211 set_property(TEST
"${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}" 214 elseif (EXISTS
"${_paraview_add_tests_script}")
215 # if the XML test contains PARAVIEW_TEST_ROOT we assume that we may be writing 216 # to that file and reading it back in so we add a resource lock on the XML 217 # file so that the pv.X, pvcx.X and pvcrs.X tests don't run simultaneously. 218 # we only need to do this if the test isn't forced to be serial already. 219 if (NOT IS_DIRECTORY
"${_paraview_add_tests_script}" AND NOT ${_paraview_add_tests_name}_FORCE_LOCK)
220 file(STRINGS
"${_paraview_add_tests_script}" _paraview_add_tests_paraview_test_root REGEX PARAVIEW_TEST_ROOT)
222 if (${_paraview_add_tests_name}_FORCE_LOCK OR _paraview_add_tests_paraview_test_root)
223 set_property(TEST
"${_paraview_add_tests_PREFIX}.${_paraview_add_tests_name}" 225 RESOURCE_LOCK
"${_paraview_add_tests_script}")
237 if (_get_prefix_PREFIX)
238 set(${varname}
"${_get_prefix_PREFIX}" PARENT_SCOPE)
240 set(${varname}
"${default}" PARENT_SCOPE)
247 PREFIX
"${chosen_prefix}" 248 _DISABLE_SUFFIX
"_DISABLE_C" 250 --client __paraview_client__
254 __paraview_client_args__
263 PREFIX
"${chosen_prefix}" 264 _DISABLE_SUFFIX
"_DISABLE_CS" 266 --server
"$<TARGET_FILE:ParaView::pvserver>" 269 --client __paraview_client__
273 __paraview_client_args__
282 PREFIX
"${chosen_prefix}" 283 _DISABLE_SUFFIX
"_DISABLE_CRS" 285 --
data-server
"$<TARGET_FILE:ParaView::pvdataserver>" 288 --render-server
"$<TARGET_FILE:ParaView::pvrenderserver>" 291 --client __paraview_client__
295 __paraview_client_args__
302 _get_prefix(chosen_prefix
"pvcs-multi-clients" ${ARGN})
304 PREFIX
"${chosen_prefix}" 305 _ENABLE_SUFFIX
"_ENABLE_MULTI_CLIENT" 309 --server
"$<TARGET_FILE:ParaView::pvserver>" 312 --client __paraview_client__
316 __paraview_client_args__
320 --client __paraview_client__
323 __paraview_client_args__
331 _get_prefix(chosen_prefix
"pvcs-multi-servers" ${ARGN})
333 PREFIX
"${chosen_prefix}" 336 --test-multi-servers
"${count}" 337 --server
"$<TARGET_FILE:ParaView::pvserver>" 339 --client __paraview_client__
343 __paraview_client_args__
350 math(EXPR _paraview_add_tile_display_cpu_count
"${width} * ${height}")
352 if (_paraview_add_tile_display_cpu_count GREATER 1 AND NOT PARAVIEW_USE_MPI)
353 # we can run 1x1 tile display tests on non MPI builds. 357 _get_prefix(chosen_prefix "pvcs-tile-display" ${ARGN})
359 PREFIX
"${chosen_prefix}" 360 SUFFIX
"-${width}x${height}" 362 PV_SHARED_WINDOW_SIZE=800x600
363 SMTESTDRIVER_MPI_NUMPROCS=${_paraview_add_tile_display_cpu_count}
364 NUMPROCS
"${_paraview_add_tile_display_cpu_count}" 366 --server
"$<TARGET_FILE:ParaView::pvserver>" 370 # using offscreen to avoid clobbering display (although should not be 371 # necessary) when running tests in parallel. 372 --force-offscreen-rendering
373 --client __paraview_client__
377 __paraview_client_args__
384 if (num_ranks GREATER 1 AND NOT PARAVIEW_USE_MPI)
388 get_filename_component(_config_name "${config}
" NAME_WE) 390 _get_prefix(chosen_prefix "pvcs-cave-${_config_name}
" ${ARGN}) 392 PREFIX "${chosen_prefix}
" 393 SUFFIX "-${num_ranks}
" 395 PV_SHARED_WINDOW_SIZE=400x300 396 SMTESTDRIVER_MPI_NUMPROCS=${num_ranks} 397 NUMPROCS "${num_ranks}
" 399 --server "$<TARGET_FILE:ParaView::pvserver>
" 401 # using offscreen to avoid clobbering display (although should not be 402 # necessary) when running tests in parallel. 403 --force-offscreen-rendering 405 --client __paraview_client__ 409 __paraview_client_args__ 415 # This is a catch-all function to run any custom command as the "client
" 416 # using th smTestDriver. Note, the command must print "Process started
" for 417 # smTestDriver to treat it as started otherwise the test will fail. 418 # The command to execute is passed as {ARGN} and is suffixed by each of the 419 # TEST_SCRIPTS provided, one at at time. 420 function (paraview_add_test) 421 _get_prefix(chosen_prefix "paraview
" ${ARGN}) 423 PREFIX "${chosen_prefix}
" 427 __paraview_scriptpath__ 431 # Same as `paraview_add_test` except makes smTestDriver run the command using 432 # mpi. If `PARAVIEW_USE_MPI` if not defined, this does not add any test. 433 function (paraview_add_test_mpi) 434 if (PARAVIEW_USE_MPI) 435 _get_prefix(chosen_prefix "paraview-mpi
" ${ARGN}) 437 PREFIX "${chosen_prefix}
" 438 NUMPROCS 2 # See Utilities/TestDriver/CMakeLists.txt (PARAVIEW_MPI_MAX_NUMPROCS) 442 __paraview_scriptpath__ 448 # if PARAVIEW_USE_MPI, calls paraview_add_test_mpi(), else calls 449 # paraview_add_test() 450 function (paraview_add_test_mpi_optional) 451 if (PARAVIEW_USE_MPI) 452 paraview_add_test_mpi(${ARGN}) 454 paraview_add_test(${ARGN})
function paraview_add_client_server_tests()
function paraview_add_test()
function paraview_add_multi_server_tests(count)
function paraview_add_test_pvbatch()
function paraview_add_tile_display_tests(width, height)
function paraview_add_test_pvbatch_mpi()
function paraview_add_test_python()
function vtk_add_test_python_mpi()
.md MPI tests
function vtk_add_test_python()
.md Python tests
function paraview_add_multi_client_tests()
function paraview_add_test_driven()
function paraview_add_client_tests()
function _get_prefix(varname, default)
function paraview_add_client_server_render_tests()
function _paraview_add_tests(function)
function paraview_add_cave_tests(num_ranks, config)