############################################################################## ############################################################################## ### T E S T I N G ### ############################################################################## ############################################################################## #-- Copy all the dat files from the test directory into the source directory set (HDF4_REPACK_TEST_FILES hrepack_help.txt hrepack_check_help.txt image24pixel.txt image24plane.txt image8.txt info.txt ) foreach (h4_file ${HDF4_REPACK_TEST_FILES}) set (dest "${PROJECT_BINARY_DIR}/${h4_file}") #message (STATUS " Copying ${HDF4_MFHDF_HREPACK_SOURCE_DIR}/${h4_file} to ${PROJECT_BINARY_DIR}/") add_custom_command ( TARGET hrepack_check POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${HDF4_MFHDF_HREPACK_SOURCE_DIR}/${h4_file} ${dest} ) endforeach () #-- Adding test for test_hrepack for generating testfiles add_executable (test_hrepack ${HDF4_MFHDF_HREPACK_SOURCE_DIR}/hrepacktst.c) TARGET_C_PROPERTIES (test_hrepack STATIC " " " ") if (HDF4_BUILD_XDR_LIB) target_link_libraries (test_hrepack ${HDF4_MF_LIB_TARGET} ${HDF4_SRC_LIB_TARGET} ${LINK_LIBS} ${HDF4_MF_XDR_LIB_TARGET}) else () target_link_libraries (test_hrepack ${HDF4_MF_LIB_TARGET} ${HDF4_SRC_LIB_TARGET} ${LINK_LIBS}) endif () TARGET_NAMING (test_hrepack STATIC) macro (ADD_H4_TEST testname testtype testfile) if ("${testtype}" STREQUAL "SKIP") if (NOT HDF4_ENABLE_USING_MEMCHECKER) add_test ( NAME HREPACK-${testname}-SKIPPED COMMAND ${CMAKE_COMMAND} -E echo "SKIP -v -i ${PROJECT_BINARY_DIR}/${testfile} -o ${PROJECT_BINARY_DIR}/out-${testname}.${testfile} ${ARGN}" ) endif (NOT HDF4_ENABLE_USING_MEMCHECKER) else () add_test ( NAME HREPACK-${testname}-clearall-objects COMMAND ${CMAKE_COMMAND} -E remove out-${testname}.${testfile} ) set_tests_properties (HREPACK-${testname}-clearall-objects PROPERTIES DEPENDS HREPACK-test_hrepack LABELS ${PROJECT_NAME}) add_test ( NAME HREPACK-${testname} COMMAND $ -v -i ${PROJECT_BINARY_DIR}/${testfile} -o ${PROJECT_BINARY_DIR}/out-${testname}.${testfile} ${ARGN} ) set_tests_properties (HREPACK-${testname} PROPERTIES DEPENDS HREPACK-${testname}-clearall-objects LABELS ${PROJECT_NAME}) add_test ( NAME HREPACK-${testname}_DFF COMMAND $ ${PROJECT_BINARY_DIR}/${testfile} ${PROJECT_BINARY_DIR}/out-${testname}.${testfile} ) set_tests_properties (HREPACK-${testname}_DFF PROPERTIES DEPENDS HREPACK-${testname} LABELS ${PROJECT_NAME}) endif () endmacro () ############################################################################## ############################################################################## ### T H E T E S T S ### ############################################################################## ############################################################################## # Remove any output file left over from previous test run add_test ( NAME HREPACK-hrepack-clearall-objects COMMAND ${CMAKE_COMMAND} -E remove hrepack_help.out hrepack_check_help.out hrepacktst1.hdf hrepacktst2.hdf hrepacktst3.hdf ) if (NOT HDF4_ENABLE_USING_MEMCHECKER) add_test ( NAME HREPACK-hrepack_check COMMAND "${CMAKE_COMMAND}" -D "TEST_PROGRAM=$" -D "TEST_ARGS:STRING=${ARGN}" -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" -D "TEST_OUTPUT=hrepack_check_help.out" -D "TEST_EXPECT=1" -D "TEST_REFERENCE=hrepack_check_help.txt" -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" ) set_tests_properties (HREPACK-hrepack_check PROPERTIES DEPENDS HREPACK-hrepack-clearall-objects LABELS ${PROJECT_NAME}) endif () if (NOT HDF4_ENABLE_USING_MEMCHECKER) add_test ( NAME HREPACK-hrepack_help COMMAND "${CMAKE_COMMAND}" -D "TEST_PROGRAM=$" -D "TEST_ARGS:STRING=${ARGN}" -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" -D "TEST_OUTPUT=hrepack_help.out" -D "TEST_EXPECT=0" -D "TEST_REFERENCE=hrepack_help.txt" -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" ) set_tests_properties (HREPACK-hrepack_help PROPERTIES DEPENDS HREPACK-hrepack-clearall-objects LABELS ${PROJECT_NAME}) endif () add_test (NAME HREPACK-test_hrepack COMMAND $) set_tests_properties (HREPACK-test_hrepack PROPERTIES DEPENDS HREPACK-hrepack-clearall-objects LABELS ${PROJECT_NAME}) set (HREPACK_FILE1 hrepacktst1.hdf) set (HREPACK_FILE2 hrepacktst2.hdf) set (HREPACK_FILE3 hrepacktst3.hdf) #------------------------------------------------------------------------- # test1: # HUFF #------------------------------------------------------------------------- # ADD_H4_TEST (HUFF "TEST" ${HREPACK_FILE1} -t "dset7:HUFF 1" -c dset7:10x8x6) # if ( sds_verifiy_comp("dset7",COMP_CODE_SKPHUFF, 1) == -1) # goto out; # if ( sds_verifiy_chunk("dset7",HDF_CHUNK|HDF_COMP,3,in_chunk_lengths) == -1) # goto out; #------------------------------------------------------------------------- # test2: # RLE #------------------------------------------------------------------------- # ADD_H4_TEST(RLE "TEST" ${HREPACK_FILE1} -t dset4:RLE -c dset4:10x8) # if ( sds_verifiy_comp("dset4",COMP_CODE_RLE, 0) == -1) # goto out; # if ( sds_verifiy_chunk("dset4",HDF_CHUNK|HDF_COMP,2,in_chunk_lengths) == -1) # goto out; #------------------------------------------------------------------------- # test3: # SDS SELECTED with GZIP, chunking SELECTED #------------------------------------------------------------------------- # ADD_H4_TEST(SDSGZIP_CHUNK "TEST" ${HREPACK_FILE1} -t "dset4:GZIP 6" -c dset4:10x8) # if ( sds_verifiy_comp("dset4",COMP_CODE_DEFLATE, 6) == -1) # goto out; # if ( sds_verifiy_chunk("dset4",HDF_CHUNK|HDF_COMP,2,in_chunk_lengths) == -1) # goto out; #------------------------------------------------------------------------- # test4: # SDS SELECTED with SZIP, chunking SELECTED #------------------------------------------------------------------------- # if (H4_HAVE_SZIP_ENCODER) ADD_H4_TEST(SDSSZIP_CHUNK "TEST" ${HREPACK_FILE1} -t "dset4:SZIP 8,EC" -c dset4:10x8) else () ADD_H4_TEST(SDSSZIP_CHUNK "SKIP" ${HREPACK_FILE1} -c dset4:10x8) endif () #if defined (H4_HAVE_LIBSZ) # if (SZ_encoder_enabled()) # { # # if ( sds_verifiy_comp("dset4",COMP_CODE_SZIP, 0) == -1) # goto out; # if ( sds_verifiy_chunk("dset4",HDF_CHUNK|HDF_COMP,2,in_chunk_lengths) == -1) # goto out; #------------------------------------------------------------------------- # test4: # SDS SELECTED with NONE, chunking SELECTED NONE #------------------------------------------------------------------------- # ADD_H4_TEST(SDSNONE_CHUNKNONE "TEST" ${HREPACK_FILE1} -t dset_chunk_comp:NONE -t dset_chunk:NONE -c dset_chunk_comp:NONE -c dset_chunk:NONE) # if ( sds_verifiy_comp("dset_chunk_comp",COMP_CODE_NONE, 0) == -1) # goto out; # if ( sds_verifiy_comp("dset_chunk",COMP_CODE_NONE, 0) == -1) # goto out; # if ( sds_verifiy_chunk("dset_chunk_comp",HDF_NONE,0,0) == -1) # goto out; # if ( sds_verifiy_chunk("dset_chunk",HDF_NONE,0,0) == -1) # goto out; #------------------------------------------------------------------------- # test5: # SDS SELECTED with all types, chunking SELECTED #------------------------------------------------------------------------- # if (H4_HAVE_SZIP_ENCODER) ADD_H4_TEST(SDS_CHUNK "TEST" ${HREPACK_FILE1} -t "dset4:GZIP 9" -t dset5:RLE -t "dset6:HUFF 2" -t "dset7:SZIP 8,EC" -c dset4:10x8 -c dset5:10x8 -c dset6:10x8) else () ADD_H4_TEST(SDS_CHUNK "TEST" ${HREPACK_FILE1} -t "dset4:GZIP 9" -t dset5:RLE -t "dset6:HUFF 2" -c dset4:10x8 -c dset5:10x8 -c dset6:10x8) endif () # if ( sds_verifiy_comp("dset4",COMP_CODE_DEFLATE, 9) == -1) # goto out; # if ( sds_verifiy_comp("dset5",COMP_CODE_RLE, 0) == -1) # goto out; # if ( sds_verifiy_comp("dset6",COMP_CODE_SKPHUFF, 2) == -1) # goto out; #if defined (H4_HAVE_LIBSZ) # if (SZ_encoder_enabled()) { # if ( sds_verifiy_comp("dset7",COMP_CODE_SZIP, 0) == -1) # goto out; # } #endif # if ( sds_verifiy_chunk("dset4",HDF_CHUNK|HDF_COMP,2,in_chunk_lengths) == -1) # goto out; # if ( sds_verifiy_chunk("dset5",HDF_CHUNK|HDF_COMP,2,in_chunk_lengths) == -1) # goto out; # if ( sds_verifiy_chunk("dset6",HDF_CHUNK|HDF_COMP,2,in_chunk_lengths) == -1) # goto out; #------------------------------------------------------------------------- # test6: # SDS SELECTED with all types, no chunking #------------------------------------------------------------------------- # if (H4_HAVE_SZIP_ENCODER) ADD_H4_TEST(SEL_NOCHUNK "TEST" ${HREPACK_FILE1} -t "dset4:GZIP 9" -t dset5:RLE -t "dset6:HUFF 2" -t "dset7:SZIP 4,EC") else () ADD_H4_TEST(SEL_NOCHUNK "TEST" ${HREPACK_FILE1} -t "dset4:GZIP 9" -t dset5:RLE -t "dset6:HUFF 2") endif () # if ( sds_verifiy_comp("dset4",COMP_CODE_DEFLATE, 9) == -1) # goto out; # if ( sds_verifiy_comp("dset5",COMP_CODE_RLE, 0) == -1) # goto out; # if ( sds_verifiy_comp("dset6",COMP_CODE_SKPHUFF, 2) == -1) # goto out; #if defined (H4_HAVE_LIBSZ) # if (SZ_encoder_enabled()) { # if ( sds_verifiy_comp("dset7",COMP_CODE_SZIP, 0) == -1) # goto out; # } #endif #------------------------------------------------------------------------- # test7: # compressing SDS ALL, chunking SELECTED NONE #------------------------------------------------------------------------- # ADD_H4_TEST(COMPALL_CHUNKNONE "TEST" ${HREPACK_FILE1} -t "*:GZIP 1" -c dset_chunk_comp:NONE -c dset_chunk:NONE) # if ( sds_verifiy_comp_all(COMP_CODE_DEFLATE, 1) == -1) # goto out; # if ( sds_verifiy_chunk("dset_chunk_comp",HDF_NONE,0,0) == -1) # goto out; # if ( sds_verifiy_chunk("dset_chunk",HDF_NONE,0,0) == -1) # goto out; #------------------------------------------------------------------------- # test8: # no compressing, chunking ALL #------------------------------------------------------------------------- # ADD_H4_TEST(NOCOMP_CHUNKALL "TEST" ${HREPACK_FILE1} -c *:10x8) # if ( sds_verifiy_chunk_all(HDF_CHUNK,2,in_chunk_lengths,"dset7") == -1) # goto out; #------------------------------------------------------------------------- # test9: # compressing SDS ALL with GZIP #------------------------------------------------------------------------- # ADD_H4_TEST(GZIP "TEST" ${HREPACK_FILE1} -t "*:GZIP 1") # if ( sds_verifiy_comp_all(COMP_CODE_DEFLATE, 1) == -1) # goto out; #------------------------------------------------------------------------- # test10: # repack a big file using hyperslab reading/writing #------------------------------------------------------------------------- # ADD_H4_TEST(HYPERSLAB "TEST" ${HREPACK_FILE2}) #------------------------------------------------------------------------- # test11: # repack a file with vgroups #------------------------------------------------------------------------- # ADD_H4_TEST(VGROUP "TEST" ${HREPACK_FILE3}) # if (vg_verifygrpdep(HREPACK_FILE3,HREPACK_FILE3_OUT) != 0 ) # goto out;