diff --git a/nczarr_test/CMakeLists.txt b/nczarr_test/CMakeLists.txt index 09b013823b..ced017dbee 100644 --- a/nczarr_test/CMakeLists.txt +++ b/nczarr_test/CMakeLists.txt @@ -55,36 +55,54 @@ ENDIF() IF(ENABLE_TESTS) - SET(COMMONSRC ut_util.c ut_test.c ${XGETOPTSRC}) - - SET(TSTCOMMONSRC test_utils.c test_utils.h ${XGETOPTSRC}) - - INCLUDE_DIRECTORIES(../libnczarr ../plugins ${CMAKE_SOURCE_DIR}/nczarr_test) + add_library(ut_util ut_util.c ut_test.c ${XGETOPTSRC}) + target_include_directories(ut_util PUBLIC ../libnczarr ../plugins ${CMAKE_CURRENT_LIST_DIR}) + target_link_libraries(ut_util PUBLIC netcdf ${ALL_TLL_LIBS}) + + add_library(test_utils test_utils.c test_utils.h ${XGETOPTSRC}) + target_include_directories(test_utils PUBLIC ../libnczarr ../plugins ${CMAKE_CURRENT_LIST_DIR}) + target_link_libraries(test_utils PUBLIC netcdf ${ALL_TLL_LIBS}) + + set_target_properties(ut_util test_utils PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR} + RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR} + ) + + macro(build_bin_test_with_util_lib F UTIL_LIB) + build_bin_test(${F}) + target_link_libraries(${F} ${UTIL_LIB}) + endmacro() + + macro(add_bin_test_with_util_lib PREFIX F UTIL_LIB) + add_bin_test(${PREFIX} ${F}) + target_link_libraries(${PREFIX}_${F} ${UTIL_LIB}) + endmacro() # Base tests # The tests are set up as a combination of shell scripts and executables that # must be run in a particular order. It is painful but will use macros to help # keep it from being too bad. - BUILD_BIN_TEST(ut_map ${COMMONSRC}) - BUILD_BIN_TEST(ut_mapapi ${COMMONSRC}) - BUILD_BIN_TEST(ut_json ${COMMONSRC}) + build_bin_test_with_util_lib(ut_map ut_util) + build_bin_test_with_util_lib(ut_mapapi ut_util) + build_bin_test_with_util_lib(ut_json ut_util) - BUILD_BIN_TEST(test_fillonlyz ${TSTCOMMONSRC}) - BUILD_BIN_TEST(test_quantize ${TSTCOMMONSRC}) - BUILD_BIN_TEST(test_notzarr ${TSTCOMMONSRC}) + build_bin_test_with_util_lib(test_fillonlyz test_utils) + build_bin_test_with_util_lib(test_quantize test_utils) + build_bin_test_with_util_lib(test_notzarr test_utils) # ADD_BIN_TEST(nczarr_test test_endians ${TSTCOMMONSRC}) # Unlimited Tests IF(USE_HDF5) - ADD_BIN_TEST(nczarr_test test_unlim_vars ${TSTCOMMONSRC}) - ADD_BIN_TEST(nczarr_test test_put_vars_two_unlim_dim ${TSTCOMMONSRC}) - BUILD_BIN_TEST(test_zchunks ${COMMONSRC}) - BUILD_BIN_TEST(test_zchunks2 ${COMMONSRC}) - BUILD_BIN_TEST(test_zchunks3 ${COMMONSRC}) - BUILD_BIN_TEST(test_unlim_io ${TSTCOMMONSRC}) - BUILD_BIN_TEST(test_chunking ${TSTCOMMONSRC}) + add_bin_test_with_util_lib(nczarr_test test_unlim_vars test_utils) + add_bin_test_with_util_lib(nczarr_test test_put_vars_two_unlim_dim test_utils) + build_bin_test_with_util_lib(test_zchunks ut_util) + build_bin_test_with_util_lib(test_zchunks2 ut_util) + build_bin_test_with_util_lib(test_zchunks3 ut_util) + build_bin_test_with_util_lib(test_unlim_io test_utils) + build_bin_test_with_util_lib(test_chunking test_utils) ADD_SH_TEST(nczarr_test run_nccopyz) ADD_SH_TEST(nczarr_test run_unlim_io) ADD_SH_TEST(nczarr_test run_nccopy5) @@ -99,11 +117,11 @@ IF(ENABLE_TESTS) # Helper programs for testing BUILD_BIN_TEST(zhex) - BUILD_BIN_TEST(zisjson ${COMMONSRC}) + build_bin_test_with_util_lib(zisjson ut_util) TARGET_INCLUDE_DIRECTORIES(zisjson PUBLIC ../libnczarr) - BUILD_BIN_TEST(zs3parse ${COMMONSRC}) + build_bin_test_with_util_lib(zs3parse ut_util) TARGET_INCLUDE_DIRECTORIES(zs3parse PUBLIC ../libnczarr) - BUILD_BIN_TEST(zmapio ${COMMONSRC}) + build_bin_test_with_util_lib(zmapio ut_util) IF(ENABLE_S3 AND NOT WITH_S3_TESTING STREQUAL "NO") # Helper programs for testing @@ -132,9 +150,7 @@ IF(ENABLE_TESTS) endif() if(ENABLE_NCDUMPCHUNKS) - SET(ncdumpchunks_SOURCE ncdumpchunks.c) - SET(ncdumpchunks_SOURCE ${ncdumpchunks_SOURCE} ${XGETOPTSRC}) - BUILD_BIN_TEST(ncdumpchunks ${ncdumpchunks_SOURCE}) + build_bin_test_with_util_lib(ncdumpchunks ut_util) endif() IF(BUILD_UTILITIES) @@ -145,7 +161,7 @@ IF(ENABLE_TESTS) if(LARGE_FILE_TESTS) BUILD_BIN_TEST(test_readcaching}) BUILD_BIN_TEST(test_writecaching}) - BUILD_BIN_TEST(test_chunkcases ${TSTCOMMONSRC}) + build_bin_test_with_util_lib(test_chunkcases test_utils) add_sh_test(nczarr_test run_cachetest) add_sh_test(nczarr_test run_chunkcases) ENDIF() @@ -175,7 +191,7 @@ IF(ENABLE_TESTS) build_bin_test(test_nczfilter) build_bin_test(test_filter_vlen) build_bin_test(testfilter) - build_bin_test(testfilter_misc) + build_bin_test_with_util_lib(testfilter_misc test_utils) build_bin_test(testfilter_multi) build_bin_test(testfilter_order) build_bin_test(testfilter_repeat)