summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt16
-rw-r--r--CTestConfig.cmake25
-rw-r--r--MANIFEST2
-rw-r--r--README.txt2
-rw-r--r--c++/src/Makefile.in2
-rw-r--r--c++/test/CMakeLists.txt36
-rwxr-xr-xconfig/cmake/CTestCustom.cmake445
-rw-r--r--config/cmake/HDF5Macros.cmake2
-rw-r--r--config/cmake/vfdTest.cmake9
-rw-r--r--config/lt_vers.am2
-rwxr-xr-xconfigure227
-rw-r--r--configure.in2
-rw-r--r--fortran/src/Makefile.in2
-rw-r--r--hl/c++/src/Makefile.in2
-rw-r--r--hl/fortran/src/Makefile.in2
-rw-r--r--hl/src/Makefile.in2
-rw-r--r--release_docs/RELEASE.txt7
-rw-r--r--src/H5public.h4
-rw-r--r--src/Makefile.in2
-rw-r--r--test/CMakeLists.txt75
-rw-r--r--testpar/CMakeLists.txt43
-rw-r--r--tools/h5diff/CMakeLists.txt11
-rw-r--r--tools/h5diff/h5diffgentest.c298
-rw-r--r--tools/h5diff/testfiles/h5diff_530.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_comp_vl_strs.h5bin0 -> 8504 bytes
-rw-r--r--tools/h5repack/CMakeLists.txt36
-rw-r--r--tools/lib/h5diff_array.c106
-rw-r--r--vms/src/h5pubconf.h6
-rwxr-xr-xwindows/src/H5pubconf.h6
-rw-r--r--windows/tools/h5diff/testh5diff.bat8
30 files changed, 1299 insertions, 92 deletions
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 $<TARGET_FILE:cpp_testhdf5>)
+
+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=$<TARGET_FILE:cpp_testhdf5>"
+ -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 <help@hdfgroup.org>.
#
@@ -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=$<TARGET_FILE:fheap>"
+ -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=$<TARGET_FILE:${test}>"
+ -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: </Compound_dset> and </Compound_dset>
+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
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_comp_vl_strs.h5
Binary files 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 $<TARGET_FILE:h5repacktest>)
+
+ 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=$<TARGET_FILE:h5repacktest>"
+ -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 <ndims; u++)
nelmts *= adims[u];
for (u = 0; u < nelmts; u++)
- nfound+=diff_datum(
- mem1 + u * size,
- mem2 + u * size, /* offset */
- memb_type,
- i, /* index position */
- 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)[u],
+ ((unsigned char**)mem2)[u],
+ memb_type,
+ i, /* index position */
+ rank,
+ dims,
+ acc,
+ pos,
+ options,
+ obj1,
+ obj2,
+ container1_id,
+ container2_id,
+ ph);
+ }
+ else
+ {
+ nfound+=diff_datum(
+ mem1 + u * size,
+ mem2 + u * size, /* offset */
+ memb_type,
+ i, /* index position */
+ rank,
+ dims,
+ acc,
+ pos,
+ options,
+ obj1,
+ obj2,
+ container1_id,
+ container2_id,
+ ph);
+ }
+ }
H5Tclose(memb_type);
}
break;
diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h
index e197498..0347550 100644
--- a/vms/src/h5pubconf.h
+++ b/vms/src/h5pubconf.h
@@ -489,13 +489,13 @@
#define H5_PACKAGE_NAME "HDF5"
/* Define to the full name and version of this package. */
-#define H5_PACKAGE_STRING "HDF5 1.9.78-FA_a5"
+#define H5_PACKAGE_STRING "HDF5 1.9.79-FA_a5"
/* Define to the one symbol short name of this package. */
#define H5_PACKAGE_TARNAME "hdf5"
/* Define to the version of this package. */
-#define H5_PACKAGE_VERSION "1.9.78-FA_a5"
+#define H5_PACKAGE_VERSION "1.9.79-FA_a5"
/* Width for printf() for type `long long' or `__int64', use `ll' */
#define H5_PRINTF_LL_WIDTH "ll"
@@ -651,7 +651,7 @@
/* #undef H5_USING_MEMCHECKER */
/* Version number of package */
-#define H5_VERSION "1.9.78-FA_a5"
+#define H5_VERSION "1.9.79-FA_a5"
/* Define if vsnprintf() returns the correct value for formatted strings that
don't fit into size allowed */
diff --git a/windows/src/H5pubconf.h b/windows/src/H5pubconf.h
index 8996113..a354809 100755
--- a/windows/src/H5pubconf.h
+++ b/windows/src/H5pubconf.h
@@ -478,13 +478,13 @@
#define H5_PACKAGE_NAME "HDF5"
/* Define to the full name and version of this package. */
-#define H5_PACKAGE_STRING "HDF5 1.9.78-FA_a5"
+#define H5_PACKAGE_STRING "HDF5 1.9.79-FA_a5"
/* Define to the one symbol short name of this package. */
#define H5_PACKAGE_TARNAME "hdf5"
/* Define to the version of this package. */
-#define H5_PACKAGE_VERSION "1.9.78-FA_a5"
+#define H5_PACKAGE_VERSION "1.9.79-FA_a5"
/* Width for printf() for type `long long' or `__int64', use `ll' */
#define H5_PRINTF_LL_WIDTH "I64"
@@ -641,7 +641,7 @@
/* #undef H5_USING_MEMCHECKER */
/* Version number of package */
-#define H5_VERSION "1.9.78-FA_a5"
+#define H5_VERSION "1.9.79-FA_a5"
/* Define if vsnprintf() returns the correct value for formatted strings that
don't fit into size allowed */
diff --git a/windows/tools/h5diff/testh5diff.bat b/windows/tools/h5diff/testh5diff.bat
index 29be753..f745c42 100644
--- a/windows/tools/h5diff/testh5diff.bat
+++ b/windows/tools/h5diff/testh5diff.bat
@@ -58,6 +58,7 @@ set srcexclude1_1=h5diff_exclude1-1.h5
set srcexclude1_2=h5diff_exclude1-2.h5
set srcexclude2_1=h5diff_exclude2-1.h5
set srcexclude2_2=h5diff_exclude2-2.h5
+set src_comp_vl_strs=h5diff_comp_vl_strs.h5
set file1=%indir%\h5diff_basic1.h5
set file2=%indir%\h5diff_basic2.h5
@@ -89,6 +90,7 @@ set exclude1_1=%indir%\h5diff_exclude1-1.h5
set exclude1_2=%indir%\h5diff_exclude1-2.h5
set exclude2_1=%indir%\h5diff_exclude2-1.h5
set exclude2_2=%indir%\h5diff_exclude2-2.h5
+set comp_vl_strs=%indir%\h5diff_comp_vl_strs.h5
rem The tool name
@@ -853,6 +855,12 @@ rem ############################################################################
call :testing %h5diff% -v --exclude-path "/dset3" %srcexclude1_1% %srcexclude1_2% /group1
call :tooltest h5diff_484.txt -v --exclude-path "/dset3" %exclude1_1% %exclude1_2% /group1
+ rem ##############################################################################
+ rem # diff various multiple vlen and fixed strings in a compound type dataset
+ rem ##############################################################################
+ call :testing %h5diff% -v %src_comp_vl_strs% %src_comp_vl_strs%
+ call :tooltest h5diff_530.txt -v %comp_vl_strs% %comp_vl_strs%
+
rem #######################################################################
rem # END