mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
25f062528b
The file docs/indexing.dox tries to provide design information for the refactoring. The primary change is to replace all walking of linked lists with the use of the NCindex data structure. Ncindex is a combination of a hash table (for name-based lookup) and a vector (for walking the elements in the index). Additionally, global vectors are added to NC_HDF5_FILE_INFO_T to support direct mapping of an e.g. dimid to the NC_DIM_INFO_T object. These global vectors exist for dimensions, types, and groups because they have globally unique id numbers. WARNING: 1. since libsrc4 and libsrchdf4 share code, there are also changes in libsrchdf4. 2. Any outstanding pull requests that change libsrc4 or libhdf4 are likely to cause conflicts with this code. 3. The original reason for doing this was for performance improvements, but as noted elsewhere, this may not be significant because the meta-data read performance apparently is being dominated by the hdf5 library because we do bulk meta-data reading rather than lazy reading.
98 lines
3.1 KiB
CMake
98 lines
3.1 KiB
CMake
# Some extra tests
|
|
SET(NC4_TESTS tst_dims tst_dims2 tst_dims3 tst_files tst_files4
|
|
tst_vars tst_varms tst_unlim_vars tst_converts tst_converts2
|
|
tst_grps tst_grps2 tst_compounds tst_compounds2 tst_compounds3
|
|
tst_opaques tst_strings tst_strings2 tst_interops tst_interops4
|
|
tst_interops6 tst_enums tst_coords tst_coords2 tst_coords3 tst_vars3
|
|
tst_vars4 tst_chunks tst_chunks2 tst_utf8 tst_fills tst_fills2
|
|
tst_fillbug tst_xplatform2 tst_endian_fill tst_atts t_type
|
|
cdm_sea_soundings tst_vl tst_atts1 tst_atts2 tst_vars2 tst_files5
|
|
tst_files6 tst_sync tst_h_strbug tst_h_refs tst_h_scalar tst_rename
|
|
tst_rename2 tst_h5_endians tst_atts_string_rewrite tst_put_vars_two_unlim_dim
|
|
tst_hdf5_file_compat tst_fill_attr_vanish tst_rehash tst_types tst_bug324 tst_filterparser)
|
|
|
|
# Note, renamegroup needs to be compiled before run_grp_rename
|
|
|
|
IF(BUILD_UTILITIES)
|
|
SET(NC4_TESTS ${NC4_TESTS} tst_xplatform)
|
|
build_bin_test(renamegroup)
|
|
add_sh_test(nc_test4 run_grp_rename)
|
|
ADD_SH_TEST(nc_test4 tst_misc)
|
|
IF(ENABLE_FILTER_TESTING)
|
|
build_bin_test(test_filter)
|
|
build_bin_test(test_filter_misc)
|
|
ADD_SH_TEST(nc_test4 tst_filter)
|
|
ENDIF(ENABLE_FILTER_TESTING)
|
|
|
|
ENDIF(BUILD_UTILITIES)
|
|
|
|
##
|
|
# The shell script, run_empty_vlen_test.sh,
|
|
# depends on the 'tst_empty_vlen_unlim' binary.
|
|
##
|
|
BUILD_BIN_TEST(tst_empty_vlen_unlim)
|
|
ADD_SH_TEST(nc_test4 run_empty_vlen_test)
|
|
|
|
IF(NOT MSVC)
|
|
SET(NC4_TESTS ${NC4_TESTS} tst_interops5 tst_camrun)
|
|
ENDIF()
|
|
|
|
# If the v2 API was built, add the test program.
|
|
IF(ENABLE_V2_API)
|
|
build_bin_test(tst_v2)
|
|
ENDIF()
|
|
|
|
IF(LARGE_FILE_TESTS)
|
|
SET(NC4_TESTS ${NC4_TESTS} tst_large tst_large2)
|
|
ENDIF()
|
|
|
|
|
|
IF(USE_SZIP)
|
|
BUILD_BIN_TEST(test_szip)
|
|
BUILD_BIN_TEST(h5testszip)
|
|
IF(BUILD_UTILITIES)
|
|
add_sh_test(nc_test4 tst_szip)
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
IF(BUILD_BENCHMARKS)
|
|
add_sh_test(nc_test4 run_bm_test1)
|
|
add_sh_test(nc_test4 run_bm_elena)
|
|
add_sh_test(nc_test4 run_bm_test2)
|
|
add_sh_test(nc_test4 run_tst_chunks)
|
|
add_sh_test(nc_test4 run_bm_ar4)
|
|
add_sh_test(nc_test4 run_get_knmi_files)
|
|
|
|
SET(NC4_TESTS ${NC4_TESTS} tst_create_files bm_file tst_chunks3 tst_ar4 tst_ar4_3d tst_ar4_4d bm_many_objs tst_h_many_atts bm_many_atts tst_files2 tst_files3 tst_ar5 tst_h_files3 tst_mem tst_knmi bm_netcdf4_recs)
|
|
IF(TEST_PARALLEL)
|
|
add_sh_test(nc_test4 run_par_bm_test)
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
# Copy some test files from current source dir to out-of-tree build dir.
|
|
FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/ref_bzip2.c ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.h5 ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl)
|
|
FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
|
|
IF(MSVC)
|
|
FILE(COPY ${COPY_FILES} DESTINATION ${RUNTIME_OUTPUT_DIRECTORY}/)
|
|
ENDIF()
|
|
|
|
|
|
FOREACH(CTEST ${NC4_TESTS})
|
|
add_bin_test(nc_test4 ${CTEST})
|
|
ENDFOREACH()
|
|
|
|
IF(TEST_PARALLEL4)
|
|
build_bin_test(tst_mpi_parallel)
|
|
build_bin_test(tst_parallel)
|
|
build_bin_test(tst_parallel3)
|
|
build_bin_test(tst_parallel4)
|
|
build_bin_test(tst_nc4perf)
|
|
build_bin_test(tst_mode)
|
|
build_bin_test(tst_simplerw_coll_r)
|
|
add_sh_test(nc_test4 run_par_test)
|
|
ENDIF()
|
|
|
|
ADD_EXTRA_DIST(findplugin.in)
|
|
|
|
ADD_SUBDIRECTORY(hdf5plugins)
|