mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-02-05 16:20:10 +08:00
CMake: Use helper libraries for nczarr tests
Avoids rebuilding the same files multiple times
This commit is contained in:
parent
cb61d34185
commit
0b9c9941bc
@ -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})
|
||||
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})
|
||||
|
||||
INCLUDE_DIRECTORIES(../libnczarr ../plugins ${CMAKE_SOURCE_DIR}/nczarr_test)
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user