From 315eb0a1687071ca5c09e46efd88073bea118348 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 2 Nov 2010 15:14:08 -0500 Subject: [svn-r19715] Description: Bring r19697:19714 from trunk to revise_chunks branch. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, w/threadsafe, in production mode Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode --- CMakeLists.txt | 16 +- CTestConfig.cmake | 25 +- MANIFEST | 2 + README.txt | 2 +- c++/src/Makefile.in | 2 +- c++/test/CMakeLists.txt | 36 +++ config/cmake/CTestCustom.cmake | 445 +++++++++++++++++++++++++- config/cmake/HDF5Macros.cmake | 2 + config/cmake/vfdTest.cmake | 9 + config/lt_vers.am | 2 +- configure | 227 ++++++++++++- configure.in | 2 +- fortran/src/Makefile.in | 2 +- hl/c++/src/Makefile.in | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/src/Makefile.in | 2 +- release_docs/RELEASE.txt | 7 +- src/H5public.h | 4 +- src/Makefile.in | 2 +- test/CMakeLists.txt | 75 ++++- testpar/CMakeLists.txt | 43 +++ tools/h5diff/CMakeLists.txt | 11 + tools/h5diff/h5diffgentest.c | 298 +++++++++++++++++ tools/h5diff/testfiles/h5diff_530.txt | 11 + tools/h5diff/testfiles/h5diff_comp_vl_strs.h5 | Bin 0 -> 8504 bytes tools/h5repack/CMakeLists.txt | 36 +++ tools/lib/h5diff_array.c | 106 ++++-- vms/src/h5pubconf.h | 6 +- windows/src/H5pubconf.h | 6 +- windows/tools/h5diff/testh5diff.bat | 8 + 30 files changed, 1299 insertions(+), 92 deletions(-) create mode 100644 tools/h5diff/testfiles/h5diff_530.txt create mode 100644 tools/h5diff/testfiles/h5diff_comp_vl_strs.h5 diff --git a/CMakeLists.txt b/CMakeLists.txt index e4ae935..14633ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -668,12 +668,12 @@ ENDIF (HDF5_USE_H5DUMP_PACKED_BITS) ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN") - IF (ZLIB_FOUND) + IF (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) ADD_DEPENDENCIES (${HDF5_LIB_TARGET} ZLIB) - ENDIF (ZLIB_FOUND) - IF (SZIP_FOUND) + ENDIF (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) + IF (SZIP_FOUND AND SZIP_USE_EXTERNAL) ADD_DEPENDENCIES (${HDF5_LIB_TARGET} SZIP) - ENDIF (SZIP_FOUND) + ENDIF (SZIP_FOUND AND SZIP_USE_EXTERNAL) ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN") #----------------------------------------------------------------------------- @@ -709,6 +709,14 @@ IF (BUILD_TESTING) ENDIF (EXISTS "${HDF5_SOURCE_DIR}/testpar" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/testpar") ENDIF (H5_HAVE_PARALLEL) ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED) + + OPTION (HDF5_TEST_VFD "Execute tests with different VFDs" OFF) + MARK_AS_ADVANCED (HDF5_TEST_VFD) + IF (HDF5_TEST_VFD) + OPTION (HDF5_TEST_FHEAP_VFD "Execute tests with different VFDs" ON) + MARK_AS_ADVANCED (HDF5_TEST_FHEAP_VFD) + ENDIF (HDF5_TEST_VFD) + INCLUDE (${HDF5_SOURCE_DIR}/CTestConfig.cmake) CONFIGURE_FILE (${HDF5_RESOURCES_DIR}/CTestCustom.cmake ${HDF5_BINARY_DIR}/CTestCustom.ctest @ONLY) ENDIF (BUILD_TESTING) diff --git a/CTestConfig.cmake b/CTestConfig.cmake index 5c1e07f..1ba41bd 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -4,18 +4,19 @@ ## # The following are required to uses Dart and the Cdash dashboard ## ENABLE_TESTING() ## INCLUDE(CTest) -set(CTEST_PROJECT_NAME "HDF5 Trunk") -set(CTEST_NIGHTLY_START_TIME "20:00:00 CST") +SET (CTEST_PROJECT_NAME "HDF5.1.8 Trunk") +SET (CTEST_NIGHTLY_START_TIME "20:00:00 CST") -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "nei.hdfgroup.uiuc.edu") -set(CTEST_DROP_LOCATION "/cdash/submit.php?project=HDF5+Trunk") -set(CTEST_DROP_SITE_CDASH TRUE) +SET (CTEST_DROP_METHOD "http") +SET (CTEST_DROP_SITE "nei.hdfgroup.uiuc.edu") +SET (CTEST_DROP_LOCATION "/cdash/submit.php?project=HDF5.1.8 Trunk") +SET (CTEST_DROP_SITE_CDASH TRUE) -set(UPDATE_TYPE svn) +SET (UPDATE_TYPE svn) +SET (VALGRIND_COMMAND "/usr/bin/valgrind") +SET (VALGRIND_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe") +SET (MEMORYCHECK_COMMAND "/usr/bin/valgrind") +SET (CTEST_MEMORYCHECK_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe") -set(VALGRIND_COMMAND "/usr/bin/valgrind") -set(VALGRIND_COMMAND_OPTIONS "--tool=memcheck") -set(CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind") -set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "--tool=memcheck") -set(CTEST_TESTING_TIMEOUT 3600) +SET (CTEST_TESTING_TIMEOUT 3600) +SET (DART_TESTING_TIMEOUT 3600) diff --git a/MANIFEST b/MANIFEST index 3a96b7f..c79dde1 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1657,6 +1657,7 @@ ./tools/h5diff/testfiles/h5diff_516.txt ./tools/h5diff/testfiles/h5diff_517.txt ./tools/h5diff/testfiles/h5diff_518.txt +./tools/h5diff/testfiles/h5diff_530.txt ./tools/h5diff/testfiles/h5diff_attr1.h5 ./tools/h5diff/testfiles/h5diff_attr2.h5 @@ -1690,6 +1691,7 @@ ./tools/h5diff/testfiles/h5diff_exclude1-2.h5 ./tools/h5diff/testfiles/h5diff_exclude2-1.h5 ./tools/h5diff/testfiles/h5diff_exclude2-2.h5 +./tools/h5diff/testfiles/h5diff_comp_vl_strs.h5 #test files for h5repack diff --git a/README.txt b/README.txt index 09d6350..d1d2bc9 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.78-FA_a5 currently under development +HDF5 version 1.9.79-FA_a5 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index e446ba2..28f6f00 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -402,7 +402,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 # Include src directory diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt index e29963e..569e609 100644 --- a/c++/test/CMakeLists.txt +++ b/c++/test/CMakeLists.txt @@ -45,3 +45,39 @@ TARGET_LINK_LIBRARIES (cpp_testhdf5 ) ADD_TEST (NAME cpp_testhdf5 COMMAND $) + +IF (HDF5_TEST_VFD) + + SET (VFD_LIST + sec2 + stdio + core + split + multi + family + ) + + IF (DIRECT_VFD) + SET (VFD_LIST ${VFD_LIST} direct) + ENDIF (DIRECT_VFD) + + MACRO (ADD_VFD_TEST vfdname resultcode) + ADD_TEST ( + NAME VFD-${vfdname}-cpp_testhdf5 + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=cpp_testhdf5" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake" + ) + ENDMACRO (ADD_VFD_TEST) + + # Run test with different Virtual File Driver + FOREACH (vfd ${VFD_LIST}) + ADD_VFD_TEST (${vfd} 0) + ENDFOREACH (vfd ${VFD_LIST}) + +ENDIF (HDF5_TEST_VFD) diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake index 6e35860..ecb89ed 100755 --- a/config/cmake/CTestCustom.cmake +++ b/config/cmake/CTestCustom.cmake @@ -31,10 +31,443 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE H5DUMP-clear-objects H5DUMP_PACKED_BITS-clearall-objects H5DUMP-XML-clearall-objects - H5DUMP* - H5DIFF* - H5REPACK* - H5STAT* - H5COPY* - H5LS* + #H5DIFF-h5diff_10 + H5DIFF-h5diff_11 + H5DIFF-h5diff_12 + H5DIFF-h5diff_13 + H5DIFF-h5diff_14 + #H5DIFF-h5diff_15 + #H5DIFF-h5diff_16_1 + H5DIFF-h5diff_16_2 + H5DIFF-h5diff_16_3 + H5DIFF-h5diff_17 + H5DIFF-h5diff_171 + H5DIFF-h5diff_172 + H5DIFF-h5diff_18 + H5DIFF-h5diff_18_1 + H5DIFF-h5diff_20 + H5DIFF-h5diff_21 + H5DIFF-h5diff_22 + H5DIFF-h5diff_23 + H5DIFF-h5diff_24 + H5DIFF-h5diff_25 + H5DIFF-h5diff_26 + H5DIFF-h5diff_27 + H5DIFF-h5diff_28 + H5DIFF-h5diff_50 + H5DIFF-h5diff_51 + H5DIFF-h5diff_52 + H5DIFF-h5diff_53 + H5DIFF-h5diff_54 + H5DIFF-h5diff_55 + H5DIFF-h5diff_56 + H5DIFF-h5diff_57 + H5DIFF-h5diff_58 + H5DIFF-h5diff_600 + H5DIFF-h5diff_601 + H5DIFF-h5diff_603 + H5DIFF-h5diff_604 + H5DIFF-h5diff_605 + H5DIFF-h5diff_606 + H5DIFF-h5diff_607 + H5DIFF-h5diff_608 + H5DIFF-h5diff_609 + H5DIFF-h5diff_610 + H5DIFF-h5diff_612 + H5DIFF-h5diff_613 + H5DIFF-h5diff_614 + H5DIFF-h5diff_615 + H5DIFF-h5diff_616 + H5DIFF-h5diff_617 + H5DIFF-h5diff_618 + H5DIFF-h5diff_619 + H5DIFF-h5diff_621 + H5DIFF-h5diff_622 + H5DIFF-h5diff_623 + H5DIFF-h5diff_624 + H5DIFF-h5diff_625 + H5DIFF-h5diff_626 + H5DIFF-h5diff_627 + H5DIFF-h5diff_628 + H5DIFF-h5diff_70 + H5DIFF-h5diff_80 + H5DIFF-h5diff_90 + H5DIFF-h5diff_101 + H5DIFF-h5diff_102 + H5DIFF-h5diff_200 + H5DIFF-h5diff_201 + H5DIFF-h5diff_202 + H5DIFF-h5diff_203 + H5DIFF-h5diff_204 + H5DIFF-h5diff_205 + H5DIFF-h5diff_206 + H5DIFF-h5diff_207 + H5DIFF-h5diff_300 + H5DIFF-h5diff_400 + H5DIFF-h5diff_401 + H5DIFF-h5diff_402 + H5DIFF-h5diff_403 + H5DIFF-h5diff_404 + H5DIFF-h5diff_405 + H5DIFF-h5diff_406 + H5DIFF-h5diff_407 + H5DIFF-h5diff_408 + H5DIFF-h5diff_409 + H5DIFF-h5diff_410 + H5DIFF-h5diff_411 + H5DIFF-h5diff_412 + H5DIFF-h5diff_413 + H5DIFF-h5diff_414 + H5DIFF-h5diff_415 + H5DIFF-h5diff_416 + H5DIFF-h5diff_417 + H5DIFF-h5diff_418 + H5DIFF-h5diff_419 + H5DIFF-h5diff_420 + H5DIFF-h5diff_421 + H5DIFF-h5diff_422 + H5DIFF-h5diff_423 + H5DIFF-h5diff_424 + H5DIFF-h5diff_425 + H5DIFF-h5diff_450 + H5DIFF-h5diff_451 + H5DIFF-h5diff_452 + H5DIFF-h5diff_453 + H5DIFF-h5diff_454 + H5DIFF-h5diff_455 + H5DIFF-h5diff_456 + H5DIFF-h5diff_457 + H5DIFF-h5diff_458 + H5DIFF-h5diff_459 + H5DIFF-h5diff_500 + H5DIFF-h5diff_501 + H5DIFF-h5diff_502 + H5DIFF-h5diff_503 + H5DIFF-h5diff_504 + H5DIFF-h5diff_505 + H5DIFF-h5diff_506 + H5DIFF-h5diff_507 + H5DIFF-h5diff_508 + H5DIFF-h5diff_509 + H5DIFF-h5diff_510 + H5DIFF-h5diff_511 + H5DIFF-h5diff_512 + H5DIFF-h5diff_513 + H5DIFF-h5diff_514 + H5DIFF-h5diff_515 + H5DIFF-h5diff_516 + H5DIFF-h5diff_517 + H5DIFF-h5diff_518 + H5DIFF-h5diff_480 + H5DIFF-h5diff_481 + H5DIFF-h5diff_482 + H5DIFF-h5diff_483 + H5DIFF-h5diff_484 + #H5LS-help-1 + #H5LS-help-2 + H5LS-help-3 + #H5LS-tall-1 + H5LS-tall-2 + H5LS-tgroup + H5LS-tgroup-3 + H5LS-tgroup-1 + H5LS-tgroup-2 + H5LS-tdset-1 + H5LS-tslink-1 + H5LS-tsoftlinks-1 + H5LS-tsoftlinks-2 + H5LS-tsoftlinks-3 + H5LS-tsoftlinks-4 + H5LS-tsoftlinks-5 + H5LS-textlink-1 + H5LS-textlinksrc-1 + H5LS-textlinksrc-2 + H5LS-textlinksrc-3 + H5LS-textlinksrc-4 + H5LS-textlinksrc-5 + H5LS-textlinksrc-6 + H5LS-textlinksrc-7 + H5LS-tudlink-1 + H5LS-textlinksrc-1-old + H5LS-textlinksrc-2-old + H5LS-textlinksrc-3-old + H5LS-textlinksrc-6-old + H5LS-textlinksrc-7-old + H5LS-textlinksrc-nodangle-1 + H5LS-textlinksrc-nodangle-2 + H5LS-tsoftlinks-nodangle-1 + H5LS-thlinks-nodangle-1 + H5LS-thlink-1 + H5LS-tcomp-1 + H5LS-tnestcomp-1 + H5LS-tloop-1 + H5LS-tstr-1 + H5LS-tsaf + H5LS-tvldtypes1 + H5LS-tarray1 + H5LS-tempty + H5LS-tattr2 + H5LS-nosuchfile + H5LS-tvldtypes2le + H5LS-tdataregle + H5MKGRP-clear-h5mkgrp_help-h + H5MKGRP-H5LS-h5mkgrp_help-h + H5MKGRP-clear-h5mkgrp_version-V + H5MKGRP-H5LS-h5mkgrp_version-V + H5MKGRP-clear-h5mkgrp_single + #H5MKGRP-h5mkgrp_single + #H5MKGRP-H5LS-h5mkgrp_single + H5MKGRP-clear-h5mkgrp_single-v + H5MKGRP-h5mkgrp_single-v + H5MKGRP-H5LS-h5mkgrp_single-v + H5MKGRP-clear-h5mkgrp_single-p + H5MKGRP-h5mkgrp_single-p + H5MKGRP-H5LS-h5mkgrp_single-p + H5MKGRP-clear-h5mkgrp_single_latest-l + H5MKGRP-h5mkgrp_single_latest-l + H5MKGRP-H5LS-h5mkgrp_single_latest-l + H5MKGRP-clear-h5mkgrp_several + H5MKGRP-h5mkgrp_several + H5MKGRP-H5LS-h5mkgrp_several + H5MKGRP-clear-h5mkgrp_several-v + H5MKGRP-h5mkgrp_several-v + H5MKGRP-H5LS-h5mkgrp_several-v + H5MKGRP-clear-h5mkgrp_several-p + H5MKGRP-h5mkgrp_several-p + H5MKGRP-H5LS-h5mkgrp_several-p + H5MKGRP-clear-h5mkgrp_several_latest-l + H5MKGRP-h5mkgrp_several_latest-l + H5MKGRP-H5LS-h5mkgrp_several_latest-l + H5MKGRP-clear-h5mkgrp_nested-p + H5MKGRP-h5mkgrp_nested-p + H5MKGRP-H5LS-h5mkgrp_nested-p + H5MKGRP-clear-h5mkgrp_nested_latest-lp + H5MKGRP-h5mkgrp_nested_latest-lp + H5MKGRP-H5LS-h5mkgrp_nested_latest-lp + H5MKGRP-clear-h5mkgrp_nested_mult-p + H5MKGRP-h5mkgrp_nested_mult-p + H5MKGRP-H5LS-h5mkgrp_nested_mult-p + H5MKGRP-clear-h5mkgrp_nested_mult_latest-lp + H5MKGRP-h5mkgrp_nested_mult_latest-lp + H5MKGRP-H5LS-h5mkgrp_nested_mult_latest-lp + #H5REPACK_VERIFY_LAYOUT-dset2_chunk_20x10 + H5REPACK_VERIFY_LAYOUT_ALL-chunk_20x10 + H5REPACK_VERIFY_LAYOUT-dset2_conti + H5REPACK_VERIFY_LAYOUT_ALL-conti + H5REPACK_VERIFY_LAYOUT-dset2_compa + H5REPACK_VERIFY_LAYOUT_ALL-compa + #H5REPACK_VERIFY_LAYOUT-dset_compa_conti + H5REPACK_VERIFY_LAYOUT-dset_compa_chunk + H5REPACK_VERIFY_LAYOUT-dset_compa_compa + H5REPACK_VERIFY_LAYOUT-dset_conti_compa + H5REPACK_VERIFY_LAYOUT-dset_conti_chunk + H5REPACK_VERIFY_LAYOUT-dset_conti_conti + H5REPACK_VERIFY_LAYOUT-chunk_compa + H5REPACK_VERIFY_LAYOUT-chunk_conti + H5REPACK_VERIFY_LAYOUT-chunk_18x13 + H5REPACK_VERIFY_LAYOUT-contig_small_compa + H5REPACK_VERIFY_LAYOUT-contig_small_fixed_compa + H5REPACK_VERIFY_LAYOUT_ALL-layout_long_switches + H5REPACK_VERIFY_LAYOUT_ALL-layout_short_switches + #H5STAT-h5stat_help1 + H5STAT-h5stat_help2 + H5STAT-h5stat_filters + H5STAT-h5stat_filters-file + H5STAT-h5stat_filters-F + H5STAT-h5stat_filters-d + H5STAT-h5stat_filters-g + H5STAT-h5stat_filters-dT + H5STAT-h5stat_filters-UD + H5STAT-h5stat_filters-UT + H5STAT-h5stat_tsohm + H5STAT-h5stat_newgrat + H5STAT-h5stat_newgrat-UG + H5STAT-h5stat_newgrat-UA + H5DUMP-tgroup-1 + H5DUMP-tgroup-2 + #H5DUMP-tdset-1 + #H5DUMP-tdset-2 + H5DUMP-tattr-1 + H5DUMP-tattr-2 + H5DUMP-tattr-3 + H5DUMP-tnamed_dtype_attr + H5DUMP-tslink-1 + H5DUMP-tudlink-1 + H5DUMP-tslink-2 + H5DUMP-tudlink-2 + H5DUMP-thlink-1 + H5DUMP-thlink-2 + H5DUMP-thlink-3 + H5DUMP-thlink-4 + H5DUMP-thlink-5 + H5DUMP-tcomp-1 + H5DUMP-tcomp-2 + H5DUMP-tcomp-4 + H5DUMP-tnestcomp-1 + H5DUMP-tall-1 + H5DUMP-tall-2 + H5DUMP-tall-3 + H5DUMP-tloop-1 + H5DUMP-tstr-1 + H5DUMP-tstr-2 + H5DUMP-tsaf + H5DUMP-tvldtypes1 + H5DUMP-tvldtypes2 + H5DUMP-tvldtypes3 + H5DUMP-tvldtypes4 + H5DUMP-tvldtypes5 + H5DUMP-tvlstr + H5DUMP-tarray1 + H5DUMP-tarray2 + H5DUMP-tarray3 + H5DUMP-tarray4 + H5DUMP-tarray5 + H5DUMP-tarray6 + H5DUMP-tarray7 + H5DUMP-tarray8 + H5DUMP-tempty + H5DUMP-tgrp_comments + H5DUMP-tsplit_file + H5DUMP-tfamily + H5DUMP-tmulti + H5DUMP-tlarge_objname + H5DUMP-tall-2A + H5DUMP-tall-2B + H5DUMP-tall-4s + H5DUMP-tall-5s + H5DUMP-tdset-3s + H5DUMP-tchar1 + H5DUMP-tboot1 + H5DUMP-tboot2 + H5DUMP-tperror + H5DUMP-tcontents + H5DUMP-tcompact + H5DUMP-tcontiguos + H5DUMP-tchunked + H5DUMP-texternal + H5DUMP-tfill + H5DUMP-treference + H5DUMP-tstringe + H5DUMP-tstring + H5DUMP-tstring2 + H5DUMP-tindicesyes + H5DUMP-tindicesno + H5DUMP-tindicessub1 + H5DUMP-tindicessub2 + H5DUMP-tindicessub3 + H5DUMP-tindicessub4 + H5DUMP-tszip + H5DUMP-tdeflate + H5DUMP-tshuffle + H5DUMP-tfletcher32 + H5DUMP-tnbit + H5DUMP-tscaleoffset + H5DUMP-tallfilters + H5DUMP-tuserfilter + H5DUMP-tlonglinks + H5DUMP-tbigdims + H5DUMP-thyperslab + H5DUMP-tnullspace + H5DUMP-tvms + H5DUMP-tbin1LE + H5DUMP-tbin1 + #H5DUMP-h5import-out1 + H5DUMP-tbin2 + H5DUMP-tbin3 + H5DUMP-h5import-out3 + H5DUMP-tbin4 + H5DUMP-tdatareg + H5DUMP-tdataregR + H5DUMP-tattrreg + H5DUMP-tattrregR + #H5DUMP-output-tbinregR + #H5DUMP-output-cmp-tbinregR + H5DUMP-tordergr1 + H5DUMP-tordergr2 + H5DUMP-tordergr3 + H5DUMP-tordergr4 + H5DUMP-tordergr5 + H5DUMP-torderattr1 + H5DUMP-torderattr2 + H5DUMP-torderattr3 + H5DUMP-torderattr4 + H5DUMP-tfpformat + H5DUMP-textlinksrc + H5DUMP-textlinkfar + H5DUMP-tnofilename-with-packed-bits + H5DUMP-tpbitsSigned + H5DUMP-tpbitsUnsigned + H5DUMP-tpbitsOverlapped + H5DUMP-tpbitsMax + H5DUMP-tpbitsCompound + H5DUMP-tpbitsArray + H5DUMP-tpbitsMaxExceeded + H5DUMP-tpbitsOffsetExceeded + H5DUMP-tpbitsOffsetNegative + H5DUMP-tpbitsLengthPositive + H5DUMP-tpbitsLengthExceeded + H5DUMP-tpbitsIncomplete + H5DUMP-XML-tall.h5 + H5DUMP-XML-tattr.h5 + H5DUMP-XML-tbitfields.h5 + H5DUMP-XML-tcompound.h5 + H5DUMP-XML-tcompound2.h5 + H5DUMP-XML-tdatareg.h5 + H5DUMP-XML-tdset.h5 + H5DUMP-XML-tdset2.h5 + H5DUMP-XML-tenum.h5 + H5DUMP-XML-tgroup.h5 + H5DUMP-XML-thlink.h5 + H5DUMP-XML-tloop.h5 + H5DUMP-XML-tloop2.h5 + H5DUMP-XML-tmany.h5 + H5DUMP-XML-tnestedcomp.h5 + H5DUMP-XML-tcompound_complex.h5 + H5DUMP-XML-tobjref.h5 + H5DUMP-XML-topaque.h5 + H5DUMP-XML-tslink.h5 + H5DUMP-XML-tudlink.h5 + H5DUMP-XML-textlink.h5 + H5DUMP-XML-tstr.h5 + H5DUMP-XML-tstr2.h5 + H5DUMP-XML-tref.h5 + H5DUMP-XML-tname-amp.h5 + H5DUMP-XML-tname-apos.h5 + H5DUMP-XML-tname-gt.h5 + H5DUMP-XML-tname-lt.h5 + H5DUMP-XML-tname-quot.h5 + H5DUMP-XML-tname-sp.h5 + H5DUMP-XML-tstring.h5 + H5DUMP-XML-tstring-at.h5 + H5DUMP-XML-tref-escapes.h5 + H5DUMP-XML-tref-escapes-at.h5 + H5DUMP-XML-tnodata.h5 + H5DUMP-XML-tarray1.h5 + H5DUMP-XML-tarray2.h5 + H5DUMP-XML-tarray3.h5 + H5DUMP-XML-tarray6.h5 + H5DUMP-XML-tarray7.h5 + H5DUMP-XML-tvldtypes1.h5 + H5DUMP-XML-tvldtypes2.h5 + H5DUMP-XML-tvldtypes3.h5 + H5DUMP-XML-tvldtypes4.h5 + H5DUMP-XML-tvldtypes5.h5 + H5DUMP-XML-tvlstr.h5 + H5DUMP-XML-tsaf.h5 + H5DUMP-XML-tempty.h5 + H5DUMP-XML-tnamed_dtype_attr.h5 + H5DUMP-XML-tempty-dtd.h5 + H5DUMP-XML-tempty-dtd-2.h5 + H5DUMP-XML-tempty-nons.h5 + H5DUMP-XML-tempty-nons-2.h5 + H5DUMP-XML-tempty-ns.h5 + H5DUMP-XML-tempty-ns-2.h5 + H5DUMP-XML-tempty-nons-uri.h5 + H5DUMP-XML-tempty-dtd-uri.h5 + H5DUMP-XML-tall-2A.h5 + H5DUMP-XML-torderattr1.h5 + H5DUMP-XML-torderattr2.h5 + H5DUMP-XML-torderattr3.h5 + H5DUMP-XML-torderattr4.h5 + H5DUMP-XML-tfpformat.h5 ) diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake index 99fbea1..a20e3b5 100644 --- a/config/cmake/HDF5Macros.cmake +++ b/config/cmake/HDF5Macros.cmake @@ -128,6 +128,7 @@ MACRO (TARGET_WIN_PROPERTIES target) SET_TARGET_PROPERTIES (${target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT" + LINK_FLAGS_DEBUG "/NODEFAULTLIB:MSVCRTD" ) ENDIF (NOT BUILD_SHARED_LIBS) ENDIF (MSVC) @@ -150,6 +151,7 @@ MACRO (TARGET_FORTRAN_WIN_PROPERTIES target) SET_TARGET_PROPERTIES (${target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT" + LINK_FLAGS_DEBUG "/NODEFAULTLIB:MSVCRTD" ) ENDIF (MSVC) ENDIF (BUILD_SHARED_LIBS) diff --git a/config/cmake/vfdTest.cmake b/config/cmake/vfdTest.cmake index c0b5fec..2e854fb 100644 --- a/config/cmake/vfdTest.cmake +++ b/config/cmake/vfdTest.cmake @@ -18,6 +18,8 @@ IF (NOT TEST_VFD) MESSAGE (FATAL_ERROR "Require TEST_VFD to be defined") ENDIF (NOT TEST_VFD) +SET (ERROR_APPEND 1) + MESSAGE (STATUS "USING ${TEST_VFD} ON COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}") SET (ENV{HDF5_DRIVER} "${TEST_VFD}") @@ -25,12 +27,19 @@ SET (ENV{HDF5_DRIVER} "${TEST_VFD}") EXECUTE_PROCESS ( COMMAND ${TEST_PROGRAM} ${TEST_ARGS} WORKING_DIRECTORY ${TEST_FOLDER} + OUTPUT_FILE ${TEST_OUTPUT}_${TEST_VFD}.out + ERROR_FILE ${TEST_OUTPUT}_${TEST_VFD}.err OUTPUT_VARIABLE TEST_ERROR ERROR_VARIABLE TEST_ERROR ) MESSAGE (STATUS "COMMAND Result: ${TEST_RESULT}") +IF (ERROR_APPEND) + FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.err TEST_STREAM) + FILE (APPEND ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.out "${TEST_STREAM}") +ENDIF (ERROR_APPEND) + # if the return value is !=${TEST_EXPECT} bail out IF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT}) MESSAGE ( FATAL_ERROR "Failed: Test program ${TEST_PROGRAM} exited != ${TEST_EXPECT}.\n${TEST_ERROR}") diff --git a/config/lt_vers.am b/config/lt_vers.am index 27cd4dd..01ad095 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -17,7 +17,7 @@ # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index f22769b..92df1c4 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.in Id: configure.in 19659 2010-10-21 23:12:56Z koziol . +# From configure.in Id: configure.in 19714 2010-11-02 19:00:56Z mamcgree . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for HDF5 1.9.78-FA_a5. +# Generated by GNU Autoconf 2.67 for HDF5 1.9.79-FA_a5. # # Report bugs to . # @@ -563,8 +563,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.78-FA_a5' -PACKAGE_STRING='HDF5 1.9.78-FA_a5' +PACKAGE_VERSION='1.9.79-FA_a5' +PACKAGE_STRING='HDF5 1.9.79-FA_a5' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1437,7 +1437,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.78-FA_a5 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.79-FA_a5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1507,7 +1507,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.78-FA_a5:";; + short | recursive ) echo "Configuration of HDF5 1.9.79-FA_a5:";; esac cat <<\_ACEOF @@ -1693,7 +1693,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.78-FA_a5 +HDF5 configure 1.9.79-FA_a5 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2782,7 +2782,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.78-FA_a5, which was +It was created by HDF5 $as_me 1.9.79-FA_a5, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ @@ -3603,7 +3603,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.78-FA_a5' + VERSION='1.9.79-FA_a5' cat >>confdefs.h <<_ACEOF @@ -7295,7 +7295,7 @@ $as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=3}" + RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=6}" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 @@ -7341,7 +7341,7 @@ $as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=2}" + RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=6}" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 @@ -25932,14 +25932,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then for path in `echo $PATH | ${TR} ":" " "`; do if test -x $path/aprun; then - RUNPARALLEL="aprun -q -n \$\${NPROCS:=3}" + RUNPARALLEL="aprun -q -n \$\${NPROCS:=6}" break; fi done fi if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - RUNPARALLEL="mpiexec -n \$\${NPROCS:=3}" + RUNPARALLEL="mpiexec -n \$\${NPROCS:=6}" fi ;; @@ -27588,6 +27588,202 @@ else $as_echo "no" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if using special algorithm to convert long double to (unsigned) long values" >&5 +$as_echo_n "checking if using special algorithm to convert long double to (unsigned) long values... " >&6; } + +if test ${ac_cv_sizeof_long_double} = 0; then + hdf5_cv_ldouble_to_long_special=${hdf5_cv_ldouble_to_long_special=no} +else + if test "${hdf5_cv_ldouble_to_long_special+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main(void) + { + long double ld = 20041683600089727.779961L; + long ll; + unsigned long ull; + unsigned char s[16]; + unsigned char s2[8]; + int ret = 1; + + if(sizeof(long double) == 16 && sizeof(long) == 8) { + /*make sure the long double type has 16 bytes in size and + * 11 bits of exponent. If it is, + *the bit sequence should be like below. It's not + *a decent way to check but this info isn't available. */ + memcpy(s, &ld, 16); + if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && + s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && + s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { + + /* Assign the hexadecimal value of long double type. */ + s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; + s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; + s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; + s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; + + memcpy(&ld, s, 16); + + ll = (long)ld; + memcpy(s2, &ll, 8); + + /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 + * and gets wrong value 20041683600089730 on the IBM Power6 Linux. + * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f + * and gets the correct value 20041683600089727. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + + ull = (unsigned long)ld; + memcpy(s2, &ull, 8); + + /* The unsigned long is the same as signed long. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + } + } + + done: + exit(ret); + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + hdf5_cv_ldouble_to_long_special=yes +else + hdf5_cv_ldouble_to_long_special=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +fi + +if test ${hdf5_cv_ldouble_to_long_special} = "yes"; then + +$as_echo "#define LDOUBLE_TO_LONG_SPECIAL 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if using special algorithm to convert (unsigned) long to long double values" >&5 +$as_echo_n "checking if using special algorithm to convert (unsigned) long to long double values... " >&6; } + +if test ${ac_cv_sizeof_long_double} = 0; then + hdf5_cv_long_to_ldouble_special=${hdf5_cv_long_to_ldouble_special=no} +else + if test "${hdf5_cv_long_to_ldouble_special+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main(void) + { + long double ld; + long ll; + unsigned long ull; + unsigned char s[16]; + int flag=0, ret=1; + + /*Determine if long double has 16 byte in size, 11 bit exponent, and + *the bias is 0x3ff */ + if(sizeof(long double) == 16) { + ld = 1.0L; + memcpy(s, &ld, 16); + if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) + flag = 1; + } + + if(flag==1 && sizeof(long)==8) { + ll = 0x003fffffffffffffL; + ld = (long double)ll; + memcpy(s, &ld, 16); + /* The library converts the value to 0x434fffffffffffff8000000000000000. + * In decimal it is 18014398509481982.000000, one value short of the original. + * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + if(flag==1 && sizeof(unsigned long)==8) { + ull = 0xffffffffffffffffUL; + ld = (long double)ull; + memcpy(s, &ld, 16); + /* Use a different value from signed long to test. The problem is the same + * for both long and unsigned long. The value is 18446744073709551615. + * The library converts the value to 0x43effffffffffffffe000000000000000. + * In decimal it's 18446744073709548544.000000, very different from the original. + * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + done: + exit(ret); + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + hdf5_cv_long_to_ldouble_special=yes +else + hdf5_cv_long_to_ldouble_special=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +fi + +if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then + +$as_echo "#define LONG_TO_LDOUBLE_SPECIAL 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to (unsigned) long long values" >&5 $as_echo_n "checking if correctly converting long double to (unsigned) long long values... " >&6; } @@ -27668,6 +27864,7 @@ else $as_echo "no" >&6; } fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting (unsigned) long long to long double values" >&5 $as_echo_n "checking if correctly converting (unsigned) long long to long double values... " >&6; } @@ -28800,7 +28997,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.78-FA_a5, which was +This file was extended by HDF5 $as_me 1.9.79-FA_a5, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28866,7 +29063,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.78-FA_a5 +HDF5 config.status 1.9.79-FA_a5 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" diff --git a/configure.in b/configure.in index f9c1a05..558793a 100644 --- a/configure.in +++ b/configure.in @@ -26,7 +26,7 @@ dnl dnl NOTE: Don't forget to change the version number here when we do a dnl release!!! dnl -AC_INIT([HDF5], [1.9.78-FA_a5], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.79-FA_a5], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AM_CONFIG_HEADER([src/H5config.h]) diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 0d23d1b..a472ec7 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -436,7 +436,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 # Include src directory in both Fortran and C flags (C compiler is used diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 2384649..fe323fb 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -392,7 +392,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 # Include src directory diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 18b1e92..94ed7ac 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -401,7 +401,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \ -I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 992c877..3b47dcc 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -392,7 +392,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 # This library is our main target. diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index debf84a..9aba063 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.78-FA_a5 currently under development +HDF5 version 1.9.79-FA_a5 currently under development ================================================================================ @@ -474,6 +474,11 @@ Bug Fixes since HDF5-1.8.0 release Tools ----- + - Fixed h5diff to handle variable-length strings in a compound dataset + correctly. (also variable-length string array in a compound dataset) + Garbage values were displayed when h5diff compared multiple + variable-length strings in a compound type dataset. + Bug#1989 (JKM 2010/10/28) - Fixed h5copy to fail gracefully when copying object to non-exist group without -p option. Bug#2040 (JKM 2010/10/18) - Fixed to compare member objects and groups recursively when two diff --git a/src/H5public.h b/src/H5public.h index f772472..076069e 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -75,10 +75,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 78 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 79 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "FA_a5" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.78-FA_a5" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.79-FA_a5" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index e2f3153..74f5927 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -457,7 +457,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 68 +LT_VERS_REVISION = 69 LT_VERS_AGE = 0 H5detect_CFLAGS = -g $(AM_CFLAGS) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b3af7e6..0d60993 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -293,11 +293,6 @@ FOREACH (test ${H5_TESTS}) ADD_H5_TEST(${test}) ENDFOREACH (test ${H5_TESTS}) -#-- Allow extra time for fheap to complete 30min -IF (WIN32) - SET_TESTS_PROPERTIES (fheap PROPERTIES TIMEOUT 2500) -ENDIF (WIN32) - ############################################################################## ############################################################################## @@ -352,13 +347,65 @@ IF (HDF5_TEST_VFD) multi family ) + + SET (H5_VFD_TESTS + testhdf5 + accum + lheap + ohdr + stab + gheap + cache + cache_api + cache_tagging + pool + hyperslab + istore + bittests + dt_arith + dtypes + cmpd_dset + filter_fail + extend + external + objcopy + links + unlink + big + mtime + fillval + mount + flush1 + flush2 + app_ref + enum + set_extent + ttsafe + getname + vfd + ntypes + dangle + dtransform + reserved + cross_read + freespace + mf + farray + earray + btree2 + #fheap + error_test + err_compat + tcheck_version + testmeta +) IF (DIRECT_VFD) SET (VFD_LIST ${VFD_LIST} direct) ENDIF (DIRECT_VFD) MACRO (ADD_VFD_TEST vfdname resultcode) - FOREACH (test ${H5_TESTS}) + FOREACH (test ${H5_VFD_TESTS}) ADD_TEST ( NAME VFD-${vfdname}-${test} COMMAND "${CMAKE_COMMAND}" @@ -366,10 +413,24 @@ IF (HDF5_TEST_VFD) -D "TEST_ARGS:STRING=" -D "TEST_VFD:STRING=${vfdname}" -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=${test}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake" + ) + ENDFOREACH (test ${H5_VFD_TESTS}) + IF (HDF5_TEST_FHEAP_VFD) + ADD_TEST ( + NAME VFD-${vfdname}-fheap + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=fheap" -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake" ) - ENDFOREACH (test ${H5_TESTS}) + ENDIF (HDF5_TEST_FHEAP_VFD) ENDMACRO (ADD_VFD_TEST) # Run test with different Virtual File Driver diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt index c378506..e019689 100644 --- a/testpar/CMakeLists.txt +++ b/testpar/CMakeLists.txt @@ -49,3 +49,46 @@ FOREACH (testp ${H5P_TESTS}) ADD_H5P_TEST(${testp}) ENDFOREACH (testp ${H5P_TESTS}) +IF (HDF5_TEST_VFD) + + SET (VFD_LIST + sec2 + stdio + core + split + multi + family + ) + + SET (H5P_VFD_TESTS + t_pflush1 + t_pflush2 + ) + + IF (DIRECT_VFD) + SET (VFD_LIST ${VFD_LIST} direct) + ENDIF (DIRECT_VFD) + + MACRO (ADD_VFD_TEST vfdname resultcode) + FOREACH (test ${H5P_VFD_TESTS}) + ADD_TEST ( + NAME VFD-${vfdname}-${test} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=${test}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake" + ) + ENDFOREACH (test ${H5P_VFD_TESTS}) + ENDMACRO (ADD_VFD_TEST) + + # Run test with different Virtual File Driver + FOREACH (vfd ${VFD_LIST}) + ADD_VFD_TEST (${vfd} 0) + ENDFOREACH (vfd ${VFD_LIST}) + +ENDIF (HDF5_TEST_VFD) + diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt index a784ae7..b86a804 100644 --- a/tools/h5diff/CMakeLists.txt +++ b/tools/h5diff/CMakeLists.txt @@ -147,6 +147,7 @@ IF (BUILD_TESTING) h5diff_516.txt h5diff_517.txt h5diff_518.txt + h5diff_530.txt h5diff_600.txt h5diff_601.txt h5diff_603.txt @@ -209,6 +210,7 @@ IF (BUILD_TESTING) h5diff_exclude1-2.h5 h5diff_exclude2-1.h5 h5diff_exclude2-2.h5 + h5diff_comp_vl_strs.h5 ) FOREACH (txt_file ${HDF5_REFERENCE_FILES}) @@ -326,6 +328,8 @@ IF (BUILD_TESTING) # different structure and obj names SET (EXCLUDE_FILE2_1 h5diff_exclude2-1.h5) SET (EXCLUDE_FILE2_2 h5diff_exclude2-2.h5) + # compound type with multiple vlen string types + SET (COMP_VL_STRS_FILE h5diff_comp_vl_strs.h5) # Remove any output file left over from previous test run ADD_TEST ( @@ -540,6 +544,8 @@ IF (BUILD_TESTING) h5diff_517.out.err h5diff_518.out h5diff_518.out.err + h5diff_530.out + h5diff_530.out.err h5diff_600.out h5diff_600.out.err h5diff_601.out @@ -1057,6 +1063,11 @@ ADD_H5_TEST (h5diff_483 1 -v --exclude-path "/group1" ${EXCLUDE_FILE2_1} ${EXCLU # Exclude from group compare ADD_H5_TEST (h5diff_484 0 -v --exclude-path "/dset3" ${EXCLUDE_FILE1_1} ${EXCLUDE_FILE1_2} /group1) +# ############################################################################## +# # diff various multiple vlen and fixed strings in a compound type dataset +# ############################################################################## +ADD_H5_TEST (h5diff_530 0 -v ${COMP_VL_STRS_FILE} ${COMP_VL_STRS_FILE}) + ENDIF (BUILD_TESTING) diff --git a/tools/h5diff/h5diffgentest.c b/tools/h5diff/h5diffgentest.c index 2ba0c7f..176814e 100644 --- a/tools/h5diff/h5diffgentest.c +++ b/tools/h5diff/h5diffgentest.c @@ -70,6 +70,8 @@ /* different structure and obj names */ #define EXCLUDE_FILE2_1 "h5diff_exclude2-1.h5" #define EXCLUDE_FILE2_2 "h5diff_exclude2-2.h5" +/* compound type with multiple vlen string types */ +#define COMP_VL_STRS_FILE "h5diff_comp_vl_strs.h5" #define UIMAX 4294967295u /*Maximum value for a variable of type unsigned int */ #define STR_SIZE 3 @@ -118,6 +120,7 @@ static int test_group_recurse(const char *fname1, const char *fname2); static int test_group_recurse2(); static int test_exclude_obj1(const char *fname1, const char *fname2); static int test_exclude_obj2(const char *fname1, const char *fname2); +static int test_comp_vlen_strings(const char *fname1); /* called by test_attributes() and test_datasets() */ static void write_attr_in(hid_t loc_id,const char* dset_name,hid_t fid,int make_diffs); @@ -183,6 +186,9 @@ int main(void) test_exclude_obj1(EXCLUDE_FILE1_1, EXCLUDE_FILE1_2); test_exclude_obj2(EXCLUDE_FILE2_1, EXCLUDE_FILE2_2); + /* diff various multiple vlen and fixlen string types in a compound dataset */ + test_comp_vlen_strings(COMP_VL_STRS_FILE ); + return 0; } @@ -3020,6 +3026,298 @@ out: } /*------------------------------------------------------------------------- +* +* Purpose: Create test files for multiple variable length string/string array +* along with fixed length string/string array types in +* a compound type dataset. +* +* Programmer: Jonathan Kim (Oct, 26, 2010) +* +*-------------------------------------------------------------------------*/ +#define STR_RANK 1 +#define VLSTR1_DIM 1 +#define FLSTR2_SIZE 21 +#define FLSTR2_DIM 1 +#define VLSTRARRY3_DIM 3 +#define FLSTRARRY4_DIM 3 +#define FLSTRARRY4_SIZE 30 +#define COMP_RANK 1 +#define COMP_DIM 1 +static int test_comp_vlen_strings(const char *fname1) +{ + int i; + + hid_t fid1; /* file id */ + + /* compound datatype */ + typedef struct comp_t + { + char *str1; /* vlen string */ + char *str1_again; /* vlen string */ + char str2[FLSTR2_SIZE]; /* fixed len string */ + char str2_again[FLSTR2_SIZE]; /* fixed len string */ + char *str3[VLSTRARRY3_DIM]; /* vlen string array */ + char *str3_again[VLSTRARRY3_DIM]; /* vlen string array */ + char str4[FLSTRARRY4_DIM][FLSTRARRY4_SIZE]; /* fixed len string array */ + char str4_again[FLSTRARRY4_DIM][FLSTRARRY4_SIZE]; /* fixed len string array */ + } comp_t; + + /* vlen string1 */ + hid_t sid_str1=0; /* dataspace ID */ + hid_t tid_str1=0; /* datatype ID */ + hid_t did_str1=0; /* dataset ID */ + const char vlstr1_buf[]= { + "Variable length string" + }; + hsize_t dims_str1[] = {VLSTR1_DIM}; + + /* fixlen string2 */ + hid_t sid_str2=0; /* dataspace ID */ + hid_t tid_str2=0; /* datatype ID */ + hid_t did_str2=0; /* dataset ID */ + const char flstr2_buf[FLSTR2_SIZE]= { + "Fixed length string" + }; + hsize_t dims_str2[] = {FLSTR2_DIM}; + + /* vlen string3 array */ + hid_t sid_str3=0; /* dataspace ID */ + hid_t tid_str3=0; /* datatype ID */ + hid_t tid_str3_array=0; /* datatype ID */ + hid_t did_str3=0; /* dataset ID */ + const char *vlstr3_buf[VLSTRARRY3_DIM]= { + "1 - Variable length string Array", + "2 - Testing variable length string array in compound type", + "3 - Four score and seven\n years ago our forefathers brought forth on this continent a new nation," + }; + hsize_t dims_str3[] = {VLSTRARRY3_DIM}; + + /* fixlen string array 4 */ + hid_t sid_str4=0; /* dataspace ID */ + hid_t tid_str4=0; /* datatype ID */ + hid_t tid_str4_array=0; /* datatype ID */ + hid_t did_str4=0; /* dataset ID */ + const char *flstr4_buf[FLSTRARRY4_DIM]= { + "1 - Fixed length string Array", + "2 - Fixed length string Array", + "3 - Fixed length string Array" + }; + hsize_t dims_str4[] = {FLSTRARRY4_DIM}; + + /*------------------------------------------ + * compound dataset + *------------------------------------------*/ + hid_t sid_comp=0; /* dataspace ID */ + hid_t tid_comp=0; /* datatype ID */ + hid_t did_comp=0; /* dataset ID */ + hsize_t dims_comp[] = {COMP_DIM}; + herr_t status = SUCCEED; + + /* make compound strings data */ + comp_t comp_buf; + + /* copy string1 type to compound buffer */ + comp_buf.str1 = comp_buf.str1_again = vlstr1_buf; + /* copy string2 type to compound buffer */ + HDstrcpy(comp_buf.str2, flstr2_buf); + HDstrcpy(comp_buf.str2_again, flstr2_buf); + /* copy string3 type to compound buffer */ + for (i=0; i < VLSTRARRY3_DIM; i++) + comp_buf.str3[i] = comp_buf.str3_again[i] = vlstr3_buf[i]; + /* copy string4 type to compound buffer */ + for (i=0; i < FLSTRARRY4_DIM; i++) + { + HDstrcpy(comp_buf.str4[i], flstr4_buf[i]); + HDstrcpy(comp_buf.str4_again[i], flstr4_buf[i]); + } + + /*----------------------------------------------------------------------- + * Create file(s) + *------------------------------------------------------------------------*/ + fid1 = H5Fcreate (fname1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + if (fid1 < 0) + { + fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname1); + status = FAIL; + goto out; + } + + /*----------------------------------------------------------------------- + * Variable length String1 - Create space and type + *------------------------------------------------------------------------*/ + sid_str1 = H5Screate_simple(STR_RANK, dims_str1, NULL); + if (sid_str1 < 0) + { + fprintf(stderr, "Error: %s> H5Screate_simple failed.\n", fname1); + status = FAIL; + goto out; + } + + tid_str1 = H5Tcopy(H5T_C_S1); + status = H5Tset_size(tid_str1, H5T_VARIABLE); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Tset_size failed.\n", fname1); + status = FAIL; + goto out; + } + + /*----------------------------------------------------------------------- + * Fixed length String2 - Create space and type + *------------------------------------------------------------------------*/ + sid_str2 = H5Screate_simple(STR_RANK, dims_str2, NULL); + if (sid_str2 < 0) + { + fprintf(stderr, "Error: %s> H5Screate_simple failed.\n", fname1); + status = FAIL; + goto out; + } + + tid_str2 = H5Tcopy(H5T_C_S1); + status = H5Tset_size(tid_str2, FLSTR2_SIZE); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Tset_size failed.\n", fname1); + status = FAIL; + goto out; + } + + /*----------------------------------------------------------------------- + * Fixed length String3 array - Create space and type + *------------------------------------------------------------------------*/ + sid_str3 = H5Screate_simple(STR_RANK, dims_str3, NULL); + if (sid_str3 < 0) + { + fprintf(stderr, "Error: %s> H5Screate_simple failed.\n", fname1); + status = FAIL; + goto out; + } + + tid_str3 = H5Tcopy(H5T_C_S1); + status = H5Tset_size(tid_str3, H5T_VARIABLE); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Tset_size failed.\n", fname1); + status = FAIL; + goto out; + } + + /* Create the array data type for the string array */ + tid_str3_array = H5Tarray_create2(tid_str3, COMP_RANK, dims_str3); + if (tid_str3_array < 0) + { + fprintf(stderr, "Error: %s> H5Tarray_create2 failed.\n", fname1); + status = FAIL; + goto out; + } + + /*----------------------------------------------------------------------- + * Variable length String4 array - Create space and type + *------------------------------------------------------------------------*/ + sid_str4 = H5Screate_simple(STR_RANK, dims_str4, NULL); + if (sid_str4 < 0) + { + fprintf(stderr, "Error: %s> H5Screate_simple failed.\n", fname1); + status = FAIL; + goto out; + } + + tid_str4 = H5Tcopy(H5T_C_S1); + status = H5Tset_size(tid_str4, FLSTRARRY4_SIZE); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Tset_size failed.\n", fname1); + status = FAIL; + goto out; + } + /* Create the array data type for the string array */ + tid_str4_array = H5Tarray_create2(tid_str4, COMP_RANK, dims_str4); + if (tid_str4_array < 0) + { + fprintf(stderr, "Error: %s> H5Tarray_create2 failed.\n", fname1); + status = FAIL; + goto out; + } + + /*------------------------------------------------------------------------- + * Compound dataset + *------------------------------------------------------------------------*/ + sid_comp = H5Screate_simple(COMP_RANK, dims_comp, NULL); + if (sid_comp < 0) + { + fprintf(stderr, "Error: %s> H5Screate_simple failed.\n", fname1); + status = FAIL; + goto out; + } + tid_comp = H5Tcreate (H5T_COMPOUND, sizeof(comp_t)); + H5Tinsert(tid_comp, "VLEN_STR1", HOFFSET(comp_t, str1), tid_str1 ); + H5Tinsert(tid_comp, "VLEN_STR2", HOFFSET(comp_t, str1_again), tid_str1 ); + H5Tinsert(tid_comp, "FIXLEN_STR1", HOFFSET(comp_t, str2), tid_str2 ); + H5Tinsert(tid_comp, "FIXLEN_STR2", HOFFSET(comp_t, str2_again), tid_str2 ); + H5Tinsert(tid_comp, "VLEN_STR_ARRAY1", HOFFSET(comp_t, str3), tid_str3_array); + H5Tinsert(tid_comp, "VLEN_STR_ARRAY2", HOFFSET(comp_t, str3_again), tid_str3_array); + H5Tinsert(tid_comp, "FIXLEN_STR_ARRAY1", HOFFSET(comp_t, str4), tid_str4_array); + H5Tinsert(tid_comp, "FIXLEN_STR_ARRAY2", HOFFSET(comp_t, str4_again), tid_str4_array); + + /* Write data to compound dataset buffer */ + did_comp = H5Dcreate2(fid1, "Compound_dset", tid_comp, sid_comp, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + status = H5Dwrite(did_comp, tid_comp, H5S_ALL, H5S_ALL, H5P_DEFAULT, &comp_buf); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Dwrite failed.\n", fname1); + status = FAIL; + goto out; + } +out: + /*----------------------------------------------------------------------- + * Close + *-----------------------------------------------------------------------*/ + if(fid1) + H5Fclose(fid1); + /* string1 */ + if(tid_str1) + H5Tclose(tid_str1); + if(did_str1) + H5Dclose(did_str1); + if(sid_str1) + H5Sclose(sid_str1); + /* string2 */ + if(tid_str2) + H5Tclose(tid_str2); + if(did_str2) + H5Dclose(did_str2); + if(sid_str2) + H5Sclose(sid_str2); + /* string3 */ + if(tid_str3) + H5Tclose(tid_str3); + if(tid_str3_array) + H5Tclose(tid_str3_array); + if(did_str3) + H5Dclose(did_str3); + if(sid_str3) + H5Sclose(sid_str3); + /* string4 */ + if(tid_str4) + H5Tclose(tid_str4); + if(tid_str4_array) + H5Tclose(tid_str4_array); + if(did_str4) + H5Dclose(did_str4); + if(sid_str4) + H5Sclose(sid_str4); + /* compound */ + if(tid_comp) + H5Tclose(tid_comp); + if(did_comp) + H5Dclose(did_comp); + if(sid_comp) + H5Sclose(sid_comp); + + return status; +} + +/*------------------------------------------------------------------------- * Function: write_attr_in * * Purpose: write attributes in LOC_ID (dataset, group, named datatype) diff --git a/tools/h5diff/testfiles/h5diff_530.txt b/tools/h5diff/testfiles/h5diff_530.txt new file mode 100644 index 0000000..6f7e08f --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_530.txt @@ -0,0 +1,11 @@ + +file1 file2 +--------------------------------------- + x x / + x x /Compound_dset + +group : and +0 differences found +dataset: and +0 differences found +EXIT CODE: 0 diff --git a/tools/h5diff/testfiles/h5diff_comp_vl_strs.h5 b/tools/h5diff/testfiles/h5diff_comp_vl_strs.h5 new file mode 100644 index 0000000..348cfee Binary files /dev/null and b/tools/h5diff/testfiles/h5diff_comp_vl_strs.h5 differ diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt index 1fbc503..56029fd 100644 --- a/tools/h5repack/CMakeLists.txt +++ b/tools/h5repack/CMakeLists.txt @@ -62,6 +62,42 @@ IF (BUILD_TESTING) TARGET_LINK_LIBRARIES (h5repacktest ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) ADD_TEST (NAME h5repacktest COMMAND $) + + IF (HDF5_TEST_VFD) + + SET (VFD_LIST + sec2 + stdio + core + split + multi + family + ) + + IF (DIRECT_VFD) + SET (VFD_LIST ${VFD_LIST} direct) + ENDIF (DIRECT_VFD) + + MACRO (ADD_VFD_TEST vfdname resultcode) + ADD_TEST ( + NAME VFD-${vfdname}-h5repacktest + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=h5repacktest" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake" + ) + ENDMACRO (ADD_VFD_TEST) + + # Run test with different Virtual File Driver + FOREACH (vfd ${VFD_LIST}) + ADD_VFD_TEST (${vfd} 0) + ENDFOREACH (vfd ${VFD_LIST}) + + ENDIF (HDF5_TEST_VFD) # -------------------------------------------------------------------- # Copy all the HDF5 files from the test directory into the source directory diff --git a/tools/lib/h5diff_array.c b/tools/lib/h5diff_array.c index dc3c9fb..6005ed8 100644 --- a/tools/lib/h5diff_array.c +++ b/tools/lib/h5diff_array.c @@ -447,21 +447,43 @@ hsize_t diff_datum(void *_mem1, { offset = H5Tget_member_offset(m_type, (unsigned)j); memb_type = H5Tget_member_type(m_type, (unsigned)j); - nfound+=diff_datum( - mem1+offset, - mem2+offset, - memb_type, - i, - rank, - dims, - acc, - pos, - options, - obj1, - obj2, - container1_id, - container2_id, - ph); + /* if member type is vlen string */ + if(H5Tis_variable_str(memb_type)) + { + nfound+=diff_datum( + ((unsigned char**)mem1)[j], + ((unsigned char**)mem2)[j], + memb_type, + i, + rank, + dims, + acc, + pos, + options, + obj1, + obj2, + container1_id, + container2_id, + ph); + } + else + { + nfound+=diff_datum( + mem1+offset, + mem2+offset, + memb_type, + i, + rank, + dims, + acc, + pos, + options, + obj1, + obj2, + container1_id, + container2_id, + ph); + } H5Tclose(memb_type); } break; @@ -631,21 +653,45 @@ hsize_t diff_datum(void *_mem1, for (u = 0, nelmts = 1; u