tCMakeLists.txt - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tCMakeLists.txt (5859B)
---
1 # Add the -config to all PISM test runs (necessary because we want to use the
2 # config file from *this* build, not the one that might be present in the
3 # install location).
4 file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/.petscrc "-config ${PROJECT_BINARY_DIR}/pism_config.nc")
5
6 # Copy nccmp.py into the build directory:
7 configure_file (${PROJECT_SOURCE_DIR}/util/nccmp.py ${PROJECT_BINARY_DIR}/nccmp.py COPYONLY)
8
9 # Set the location of PISM regression test scripts
10 set(PISM_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR})
11
12 set (MEMORYCHECK_COMMAND_OPTIONS "--dsymutil=yes --trace-children=yes --trace-children-skip=*python,*nccmp.py,*rm,*which,*env,*diff,*cp,*hydra_*")
13
14 function(add_memcheck_test name binary)
15 set(memcheck_command "${MEMORYCHECK_COMMAND} ${MEMORYCHECK_COMMAND_OPTIONS}")
16 separate_arguments(memcheck_command)
17 add_test(memcheck_${name} ${memcheck_command} ${binary} ${ARGN})
18 endfunction(add_memcheck_test)
19
20 function(set_memcheck_test_properties name)
21 set_tests_properties(memcheck_${name} ${ARGN})
22 endfunction(set_memcheck_test_properties)
23
24 # A macro simplifying test creation:
25 macro(pism_test name script)
26 add_test("${name}:${script}" ${PISM_TEST_DIR}/${script} ${PROJECT_BINARY_DIR} ${MPIEXEC} ${PROJECT_SOURCE_DIR})
27 if (${Pism_TEST_USING_VALGRIND})
28 add_memcheck_test("${name}:${script}" ${PISM_TEST_DIR}/${script} ${PROJECT_BINARY_DIR} ${MPIEXEC} ${PROJECT_SOURCE_DIR})
29 set_memcheck_test_properties("${name}:${script}"
30 PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR SUMMARY: [^0]")
31 endif()
32 endmacro()
33
34 macro(pism_python_test name script)
35 add_test("${name}:${script}" ${PISM_TEST_DIR}/${script} ${PROJECT_BINARY_DIR} ${MPIEXEC} ${PROJECT_SOURCE_DIR} -python ${PYTHON_EXECUTABLE})
36 endmacro()
37
38 # Tests themselves:
39 pism_test (pism_testing_tools test_regression_tools.py)
40
41 pism_test (pismr_exact_restartability_SIA_only test_01.sh)
42
43 pism_test (pismv_processor_independence test_02.sh)
44
45 pism_test (pismr_zero_length_run test_03.sh)
46
47 pism_test (pismr_regridding_during_bootstrapping test_04.sh)
48
49 pism_test (pismr_bootstrap_variable_order test_05.sh)
50
51 pism_test (pismr_bootstrap_variable_ranges test_06.sh)
52
53 pism_test (regridding:bootstrap_vs_regrid_file test_07.sh)
54
55 pism_test (regridding:vertical_direction test_08.sh)
56
57 pism_test (regridding:variable_order test_09.sh)
58
59 pism_test (regridding:processor_independence test_10.sh)
60
61 pism_test (regridding:no_enthalpy test_32.sh)
62
63 pism_test (SIA_mass_conservation test_12.sh)
64
65 pism_test (temperature_continuity_base_polythermal temp_continuity.py)
66
67 pism_test (enthalpy_symmetry_near_base test_13.sh)
68
69 pism_test (Verification:test_C test_15.sh)
70
71 pism_test (Verification:test_L test_16.sh)
72
73 pism_test (Verification:test_G test_17.sh)
74
75 pism_test (Verification:test_K test_18.sh)
76
77 pism_test (restart:i_vs_bootstrap_and_regrid_file test_23.sh)
78
79 pism_test (runtime_viewers test_27.sh)
80
81 pism_test (bootstrapping_incomplete_input test_28.sh)
82
83 pism_test (distributed_hydrology test_29.py)
84
85 pism_test (initialization_without_enthalpy test_31.sh)
86
87 pism_test (vertical_grid_expansion vertical_grid_expansion.sh)
88
89 pism_test (bed_deformation:LC:exact_restartability beddef_lc_restart.sh)
90
91 if (Pism_USE_PROJ)
92 pism_test (epsg_code_processing test_epsg_processing.py)
93 endif()
94
95 if(Pism_BUILD_EXTRA_EXECS)
96 # These tests require special executables. They are disabled unless
97 # these executables are built. This way we don't need to explain why
98 # "make && make test" shows some test failures when PISM is built
99 # with default settings.
100 pism_test (Verification:PISMBedThermalUnit_test_K btu_regression.sh)
101
102 pism_test (Verification:test_V_SSAFD_CFBC ssa/ssa_test_cfbc_fd.sh)
103
104 pism_test (Verification:test_V_SSAFEM_CFBC ssa/ssa_test_cfbc_fem.sh)
105
106 pism_test (Verification:test_I_SSAFD ssa/ssa_testi_fd.sh)
107
108 pism_test (Verification:test_I_SSAFEM ssa/ssa_testi_fem.sh)
109
110 pism_test (Verification:test_J_SSAFD ssa/ssa_testj_fd.sh)
111
112 pism_test (Verification:test_J_SSAFEM ssa/ssa_testj_fem.sh)
113
114 pism_test (Verification:SSAFEM_linear_flow ssa/ssafem_test_linear.sh)
115
116 pism_test (Verification:SSAFEM_plug_flow ssa/ssafem_test_plug.sh)
117 endif()
118
119 if(Pism_BUILD_PYTHON_BINDINGS)
120
121 pism_python_test (Python:Verification:test_I_SSAFD ssa/ssa_testi_fd.sh)
122
123 pism_python_test (Python:Verification:test_I_SSAFEM ssa/ssa_testi_fem.sh)
124
125 pism_python_test (Python:Verification:test_J_SSAFD ssa/ssa_testj_fd.sh)
126
127 pism_python_test (Python:Verification:test_J_SSAFEM ssa/ssa_testj_fem.sh)
128
129 pism_python_test (Python:Verification:SSAFEM_linear_flow ssa/ssafem_test_linear.sh)
130
131 pism_python_test (Python:Verification:SSAFEM_plug_flow ssa/ssafem_test_plug.sh)
132
133 pism_python_test (Python:Verification:test_V_SSAFD_CFBC ssa/ssa_test_cfbc_fd.sh)
134
135 pism_python_test (Python:Verification:test_V_SSAFEM_CFBC ssa/ssa_test_cfbc_fem.sh)
136
137 pism_python_test (Python:sia_forward.py test_33.sh)
138
139 # Inversion regression tests.
140
141 execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "import siple"
142 RESULT_VARIABLE IMPORT_SIPLE_ERRCODE
143 OUTPUT_QUIET ERROR_QUIET)
144
145 set (Pism_HAS_SIPLE ${IMPORT_SIPLE_ERRCODE} EQUAL 0)
146
147 # Copy over commonly used files
148 foreach (FILE
149 ${PROJECT_SOURCE_DIR}/examples/inverse/make_synth_ssa.py
150 ${PROJECT_SOURCE_DIR}/examples/inverse/pismi.py
151 ${PROJECT_SOURCE_DIR}/examples/inverse/verify_ssa_inv.py
152 inverse/build_tiny.py)
153 get_filename_component(OUTPUT ${FILE} NAME)
154 configure_file (${FILE} ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT} COPYONLY)
155 endforeach()
156
157
158 if (Pism_HAS_SIPLE) # siple is installed
159
160 message (STATUS "Enabling regression tests that use siple")
161
162 pism_python_test (Python:inversion:nlcg inverse/tiny_nlcg.sh)
163
164 endif()
165
166 pism_python_test (Python:inversion:tikhonov inverse/tiny_tikhonov_lmvm.sh)
167
168 endif()