diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2010-08-25 22:35:26 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2010-08-25 22:35:26 (GMT) |
commit | 6cea4f52ce08eff0efb70201667dc84da4fbd457 (patch) | |
tree | 76dbadf088721b791331a3b4d3c7dcd4ffc58aaa /tools/h5dump | |
parent | ddcae21908080ffbd40fcd5ce3244df5f391e02d (diff) | |
download | hdf5-6cea4f52ce08eff0efb70201667dc84da4fbd457.zip hdf5-6cea4f52ce08eff0efb70201667dc84da4fbd457.tar.gz hdf5-6cea4f52ce08eff0efb70201667dc84da4fbd457.tar.bz2 |
[svn-r19301] BZ 1958: Add h5dump xml tests to CMake support
Bring r19300 from trunk
Tetsed: local linux
Diffstat (limited to 'tools/h5dump')
-rw-r--r-- | tools/h5dump/CMakeLists.txt | 306 |
1 files changed, 280 insertions, 26 deletions
diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index dfa42f2..08e0f3b 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -8,7 +8,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SOURCE_DIR}/lib) INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # -------------------------------------------------------------------- -# Add the h5dump and test executables +# Add the h5dump executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5dump ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump.c) H5_NAMING (h5dump) @@ -26,7 +26,16 @@ TARGET_LINK_LIBRARIES (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5dump) +############################################################################## +############################################################################## +### T E S T I N G ### +############################################################################## +############################################################################## + IF (BUILD_TESTING) + # -------------------------------------------------------------------- + # Add the h5dump test executable + # -------------------------------------------------------------------- IF (NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c) H5_NAMING (h5dumpgentest) @@ -41,13 +50,11 @@ IF (BUILD_TESTING) TARGET_LINK_LIBRARIES (h5dumpgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5dumpgentest COMMAND $<TARGET_FILE:h5dumpgentest>) - - SET (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} - # h5dumpgentest - ) ENDIF (NOT BUILD_SHARED_LIBS) - #-- Copy all the HDF5 files from the test directory into the source directory + # -------------------------------------------------------------------- + # Copy all the HDF5 files from the test directory into the source directory + # -------------------------------------------------------------------- SET (HDF5_REFERENCE_FILES tall-1.ddl tall-2.ddl @@ -156,6 +163,71 @@ IF (BUILD_TESTING) tvlstr.ddl tvms.ddl ) + SET (HDF5_XML_REFERENCE_FILES + tall.h5.xml + tall-2A.h5.xml + tarray1.h5.xml + tarray2.h5.xml + tarray3.h5.xml + tarray6.h5.xml + tarray7.h5.xml + tattr.h5.xml + tbitfields.h5.xml + tcompound_complex.h5.xml + tcompound.h5.xml + tcompound2.h5.xml + tdatareg.h5.xml + tdset.h5.xml + tdset2.h5.xml + tempty.h5.xml + tempty-dtd.h5.xml + tempty-dtd-2.h5.xml + tempty-dtd-uri.h5.xml + tempty-nons.h5.xml + tempty-nons-2.h5.xml + tempty-nons-uri.h5.xml + tempty-ns.h5.xml + tempty-ns-2.h5.xml + tenum.h5.xml + textlink.h5.xml + tfpformat.h5.xml + tgroup.h5.xml + thlink.h5.xml + tloop.h5.xml + tloop2.h5.xml + tmany.h5.xml + tname-amp.h5.xml + tname-apos.h5.xml + tnamed_dtype_attr.h5.xml + tname-gt.h5.xml + tname-lt.h5.xml + tname-quot.h5.xml + tname-sp.h5.xml + tnestedcomp.h5.xml + tnodata.h5.xml + tobjref.h5.xml + topaque.h5.xml + torderattr1.h5.xml + torderattr2.h5.xml + torderattr3.h5.xml + torderattr4.h5.xml + tref.h5.xml + tref-escapes.h5.xml + tref-escapes-at.h5.xml + tsaf.h5.xml + tslink.h5.xml + tstr.h5.xml + tstr2.h5.xml + tstring.h5.xml + tstring-at.h5.xml + tudlink.h5.xml + tvldtypes1.h5.xml + tvldtypes2.h5.xml + tvldtypes3.h5.xml + tvldtypes4.h5.xml + tvldtypes5.h5.xml + tvlstr.h5.xml + ) SET (HDF5_REFERENCE_TEST_FILES tbin1.ddl tbin1.ddl @@ -238,6 +310,29 @@ IF (BUILD_TESTING) tvlstr.h5 tvms.h5 ) + SET (HDF5_XML_REFERENCE_TEST_FILES + tbitfields.h5 + tcompound2.h5 + tdset2.h5 + tenum.h5 + textlink.h5 + tloop2.h5 + tmany.h5 + tname-amp.h5 + tname-apos.h5 + tname-gt.h5 + tname-lt.h5 + tname-quot.h5 + tname-sp.h5 + tnodata.h5 + tobjref.h5 + topaque.h5 + tref.h5 + tref-escapes.h5 + tref-escapes-at.h5 + tstring.h5 + tstring-at.h5 + ) FOREACH (ddl_file ${HDF5_REFERENCE_FILES}) SET (ddldest "${PROJECT_BINARY_DIR}/${ddl_file}") @@ -250,6 +345,17 @@ IF (BUILD_TESTING) ) ENDFOREACH (ddl_file ${HDF5_REFERENCE_FILES}) + FOREACH (xml_file ${HDF5_XML_REFERENCE_FILES}) + SET (xmldest "${PROJECT_BINARY_DIR}/${xml_file}") + #MESSAGE (STATUS " Translating ${xml_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5dump + POST_BUILD + COMMAND ${XLATE_UTILITY} + ARGS ${HDF5_TOOLS_SOURCE_DIR}/testfiles/${xml_file} ${xmldest} -l3 + ) + ENDFOREACH (xml_file ${HDF5_XML_REFERENCE_FILES}) + FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) SET (dest "${PROJECT_BINARY_DIR}/${h5_file}") #MESSAGE (STATUS " Copying ${h5_file}") @@ -260,7 +366,43 @@ IF (BUILD_TESTING) ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/${h5_file} ${dest} ) ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + + FOREACH (h5_xml_file ${HDF5_XML_REFERENCE_TEST_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/${h5_xml_file}") + #MESSAGE (STATUS " Copying ${h5_xml_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5dump + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/${h5_xml_file} ${dest} + ) + ENDFOREACH (h5_xml_file ${HDF5_XML_REFERENCE_TEST_FILES}) + + # -------------------------------------------------------------------- + # Special file handling + # -------------------------------------------------------------------- + ADD_CUSTOM_COMMAND ( + TARGET h5dump + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbin1.ddl ${PROJECT_BINARY_DIR}/tbin1LE.ddl + ) + IF (WIN32 AND NOT MINGW) + FILE (READ ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbinregR.exp TEST_STREAM) + FILE (WRITE ${PROJECT_BINARY_DIR}/tbinregR.exp "${TEST_STREAM}") + ELSE (WIN32 AND NOT MINGW) + ADD_CUSTOM_COMMAND ( + TARGET h5dump + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbinregR.exp ${PROJECT_BINARY_DIR}/tbinregR.exp + ) + ENDIF (WIN32 AND NOT MINGW) + + # -------------------------------------------------------------------- + # Special option for Packed Bits + # -------------------------------------------------------------------- IF (HDF5_USE_H5DUMP_PACKED_BITS) #-- Copy all the HDF5 files from the test directory into the source directory SET (HDF5_REFERENCE_PBITS @@ -306,25 +448,12 @@ IF (BUILD_TESTING) ENDIF (HDF5_USE_H5DUMP_PACKED_BITS) - ADD_CUSTOM_COMMAND ( - TARGET h5dump - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbin1.ddl ${PROJECT_BINARY_DIR}/tbin1LE.ddl - ) - - IF (WIN32 AND NOT MINGW) - FILE (READ ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbinregR.exp TEST_STREAM) - FILE (WRITE ${PROJECT_BINARY_DIR}/tbinregR.exp "${TEST_STREAM}") - ELSE (WIN32 AND NOT MINGW) - ADD_CUSTOM_COMMAND ( - TARGET h5dump - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbinregR.exp ${PROJECT_BINARY_DIR}/tbinregR.exp - ) - ENDIF (WIN32 AND NOT MINGW) - +############################################################################## +############################################################################## +### T H E T E S T S M A C R O S ### +############################################################################## +############################################################################## + MACRO (ADD_SKIP_H5_TEST skipresultfile skipresultcode testtype) IF (${testtype} STREQUAL "SKIP") ADD_TEST ( @@ -373,7 +502,34 @@ IF (BUILD_TESTING) ) ENDMACRO (ADD_H5_EXPORT_TEST file) + MACRO (ADD_XML_SKIP_H5_TEST skipresultfile skipresultcode testtype) + IF (${testtype} STREQUAL "SKIP") + ADD_TEST ( + NAME H5DUMP-XML-${skipresultfile} + COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile}.xml --xml ${ARGN}" + ) + ELSE (${testtype} STREQUAL "SKIP") + ADD_H5_TEST (${skipresultfile} ${skipresultcode} ${ARGN}) + ENDIF (${testtype} STREQUAL "SKIP") + ENDMACRO (ADD_XML_SKIP_H5_TEST) + + MACRO (ADD_XML_H5_TEST resultfile resultcode) + ADD_TEST ( + NAME H5DUMP-XML-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=--xml;${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.xml" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDMACRO (ADD_XML_H5_TEST file) + + # -------------------------------------------------------------------- # Determine which filters are available + # -------------------------------------------------------------------- SET (USE_FILTER_SZIP H5_HAVE_FILTER_SZIP) SET (USE_FILTER_DEFLATE H5_HAVE_FILTER_DEFLATE) SET (USE_FILTER_SHUFFLE H5_HAVE_FILTER_SHUFFLE) @@ -381,7 +537,9 @@ IF (BUILD_TESTING) SET (USE_FILTER_NBIT H5_HAVE_FILTER_NBIT) SET (USE_FILTER_SCALEOFFSET H5_HAVE_FILTER_SCALEOFFSET) -# Determine if H5dump packed bits feature is included + # -------------------------------------------------------------------- + # Determine if H5dump packed bits feature is included + # -------------------------------------------------------------------- SET (USE_PACKED_BITS HDF5_USE_H5DUMP_PACKED_BITS) ############################################################################## @@ -389,6 +547,7 @@ IF (BUILD_TESTING) ### T H E T E S T S ### ############################################################################## ############################################################################## + # test for displaying groups ADD_H5_TEST (tgroup-1 0 tgroup.h5) # test for displaying the selected groups @@ -727,8 +886,103 @@ IF (BUILD_TESTING) # Incomplete pair of packed bits request. ADD_SKIP_H5_TEST (tpbitsIncomplete 1 ${TESTTYPE} -d /DS08BITS -M 0,2,2,1,0,2,2, packedbits.h5) + + ########## test XML + ADD_XML_H5_TEST (tall.h5 0 tall.h5) + ADD_XML_H5_TEST (tattr.h5 0 tattr.h5) + ADD_XML_H5_TEST (tbitfields.h5 0 tbitfields.h5) + ADD_XML_H5_TEST (tcompound.h5 0 tcompound.h5) + ADD_XML_H5_TEST (tcompound2.h5 0 tcompound2.h5) + ADD_XML_H5_TEST (tdatareg.h5 0 tdatareg.h5) + ADD_XML_H5_TEST (tdset.h5 0 tdset.h5) + ADD_XML_H5_TEST (tdset2.h5 0 tdset2.h5) + ADD_XML_H5_TEST (tenum.h5 0 tenum.h5) + ADD_XML_H5_TEST (tgroup.h5 0 tgroup.h5) + ADD_XML_H5_TEST (thlink.h5 0 thlink.h5) + ADD_XML_H5_TEST (tloop.h5 0 tloop.h5) + ADD_XML_H5_TEST (tloop2.h5 0 tloop2.h5) + ADD_XML_H5_TEST (tmany.h5 0 tmany.h5) + ADD_XML_H5_TEST (tnestedcomp.h5 0 tnestedcomp.h5) + ADD_XML_H5_TEST (tcompound_complex.h5 0 tcompound_complex.h5) + ADD_XML_H5_TEST (tobjref.h5 0 tobjref.h5) + ADD_XML_H5_TEST (topaque.h5 0 topaque.h5) + ADD_XML_H5_TEST (tslink.h5 0 tslink.h5) + ADD_XML_H5_TEST (tudlink.h5 0 tudlink.h5) + ADD_XML_H5_TEST (textlink.h5 0 textlink.h5) + ADD_XML_H5_TEST (tstr.h5 0 tstr.h5) + ADD_XML_H5_TEST (tstr2.h5 0 tstr2.h5) + ADD_XML_H5_TEST (tref.h5 0 tref.h5) + ADD_XML_H5_TEST (tname-amp.h5 0 tname-amp.h5) + ADD_XML_H5_TEST (tname-apos.h5 0 tname-apos.h5) + ADD_XML_H5_TEST (tname-gt.h5 0 tname-gt.h5) + ADD_XML_H5_TEST (tname-lt.h5 0 tname-lt.h5) + ADD_XML_H5_TEST (tname-quot.h5 0 tname-quot.h5) + ADD_XML_H5_TEST (tname-sp.h5 0 tname-sp.h5) + ADD_XML_H5_TEST (tstring.h5 0 tstring.h5) + ADD_XML_H5_TEST (tstring-at.h5 0 tstring-at.h5) + ADD_XML_H5_TEST (tref-escapes.h5 0 tref-escapes.h5) + ADD_XML_H5_TEST (tref-escapes-at.h5 0 tref-escapes-at.h5) + ADD_XML_H5_TEST (tnodata.h5 0 tnodata.h5) + ADD_XML_H5_TEST (tarray1.h5 0 tarray1.h5) + ADD_XML_H5_TEST (tarray2.h5 0 tarray2.h5) + ADD_XML_H5_TEST (tarray3.h5 0 tarray3.h5) + ADD_XML_H5_TEST (tarray6.h5 0 tarray6.h5) + ADD_XML_H5_TEST (tarray7.h5 0 tarray7.h5) + ADD_XML_H5_TEST (tvldtypes1.h5 0 tvldtypes1.h5) + ADD_XML_H5_TEST (tvldtypes2.h5 0 tvldtypes2.h5) + ADD_XML_H5_TEST (tvldtypes3.h5 0 tvldtypes3.h5) + ADD_XML_H5_TEST (tvldtypes4.h5 0 tvldtypes4.h5) + ADD_XML_H5_TEST (tvldtypes5.h5 0 tvldtypes5.h5) + ADD_XML_H5_TEST (tvlstr.h5 0 tvlstr.h5) + ADD_XML_H5_TEST (tsaf.h5 0 tsaf.h5) + ADD_XML_H5_TEST (tempty.h5 0 tempty.h5) + ADD_XML_H5_TEST (tnamed_dtype_attr.h5 0 tnamed_dtype_attr.h5) + ##Test dataset and attribute of null space. Commented out: + ## wait until the XML schema is updated for null space. + ## ADD_XML_H5_TEST (tnullspace.h5 0 tnulspace.h5) + + # other options for xml + + ADD_XML_H5_TEST (tempty-dtd.h5 0 --use-dtd tempty.h5) + ADD_XML_H5_TEST (tempty-dtd-2.h5 0 -u tempty.h5) + + # The lone colon here confuses some systems (Cray X1). Skip + # it if configure detects that this is a problem. + SET (TESTTYPE "TEST") + IF ("H5_LONE_COLON") + SET (TESTTYPE "SKIP") + ENDIF ("H5_LONE_COLON") + ADD_XML_SKIP_H5_TEST (tempty-nons.h5 0 ${TESTTYPE} -X : tempty.h5) + + ADD_XML_H5_TEST (tempty-nons-2.h5 0 --xml-ns=: tempty.h5) + + ## Some of these combinations are syntactically correct but + ## the URLs are dummies + ADD_XML_H5_TEST (tempty-ns.h5 0 -X thing: tempty.h5) + ADD_XML_H5_TEST (tempty-ns-2.h5 0 --xml-ns=thing: tempty.h5) + ADD_XML_H5_TEST (tempty-nons-uri.h5 0 --xml-ns=: --xml-dtd=http://somewhere.net tempty.h5) + ADD_XML_H5_TEST (tempty-dtd-uri.h5 0 --use-dtd --xml-dtd=http://somewhere.net tempty.h5) + + ADD_XML_H5_TEST (tall-2A.h5 0 -A tall.h5) + + + # tests for attribute order + ADD_XML_H5_TEST (torderattr1.h5 0 -H --sort_by=name --sort_order=ascending torderattr.h5) + ADD_XML_H5_TEST (torderattr2.h5 0 -H --sort_by=name --sort_order=descending torderattr.h5) + ADD_XML_H5_TEST (torderattr3.h5 0 -H --sort_by=creation_order --sort_order=ascending torderattr.h5) + ADD_XML_H5_TEST (torderattr4.h5 0 -H --sort_by=creation_order --sort_order=descending torderattr.h5) + + # tests for floating point user defined printf format + ADD_XML_H5_TEST (tfpformat.h5 0 -u -m %.7f tfpformat.h5) + ENDIF (BUILD_TESTING) +############################################################################## +############################################################################## +### I N S T A L L A T I O N ### +############################################################################## +############################################################################## + #-----------------------------------------------------------------------------
# Rules for Installation of tools using make Install target
#-----------------------------------------------------------------------------
|