@@ -29,6 +29,13 @@ if (CO_SIM_IO_BUILD_MPI)
2929
3030endif ()
3131
32+ # "sh" is used in tests with two executables.
33+ # if it is not available then the tests are skipped
34+ find_program (SH_4_TESTS sh )
35+ if (NOT SH_4_TESTS)
36+ message (WARNING "\" sh\" program not found, some tests will be skipped!" )
37+ endif ()
38+
3239### C++ tests ###
3340function (add_cpp_executable TEST_SOURCE_FILE )
3441 get_filename_component (TEST_FILENAME ${TEST_SOURCE_FILE} NAME )
@@ -50,25 +57,32 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/run.sh $1\ &\ $2\ &\nwait\ %1\ &&\ wait\
5057# checking if the "run.sh" script return the correct exit codes
5158add_cpp_executable (test_success.cpp )
5259add_cpp_executable (test_fail.cpp )
53- add_test (NAME test_fail_fail COMMAND sh run.sh $<TARGET_FILE :test_fail_cpp_test > $<TARGET_FILE :test_fail_cpp_test >)
54- add_test (NAME test_success_fail COMMAND sh run.sh $<TARGET_FILE :test_success_cpp_test > $<TARGET_FILE :test_fail_cpp_test >)
55- add_test (NAME test_fail_success COMMAND sh run.sh $<TARGET_FILE :test_fail_cpp_test > $<TARGET_FILE :test_success_cpp_test >)
56- add_test (NAME test_success_success COMMAND sh run.sh $<TARGET_FILE :test_success_cpp_test > $<TARGET_FILE :test_success_cpp_test >)
57- set_tests_properties (test_fail_fail test_success_fail test_fail_success PROPERTIES WILL_FAIL True )
60+ if (SH_4_TESTS)
61+ add_test (NAME test_fail_fail COMMAND sh run.sh $<TARGET_FILE :test_fail_cpp_test > $<TARGET_FILE :test_fail_cpp_test >)
62+ add_test (NAME test_success_fail COMMAND sh run.sh $<TARGET_FILE :test_success_cpp_test > $<TARGET_FILE :test_fail_cpp_test >)
63+ add_test (NAME test_fail_success COMMAND sh run.sh $<TARGET_FILE :test_fail_cpp_test > $<TARGET_FILE :test_success_cpp_test >)
64+ add_test (NAME test_success_success COMMAND sh run.sh $<TARGET_FILE :test_success_cpp_test > $<TARGET_FILE :test_success_cpp_test >)
65+ set_tests_properties (test_fail_fail test_success_fail test_fail_success PROPERTIES WILL_FAIL True )
66+ endif ()
5867
5968add_test (hello_cpp_test hello_cpp_test )
60- add_test (NAME connect_disconnect_cpp_test COMMAND sh run.sh $<TARGET_FILE :connect_disconnect_a_cpp_test > $<TARGET_FILE :connect_disconnect_b_cpp_test >)
61- add_test (NAME import_export_info_cpp_test COMMAND sh run.sh $<TARGET_FILE :export_info_cpp_test > $<TARGET_FILE :import_info_cpp_test >)
62- add_test (NAME import_export_data_cpp_test COMMAND sh run.sh $<TARGET_FILE :export_data_cpp_test > $<TARGET_FILE :import_data_cpp_test >)
63- add_test (NAME import_export_mesh_cpp_test COMMAND sh run.sh $<TARGET_FILE :export_mesh_cpp_test > $<TARGET_FILE :import_mesh_cpp_test >)
64- add_test (NAME run_runner_cpp_test COMMAND sh run.sh $<TARGET_FILE :run_cpp_test > $<TARGET_FILE :runner_cpp_test >)
69+
70+ if (SH_4_TESTS)
71+ add_test (NAME connect_disconnect_cpp_test COMMAND sh run.sh $<TARGET_FILE :connect_disconnect_a_cpp_test > $<TARGET_FILE :connect_disconnect_b_cpp_test >)
72+ add_test (NAME import_export_info_cpp_test COMMAND sh run.sh $<TARGET_FILE :export_info_cpp_test > $<TARGET_FILE :import_info_cpp_test >)
73+ add_test (NAME import_export_data_cpp_test COMMAND sh run.sh $<TARGET_FILE :export_data_cpp_test > $<TARGET_FILE :import_data_cpp_test >)
74+ add_test (NAME import_export_mesh_cpp_test COMMAND sh run.sh $<TARGET_FILE :export_mesh_cpp_test > $<TARGET_FILE :import_mesh_cpp_test >)
75+ add_test (NAME run_runner_cpp_test COMMAND sh run.sh $<TARGET_FILE :run_cpp_test > $<TARGET_FILE :runner_cpp_test >)
76+ endif ()
6577
6678function (add_mpi_test test_name exe_1 exe_2 )
67- foreach (num_processes RANGE 2 4)
68- set (full_test_name ${test_name} _mpi_test_${num_processes} )
69- message (STATUS "adding MPI test ${full_test_name} " )
70- add_test (NAME ${full_test_name} COMMAND sh run_mpi.sh ${exe_1} ${exe_2} ${num_processes} )
71- endforeach (num_processes )
79+ if (SH_4_TESTS)
80+ foreach (num_processes RANGE 2 4)
81+ set (full_test_name ${test_name} _mpi_test_${num_processes} )
82+ message (STATUS "adding MPI test ${full_test_name} " )
83+ add_test (NAME ${full_test_name} COMMAND sh run_mpi.sh ${exe_1} ${exe_2} ${num_processes} )
84+ endforeach (num_processes )
85+ endif ()
7286endfunction ()
7387
7488if (CO_SIM_IO_BUILD_MPI)
@@ -133,10 +147,13 @@ if(CO_SIM_IO_BUILD_C)
133147 endforeach (c_integration_test_file )
134148
135149 add_test (hello_c_test hello_c_test )
136- add_test (NAME connect_disconnect_c_test COMMAND bash run.sh $<TARGET_FILE :connect_disconnect_a_c_test > $<TARGET_FILE :connect_disconnect_b_c_test >)
137- add_test (NAME import_export_info_c_test COMMAND bash run.sh $<TARGET_FILE :export_info_c_test > $<TARGET_FILE :import_info_c_test >)
138- add_test (NAME import_export_data_c_test COMMAND bash run.sh $<TARGET_FILE :export_data_c_test > $<TARGET_FILE :import_data_c_test >)
139- add_test (NAME import_export_mesh_c_test COMMAND bash run.sh $<TARGET_FILE :export_mesh_c_test > $<TARGET_FILE :import_mesh_c_test >)
150+
151+ if (SH_4_TESTS)
152+ add_test (NAME connect_disconnect_c_test COMMAND bash run.sh $<TARGET_FILE :connect_disconnect_a_c_test > $<TARGET_FILE :connect_disconnect_b_c_test >)
153+ add_test (NAME import_export_info_c_test COMMAND bash run.sh $<TARGET_FILE :export_info_c_test > $<TARGET_FILE :import_info_c_test >)
154+ add_test (NAME import_export_data_c_test COMMAND bash run.sh $<TARGET_FILE :export_data_c_test > $<TARGET_FILE :import_data_c_test >)
155+ add_test (NAME import_export_mesh_c_test COMMAND bash run.sh $<TARGET_FILE :export_mesh_c_test > $<TARGET_FILE :import_mesh_c_test >)
156+ endif ()
140157
141158 if (CO_SIM_IO_BUILD_MPI)
142159 function (add_c_mpi_test_executable TEST_SOURCE_FILE )
0 commit comments