summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST65
-rw-r--r--config/cmake/jrunTest.cmake93
-rwxr-xr-xconfig/cmake/scripts/HDF5options.cmake5
-rw-r--r--config/cmake/vfdTest.cmake6
-rw-r--r--config/cmake_ext_mod/runTest.cmake145
-rw-r--r--hl/tools/h5watch/CMakeTests.cmake59
-rw-r--r--hl/tools/h5watch/testh5watch.sh.in119
-rw-r--r--hl/tools/testfiles/w-err-cmpd1.err (renamed from hl/tools/testfiles/w-err-cmpd1.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-cmpd2.err (renamed from hl/tools/testfiles/w-err-cmpd2.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-cmpd3.err (renamed from hl/tools/testfiles/w-err-cmpd3.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-cmpd4.err (renamed from hl/tools/testfiles/w-err-cmpd4.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-cmpd5.err1
-rw-r--r--hl/tools/testfiles/w-err-dset-nomax.err (renamed from hl/tools/testfiles/w-err-dset-nomax.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-dset-none.err (renamed from hl/tools/testfiles/w-err-dset-none.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-dset1.err (renamed from hl/tools/testfiles/w-err-dset1.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-dset2.err (renamed from hl/tools/testfiles/w-err-dset2.ddl)1
-rw-r--r--hl/tools/testfiles/w-err-file.err (renamed from hl/tools/testfiles/w-err-file.ddl)0
-rw-r--r--hl/tools/testfiles/w-err-std.ddl (renamed from hl/tools/testfiles/w-err-cmpd5.ddl)0
-rw-r--r--java/src/hdf/hdf5lib/H5.java396
-rw-r--r--java/src/jni/CMakeLists.txt4
-rw-r--r--java/src/jni/h5aImp.c1104
-rw-r--r--java/src/jni/h5aImp.h151
-rw-r--r--java/src/jni/h5dImp.c78
-rw-r--r--java/src/jni/h5dImp.h11
-rw-r--r--java/src/jni/h5fImp.c29
-rw-r--r--java/src/jni/h5fImp.h9
-rw-r--r--java/test/TestH5Fbasic.java13
-rw-r--r--java/test/TestH5Fparams.java5
-rw-r--r--java/test/testfiles/JUnit-TestH5Edefault.txt26
-rw-r--r--java/test/testfiles/JUnit-TestH5Fbasic.txt3
-rw-r--r--java/test/testfiles/JUnit-TestH5Fparams.txt3
-rw-r--r--release_docs/RELEASE.txt24
-rw-r--r--src/CMakeLists.txt45
-rw-r--r--src/H5A.c2
-rw-r--r--src/H5Adeprec.c4
-rw-r--r--src/H5Apkg.h15
-rw-r--r--src/H5Apublic.h16
-rw-r--r--src/H5D.c6
-rw-r--r--src/H5Dio.c4
-rw-r--r--src/H5Dpkg.h9
-rw-r--r--src/H5Dpublic.h10
-rw-r--r--src/H5F.c48
-rw-r--r--src/H5Fdeprec.c4
-rw-r--r--src/H5Fint.c2
-rw-r--r--src/H5Fpkg.h29
-rw-r--r--src/H5Fpublic.h29
-rw-r--r--src/H5Gdeprec.c10
-rw-r--r--src/H5Gpkg.h16
-rw-r--r--src/H5Gpublic.h16
-rw-r--r--src/H5O.c14
-rw-r--r--src/H5Odeprec.c6
-rw-r--r--src/H5Oprivate.h7
-rw-r--r--src/H5Opublic.h7
-rw-r--r--src/H5PLint.c2
-rw-r--r--src/H5PLpath.c10
-rw-r--r--src/H5PLpkg.h2
-rw-r--r--src/H5PLplugin_cache.c2
-rw-r--r--src/H5Tcommit.c4
-rw-r--r--src/H5VLcallback.c100
-rw-r--r--src/H5VLint.c9
-rw-r--r--src/H5VLnative.c466
-rw-r--r--src/H5VLpassthru.c677
-rw-r--r--src/H5private.h6
-rw-r--r--src/H5system.c59
-rw-r--r--src/H5trace.c180
-rw-r--r--src/H5win32defs.h8
-rw-r--r--test/CMakeTests.cmake4
-rw-r--r--test/h5test.c15
-rw-r--r--test/tattr.c65
-rw-r--r--test/tvlstr.c4
-rw-r--r--tools/test/h5copy/CMakeTests.cmake2
-rw-r--r--tools/test/h5copy/testfiles/h5copy_misc1.err1
-rw-r--r--tools/test/h5copy/testfiles/h5copy_misc1.out1
-rw-r--r--tools/test/h5copy/testh5copy.sh.in7
-rw-r--r--tools/test/h5diff/CMakeTests.cmake119
-rw-r--r--tools/test/h5diff/h5diff_plugin.sh.in87
-rw-r--r--tools/test/h5diff/testfiles/dangling_link.err (renamed from tools/test/h5diff/testfiles/h5diff_459_ERR.err)0
-rw-r--r--tools/test/h5diff/testfiles/h5diff_454_ERR.err4
-rw-r--r--tools/test/h5diff/testfiles/h5diff_454_ERR.txt6
-rw-r--r--tools/test/h5diff/testfiles/h5diff_455_ERR.err4
-rw-r--r--tools/test/h5diff/testfiles/h5diff_455_ERR.txt6
-rw-r--r--tools/test/h5diff/testfiles/h5diff_457_ERR.err4
-rw-r--r--tools/test/h5diff/testfiles/h5diff_457_ERR.txt6
-rw-r--r--tools/test/h5diff/testfiles/h5diff_458_ERR.err4
-rw-r--r--tools/test/h5diff/testfiles/h5diff_458_ERR.txt6
-rw-r--r--tools/test/h5diff/testfiles/h5diff_459_ERR.txt6
-rw-r--r--tools/test/h5diff/testfiles/h5diff_600.txt1
-rw-r--r--tools/test/h5diff/testfiles/h5diff_601_ERR.txt6
-rw-r--r--tools/test/h5diff/testfiles/h5diff_udfail.err12
-rw-r--r--tools/test/h5diff/testfiles/h5diff_udfail.txt1
-rw-r--r--tools/test/h5diff/testh5diff.sh.in6
-rw-r--r--tools/test/h5dump/testh5dump.sh.in8
-rw-r--r--tools/test/h5dump/testh5dumppbits.sh.in4
-rw-r--r--tools/test/h5format_convert/CMakeTests.cmake61
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_d_file-d.ddl25
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_d_file.ddl1
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_d_file.ddl.err1
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_dname.ddl1
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_dname.err1
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl.err (renamed from tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl)0
-rw-r--r--tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl.err (renamed from tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl)0
-rw-r--r--tools/test/h5format_convert/testh5fc.sh.in60
-rw-r--r--tools/test/h5jam/CMakeTests.cmake2
-rw-r--r--tools/test/h5jam/tellub.c2
-rw-r--r--tools/test/h5ls/CMakeTests.cmake52
-rw-r--r--tools/test/h5ls/errfiles/nosuchfile.err1
-rw-r--r--tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err2
-rw-r--r--tools/test/h5ls/errfiles/tgroup-1.err2
-rw-r--r--tools/test/h5ls/testh5ls.sh.in11
-rw-r--r--tools/test/h5repack/CMakeTests.cmake3
-rw-r--r--tools/test/h5stat/CMakeTests.cmake64
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err1_dims.err (renamed from tools/test/h5stat/testfiles/h5stat_err1_dims.ddl)0
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err1_links.err (renamed from tools/test/h5stat/testfiles/h5stat_err1_links.ddl)0
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err1_numattrs.err (renamed from tools/test/h5stat/testfiles/h5stat_err2_numattrs.ddl)0
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err2_numattrs.err (renamed from tools/test/h5stat/testfiles/h5stat_err1_numattrs.ddl)0
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err_old_fill.err1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err_old_layout.ddl1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err_old_layout.err1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err_refcount.ddl1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_err_refcount.err1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_nofile.ddl1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_nofile.err1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_notexist.ddl1
-rw-r--r--tools/test/h5stat/testfiles/h5stat_notexist.err1
-rw-r--r--tools/test/h5stat/testh5stat.sh.in36
-rw-r--r--tools/test/misc/CMakeTestsClear.cmake89
-rw-r--r--tools/test/misc/testfiles/h5clear_missing_file.ddl1
-rw-r--r--tools/test/misc/testfiles/h5clear_missing_file.err1
-rw-r--r--tools/test/misc/testfiles/h5clear_no_mdc_image.err (renamed from tools/test/misc/testfiles/h5clear_no_mdc_image.ddl)0
-rw-r--r--tools/test/misc/testfiles/h5clear_open_fail.err (renamed from tools/test/misc/testfiles/h5clear_open_fail.ddl)0
-rw-r--r--tools/test/misc/testh5clear.sh.in72
-rw-r--r--tools/testfiles/err_attr_dspace.ddl1
-rw-r--r--tools/testfiles/non_existing.ddl1
-rw-r--r--tools/testfiles/nosuchfile.ls1
-rw-r--r--tools/testfiles/pbits/tnofilename-with-packed-bits.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsIncomplete.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsLengthExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsLengthPositive.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsMaxExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsOffsetExceeded.ddl1
-rw-r--r--tools/testfiles/pbits/tpbitsOffsetNegative.ddl1
-rw-r--r--tools/testfiles/texceedsubblock.ddl1
-rw-r--r--tools/testfiles/texceedsubcount.ddl1
-rw-r--r--tools/testfiles/texceedsubstart.ddl1
-rw-r--r--tools/testfiles/texceedsubstride.ddl1
-rw-r--r--tools/testfiles/textlinksrc-nodangle-1.ls2
-rw-r--r--tools/testfiles/tgroup-1.ls2
-rw-r--r--tools/testfiles/tstarfile.ddl1
155 files changed, 3425 insertions, 1668 deletions
diff --git a/MANIFEST b/MANIFEST
index cb22f4d..d840e73 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1388,14 +1388,17 @@
./tools/test/h5format_convert/testfiles/h5fc_v_err.ddl.err
./tools/test/h5format_convert/testfiles/h5fc_v_non_chunked.ddl
./tools/test/h5format_convert/testfiles/h5fc_d_file.ddl
+./tools/test/h5format_convert/testfiles/h5fc_d_file.ddl.err
+./tools/test/h5format_convert/testfiles/h5fc_d_file-d.ddl
./tools/test/h5format_convert/testfiles/h5fc_v_ndata_bt1.ddl
./tools/test/h5format_convert/testfiles/h5fc_dname.ddl
-./tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl
+./tools/test/h5format_convert/testfiles/h5fc_dname.err
+./tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl.err
+./tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl.err
./tools/test/h5format_convert/testfiles/h5fc_help.ddl
./tools/test/h5format_convert/testfiles/h5fc_v_all.ddl
./tools/test/h5format_convert/testfiles/h5fc_nooption.ddl
./tools/test/h5format_convert/testfiles/h5fc_v_n_1d.ddl
-./tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl
./tools/test/h5format_convert/testfiles/h5fc_non_v3.h5
./tools/test/h5format_convert/testfiles/h5fc_edge_v3.h5
./tools/test/h5format_convert/testfiles/h5fc_err_level.h5
@@ -1465,6 +1468,11 @@
./tools/test/h5ls/vds_prefix/tvds-4.ls
./tools/test/h5ls/vds_prefix/tvds-5.ls
+# h5ls test error files
+./tools/test/h5ls/errfiles/nosuchfile.err
+./tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err
+./tools/test/h5ls/errfiles/tgroup-1.err
+
# h5copy sources
./tools/src/h5copy/Makefile.am
./tools/src/h5copy/h5copy.c
@@ -1520,10 +1528,11 @@
./tools/test/misc/testfiles/h5clear_less_after_size.ddl
./tools/test/misc/testfiles/h5clear_less_before_size.ddl
./tools/test/misc/testfiles/h5clear_missing_file.ddl
+./tools/test/misc/testfiles/h5clear_missing_file.err
./tools/test/misc/testfiles/h5clear_noclose_after_size.ddl
./tools/test/misc/testfiles/h5clear_noclose_before_size.ddl
-./tools/test/misc/testfiles/h5clear_no_mdc_image.ddl
-./tools/test/misc/testfiles/h5clear_open_fail.ddl
+./tools/test/misc/testfiles/h5clear_no_mdc_image.err
+./tools/test/misc/testfiles/h5clear_open_fail.err
./tools/test/misc/testfiles/h5clear_status_noclose_after_size.ddl
./tools/test/misc/testfiles/h5clear_usage.ddl
./tools/test/misc/testfiles/h5clear_user_equal_after_size.ddl
@@ -1577,10 +1586,6 @@
./tools/test/h5stat/testh5stat.sh.in
./tools/test/h5stat/testfiles/h5stat_dims1.ddl
./tools/test/h5stat/testfiles/h5stat_dims2.ddl
-./tools/test/h5stat/testfiles/h5stat_err1_dims.ddl
-./tools/test/h5stat/testfiles/h5stat_err1_links.ddl
-./tools/test/h5stat/testfiles/h5stat_err1_numattrs.ddl
-./tools/test/h5stat/testfiles/h5stat_err2_numattrs.ddl
./tools/test/h5stat/testfiles/h5stat_err_old_fill.h5
./tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl
./tools/test/h5stat/testfiles/h5stat_err_old_layout.h5
@@ -1618,6 +1623,15 @@
./tools/test/h5stat/testfiles/h5stat_threshold.h5
./tools/test/h5stat/testfiles/h5stat_tsohm.ddl
./tools/test/h5stat/testfiles/h5stat_tsohm.h5
+./tools/test/h5stat/testfiles/h5stat_err_refcount.err
+./tools/test/h5stat/testfiles/h5stat_err_old_layout.err
+./tools/test/h5stat/testfiles/h5stat_err_old_fill.err
+./tools/test/h5stat/testfiles/h5stat_err1_dims.err
+./tools/test/h5stat/testfiles/h5stat_err1_links.err
+./tools/test/h5stat/testfiles/h5stat_err1_numattrs.err
+./tools/test/h5stat/testfiles/h5stat_err2_numattrs.err
+./tools/test/h5stat/testfiles/h5stat_notexist.err
+./tools/test/h5stat/testfiles/h5stat_nofile.err
# h5dump test files
./tools/testfiles/charsets.h5
@@ -2279,7 +2293,6 @@
./tools/test/h5diff/testfiles/h5diff_600.txt
./tools/test/h5diff/testfiles/h5diff_601.txt
./tools/test/h5diff/testfiles/h5diff_601_ERR.err
-./tools/test/h5diff/testfiles/h5diff_601_ERR.txt
./tools/test/h5diff/testfiles/h5diff_603.txt
./tools/test/h5diff/testfiles/h5diff_604.txt
./tools/test/h5diff/testfiles/h5diff_605.txt
@@ -2386,21 +2399,12 @@
./tools/test/h5diff/testfiles/h5diff_452.txt
./tools/test/h5diff/testfiles/h5diff_453.txt
./tools/test/h5diff/testfiles/h5diff_454.txt
-./tools/test/h5diff/testfiles/h5diff_454_ERR.err
-./tools/test/h5diff/testfiles/h5diff_454_ERR.txt
+./tools/test/h5diff/testfiles/dangling_link.err
./tools/test/h5diff/testfiles/h5diff_455.txt
-./tools/test/h5diff/testfiles/h5diff_455_ERR.err
-./tools/test/h5diff/testfiles/h5diff_455_ERR.txt
./tools/test/h5diff/testfiles/h5diff_456.txt
./tools/test/h5diff/testfiles/h5diff_457.txt
-./tools/test/h5diff/testfiles/h5diff_457_ERR.err
-./tools/test/h5diff/testfiles/h5diff_457_ERR.txt
./tools/test/h5diff/testfiles/h5diff_458.txt
-./tools/test/h5diff/testfiles/h5diff_458_ERR.err
-./tools/test/h5diff/testfiles/h5diff_458_ERR.txt
./tools/test/h5diff/testfiles/h5diff_459.txt
-./tools/test/h5diff/testfiles/h5diff_459_ERR.err
-./tools/test/h5diff/testfiles/h5diff_459_ERR.txt
./tools/test/h5diff/testfiles/h5diff_465.txt
./tools/test/h5diff/testfiles/h5diff_466.txt
./tools/test/h5diff/testfiles/h5diff_467.txt
@@ -2490,6 +2494,7 @@
./tools/test/h5diff/testfiles/tudfilter.h5
./tools/test/h5diff/testfiles/tudfilter2.h5
./tools/test/h5diff/testfiles/h5diff_ud.txt
+./tools/test/h5diff/testfiles/h5diff_udfail.err
./tools/test/h5diff/testfiles/h5diff_udfail.txt
./tools/test/h5diff/testfiles/diff_strings1.h5
./tools/test/h5diff/testfiles/diff_strings2.h5
@@ -2590,6 +2595,7 @@
./tools/test/h5copy/testfiles/h5copy_extlinks_src.h5
./tools/test/h5copy/testfiles/h5copy_extlinks_trg.h5
./tools/test/h5copy/testfiles/h5copy_extlinks_src.out.ls
+./tools/test/h5copy/testfiles/h5copy_misc1.err
./tools/test/h5copy/testfiles/h5copy_misc1.out
./tools/test/h5copy/testfiles/h5copytst_new.h5
./tools/test/h5copy/testfiles/h5copytst_new.out.ls
@@ -2758,16 +2764,17 @@
# expected test output from testing h5watch
#
-./hl/tools/testfiles/w-err-cmpd1.ddl
-./hl/tools/testfiles/w-err-cmpd2.ddl
-./hl/tools/testfiles/w-err-cmpd3.ddl
-./hl/tools/testfiles/w-err-cmpd4.ddl
-./hl/tools/testfiles/w-err-cmpd5.ddl
-./hl/tools/testfiles/w-err-dset1.ddl
-./hl/tools/testfiles/w-err-dset2.ddl
-./hl/tools/testfiles/w-err-dset-nomax.ddl
-./hl/tools/testfiles/w-err-dset-none.ddl
-./hl/tools/testfiles/w-err-file.ddl
+./hl/tools/testfiles/w-err-std.ddl
+./hl/tools/testfiles/w-err-cmpd1.err
+./hl/tools/testfiles/w-err-cmpd2.err
+./hl/tools/testfiles/w-err-cmpd3.err
+./hl/tools/testfiles/w-err-cmpd4.err
+./hl/tools/testfiles/w-err-cmpd5.err
+./hl/tools/testfiles/w-err-dset1.err
+./hl/tools/testfiles/w-err-dset2.err
+./hl/tools/testfiles/w-err-dset-nomax.err
+./hl/tools/testfiles/w-err-dset-none.err
+./hl/tools/testfiles/w-err-file.err
./hl/tools/testfiles/w-err-poll0.ddl
./hl/tools/testfiles/w-err-poll.ddl
./hl/tools/testfiles/w-err-width.ddl
diff --git a/config/cmake/jrunTest.cmake b/config/cmake/jrunTest.cmake
index b66f3a8..43aef22 100644
--- a/config/cmake/jrunTest.cmake
+++ b/config/cmake/jrunTest.cmake
@@ -32,9 +32,6 @@ endif ()
if (NOT TEST_CLASSPATH)
message (STATUS "Require TEST_CLASSPATH to be defined")
endif ()
-if (NOT TEST_REFERENCE)
- message (FATAL_ERROR "Require TEST_REFERENCE to be defined")
-endif ()
if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT})
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT})
@@ -44,14 +41,6 @@ if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT}.err)
endif ()
-# if there is not an error reference file add the error output to the stdout file
-if (NOT TEST_ERRREF)
- if (NOT SKIP_APPEND)
- # append error file since skip was not defined
- set (ERROR_APPEND 1)
- endif ()
-endif ()
-
if (NOT TEST_LOG_LEVEL)
set (LOG_LEVEL "info")
else ()
@@ -131,52 +120,54 @@ message (STATUS "COMMAND Error: ${TEST_ERROR}")
# compare output files to references unless this must be skipped
if (NOT TEST_SKIP_COMPARE)
- if (WIN32 AND NOT MINGW)
- file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
- file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
- endif ()
+ if (EXISTS ${TEST_FOLDER}/${TEST_REFERENCE})
+ if (WIN32 AND NOT MINGW)
+ file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
+ file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
+ endif ()
- # now compare the output with the reference
- execute_process (
- COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
- RESULT_VARIABLE TEST_RESULT
- )
- if (NOT "${TEST_RESULT}" STREQUAL "0")
- set (TEST_RESULT 0)
- file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
- list (LENGTH test_act len_act)
- file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
- list (LENGTH test_ref len_ref)
- if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
- math (EXPR _FP_LEN "${len_ref} - 1")
- foreach (line RANGE 0 ${_FP_LEN})
- list (GET test_act ${line} str_act)
- list (GET test_ref ${line} str_ref)
- if (NOT "${str_act}" STREQUAL "${str_ref}")
- if (NOT "${str_act}" STREQUAL "")
- set (TEST_RESULT 1)
- message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
+ # now compare the output with the reference
+ execute_process (
+ COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
+ RESULT_VARIABLE TEST_RESULT
+ )
+ if (NOT "${TEST_RESULT}" STREQUAL "0")
+ set (TEST_RESULT 0)
+ file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
+ list (LENGTH test_act len_act)
+ file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
+ list (LENGTH test_ref len_ref)
+ if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
+ math (EXPR _FP_LEN "${len_ref} - 1")
+ foreach (line RANGE 0 ${_FP_LEN})
+ list (GET test_act ${line} str_act)
+ list (GET test_ref ${line} str_ref)
+ if (NOT "${str_act}" STREQUAL "${str_ref}")
+ if (NOT "${str_act}" STREQUAL "")
+ set (TEST_RESULT 1)
+ message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
+ endif ()
endif ()
+ endforeach ()
+ else ()
+ if ("${len_act}" STREQUAL "0")
+ message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
+ endif ()
+ if ("${len_ref}" STREQUAL "0")
+ message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
endif ()
- endforeach ()
- else ()
- if ("${len_act}" STREQUAL "0")
- message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
endif ()
- if ("${len_ref}" STREQUAL "0")
- message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
+ if (NOT "${len_act}" STREQUAL "${len_ref}")
+ set (TEST_RESULT 1)
endif ()
endif ()
- if (NOT "${len_act}" STREQUAL "${len_ref}")
- set (TEST_RESULT 1)
- endif ()
- endif ()
- message (STATUS "COMPARE Result: ${TEST_RESULT}")
+ message (STATUS "COMPARE Result: ${TEST_RESULT}")
- # again, if return value is !=0 scream and shout
- if (NOT "${TEST_RESULT}" STREQUAL "0")
- message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
+ # again, if return value is !=0 scream and shout
+ if (NOT "${TEST_RESULT}" STREQUAL "0")
+ message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
+ endif ()
endif ()
# now compare the .err file with the error reference, if supplied
@@ -217,7 +208,7 @@ if (NOT TEST_SKIP_COMPARE)
if ("${len_ref}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_ERRREF} is empty")
endif ()
- endif()
+ endif ()
if (NOT "${len_act}" STREQUAL "${len_ref}")
set (TEST_RESULT 1)
endif ()
@@ -226,7 +217,7 @@ if (NOT TEST_SKIP_COMPARE)
message (STATUS "COMPARE Result: ${TEST_RESULT}")
# again, if return value is !=0 scream and shout
- if (NOT ${TEST_RESULT} STREQUAL 0)
+ if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The error output of ${TEST_OUTPUT}.err did not match ${TEST_ERRREF}")
endif ()
endif ()
diff --git a/config/cmake/scripts/HDF5options.cmake b/config/cmake/scripts/HDF5options.cmake
index 6d1a57a..d4cc996 100755
--- a/config/cmake/scripts/HDF5options.cmake
+++ b/config/cmake/scripts/HDF5options.cmake
@@ -58,12 +58,13 @@ set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRIN
### ext libs from git
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=GIT")
### ext libs on system
+#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=NO")
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include")
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include")
-### disable ext zlib building
+### disable using ext zlib
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")
-### disable ext szip building
+### disable using ext szip
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
diff --git a/config/cmake/vfdTest.cmake b/config/cmake/vfdTest.cmake
index 66a97c0..95a4c40 100644
--- a/config/cmake/vfdTest.cmake
+++ b/config/cmake/vfdTest.cmake
@@ -32,9 +32,9 @@ if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
endif ()
# if there is not an error reference file add the error output to the stdout file
-if (NOT TEST_ERRREF)
- set (ERROR_APPEND 1)
-endif ()
+#if (NOT TEST_ERRREF)
+# set (ERROR_APPEND 1)
+#endif ()
message (STATUS "USING ${TEST_VFD} ON COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
diff --git a/config/cmake_ext_mod/runTest.cmake b/config/cmake_ext_mod/runTest.cmake
index 5569a73..0bc2db0 100644
--- a/config/cmake_ext_mod/runTest.cmake
+++ b/config/cmake_ext_mod/runTest.cmake
@@ -26,9 +26,6 @@ endif ()
if (NOT TEST_EXPECT)
message (STATUS "Require TEST_EXPECT to be defined")
endif ()
-if (NOT TEST_SKIP_COMPARE AND NOT TEST_REFERENCE)
- message (FATAL_ERROR "Require TEST_REFERENCE to be defined")
-endif ()
if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT})
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT})
@@ -38,11 +35,6 @@ if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT}.err)
endif ()
-# if there is not an error reference file add the error output to the stdout file
-if (NOT TEST_ERRREF)
- set (ERROR_APPEND 1)
-endif ()
-
message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
if (TEST_LIBRARY_DIRECTORY)
@@ -96,9 +88,19 @@ endif ()
message (STATUS "COMMAND Result: ${TEST_RESULT}")
# if the .err file exists and ERRROR_APPEND is enabled
-if (ERROR_APPEND AND EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
+if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
- file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
+ if (TEST_MASK_FILE)
+ STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}")
+ endif ()
+
+ if (NOT ERROR_APPEND)
+ # append error output to the stdout output file
+ file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}")
+ else ()
+ # write back to original .err file
+ file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
+ endif ()
endif ()
# append the test result status with a predefined text
@@ -142,6 +144,7 @@ if (TEST_MASK_ERROR)
# the error stack remains in the .err file
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
endif ()
+ string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}")
string (REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
string (REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
string (REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
@@ -173,63 +176,65 @@ endif ()
# compare output files to references unless this must be skipped
if (NOT TEST_SKIP_COMPARE)
- if (WIN32 AND NOT MINGW)
- file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
- file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
- endif ()
+ if (EXISTS ${TEST_FOLDER}/${TEST_REFERENCE})
+ if (WIN32 AND NOT MINGW)
+ file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
+ file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
+ endif ()
- if (NOT TEST_SORT_COMPARE)
- # now compare the output with the reference
- execute_process (
- COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
- RESULT_VARIABLE TEST_RESULT
- )
- else ()
- file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} v1)
- file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} v2)
- list (SORT v1)
- list (SORT v2)
- if (NOT v1 STREQUAL v2)
- set(TEST_RESULT 1)
+ if (NOT TEST_SORT_COMPARE)
+ # now compare the output with the reference
+ execute_process (
+ COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
+ RESULT_VARIABLE TEST_RESULT
+ )
+ else ()
+ file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} v1)
+ file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} v2)
+ list (SORT v1)
+ list (SORT v2)
+ if (NOT v1 STREQUAL v2)
+ set(TEST_RESULT 1)
+ endif ()
endif ()
- endif ()
- if (NOT "${TEST_RESULT}" STREQUAL "0")
- set (TEST_RESULT 0)
- file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
- list (LENGTH test_act len_act)
- file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
- list (LENGTH test_ref len_ref)
- if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
- math (EXPR _FP_LEN "${len_ref} - 1")
- foreach (line RANGE 0 ${_FP_LEN})
- list (GET test_act ${line} str_act)
- list (GET test_ref ${line} str_ref)
- if (NOT "${str_act}" STREQUAL "${str_ref}")
- if (NOT "${str_act}" STREQUAL "")
- set (TEST_RESULT 1)
- message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
+ if (NOT "${TEST_RESULT}" STREQUAL "0")
+ set (TEST_RESULT 0)
+ file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
+ list (LENGTH test_act len_act)
+ file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
+ list (LENGTH test_ref len_ref)
+ if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
+ math (EXPR _FP_LEN "${len_ref} - 1")
+ foreach (line RANGE 0 ${_FP_LEN})
+ list (GET test_act ${line} str_act)
+ list (GET test_ref ${line} str_ref)
+ if (NOT "${str_act}" STREQUAL "${str_ref}")
+ if (NOT "${str_act}" STREQUAL "")
+ set (TEST_RESULT 1)
+ message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
+ endif ()
endif ()
+ endforeach ()
+ else ()
+ if ("${len_act}" STREQUAL "0")
+ message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
+ endif ()
+ if ("${len_ref}" STREQUAL "0")
+ message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
endif ()
- endforeach ()
- else ()
- if ("${len_act}" STREQUAL "0")
- message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
endif ()
- if ("${len_ref}" STREQUAL "0")
- message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
+ if (NOT "${len_act}" STREQUAL "${len_ref}")
+ set (TEST_RESULT 1)
endif ()
endif ()
- if (NOT "${len_act}" STREQUAL "${len_ref}")
- set (TEST_RESULT 1)
- endif ()
- endif ()
- message (STATUS "COMPARE Result: ${TEST_RESULT}")
+ message (STATUS "COMPARE Result: ${TEST_RESULT}")
- # again, if return value is !=0 scream and shout
- if (NOT "${TEST_RESULT}" STREQUAL "0")
- message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
+ # again, if return value is !=0 scream and shout
+ if (NOT "${TEST_RESULT}" STREQUAL "0")
+ message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
+ endif ()
endif ()
# now compare the .err file with the error reference, if supplied
@@ -260,7 +265,7 @@ if (NOT TEST_SKIP_COMPARE)
if (NOT "${str_act}" STREQUAL "")
set (TEST_RESULT 1)
message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
- endif ()
+ endif ()
endif ()
endforeach ()
else ()
@@ -285,5 +290,27 @@ if (NOT TEST_SKIP_COMPARE)
endif ()
endif ()
+if (TEST_GREP_COMPARE)
+ # now grep the output with the reference
+ file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
+
+ # TEST_REFERENCE should always be matched
+ string (REGEX MATCH "${TEST_REFERENCE}" TEST_MATCH ${TEST_STREAM})
+ string (COMPARE EQUAL "${TEST_REFERENCE}" "${TEST_MATCH}" TEST_RESULT)
+ if ("${TEST_RESULT}" STREQUAL "0")
+ message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not contain ${TEST_REFERENCE}")
+ endif ()
+
+ string (REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM})
+ if ("${TEST_EXPECT}" STREQUAL "1")
+ # TEST_EXPECT (1) interperts TEST_FILTER as NOT to match
+ string (LENGTH "${TEST_MATCH}" TEST_RESULT)
+ if (NOT "${TEST_RESULT}" STREQUAL "0")
+ message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did contain ${TEST_FILTER}")
+ endif ()
+ endif ()
+endif ()
+
# everything went fine...
-message ("Passed: The output of ${TEST_PROGRAM} matches ${TEST_REFERENCE}")
+message ("${TEST_PROGRAM} Passed")
+
diff --git a/hl/tools/h5watch/CMakeTests.cmake b/hl/tools/h5watch/CMakeTests.cmake
index 0b7b4d4..13d5e47 100644
--- a/hl/tools/h5watch/CMakeTests.cmake
+++ b/hl/tools/h5watch/CMakeTests.cmake
@@ -18,16 +18,16 @@
set (H5WATCH_TEST_FILES
w-help1.ddl
- w-err-cmpd1.ddl
- w-err-cmpd2.ddl
- w-err-cmpd3.ddl
- w-err-cmpd4.ddl
- w-err-cmpd5.ddl
- w-err-dset1.ddl
- w-err-dset2.ddl
- w-err-dset-nomax.ddl
- w-err-dset-none.ddl
- w-err-file.ddl
+ w-err-cmpd1.err
+ w-err-cmpd2.err
+ w-err-cmpd3.err
+ w-err-cmpd4.err
+ w-err-cmpd5.err
+ w-err-dset1.err
+ w-err-dset2.err
+ w-err-dset-nomax.err
+ w-err-dset-none.err
+ w-err-file.err
w-err-poll.ddl
w-err-poll0.ddl
w-err-width.ddl
@@ -86,6 +86,25 @@ add_custom_target(H5WATCH_files ALL COMMENT "Copying files needed by H5WATCH tes
endif ()
endmacro ()
+ macro (ADD_H5_ERR_TEST resultfile resultcode)
+ if (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5WATCH_ARGS-h5watch-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5watch>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.mty"
+ -D "TEST_ERRREF=${resultfile}.err"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5WATCH_ARGS-h5watch-${resultfile} PROPERTIES DEPENDS ${last_test})
+ set (last_test "H5WATCH_ARGS-h5watch-${resultfile}")
+ endif ()
+ endmacro ()
+
macro (ADD_H5_WATCH resultfile resultcode)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
@@ -162,20 +181,20 @@ if (NOT SWMR_INCOMPAT)
ADD_H5_TEST (w-help1 0 --help)
#
# Tests on expected failures
- ADD_H5_TEST (w-err-dset1 1 WATCH.h5)
- ADD_H5_TEST (w-err-dset2 1 WATCH.h5/group/DSET_CMPD)
- ADD_H5_TEST (w-err-dset-none 1 WATCH.h5/DSET_NONE)
- ADD_H5_TEST (w-err-dset-nomax 1 WATCH.h5/DSET_NOMAX)
- ADD_H5_TEST (w-err-file 1 ../WATCH.h5/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-dset1 1 WATCH.h5)
+ ADD_H5_ERR_TEST (w-err-dset2 1 WATCH.h5/group/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-dset-none 1 WATCH.h5/DSET_NONE)
+ ADD_H5_ERR_TEST (w-err-dset-nomax 1 WATCH.h5/DSET_NOMAX)
+ ADD_H5_ERR_TEST (w-err-file 1 ../WATCH.h5/DSET_CMPD)
ADD_H5_TEST (w-err-width 1 --width=-8 WATCH.h5/DSET_ONE)
ADD_H5_TEST (w-err-poll 1 --polling=-8 WATCH.h5/DSET_ONE)
ADD_H5_TEST (w-err-poll0 1 --polling=0 WATCH.h5/DSET_ONE)
#
# Tests on invalid field names via --fields option for a compound typed dataset: DSET_CMPD
- ADD_H5_TEST (w-err-cmpd1 1 --fields=fieldx WATCH.h5/DSET_CMPD)
- ADD_H5_TEST (w-err-cmpd2 1 --fields=field1,field2. WATCH.h5/DSET_CMPD)
- ADD_H5_TEST (w-err-cmpd3 1 --fields=field1,field2, WATCH.h5/DSET_CMPD)
- ADD_H5_TEST (w-err-cmpd4 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD)
- ADD_H5_TEST (w-err-cmpd5 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-cmpd1 1 --fields=fieldx WATCH.h5/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-cmpd2 1 --fields=field1,field2. WATCH.h5/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-cmpd3 1 --fields=field1,field2, WATCH.h5/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-cmpd4 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD)
+ ADD_H5_ERR_TEST (w-err-cmpd5 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD)
#
endif ()
diff --git a/hl/tools/h5watch/testh5watch.sh.in b/hl/tools/h5watch/testh5watch.sh.in
index 3f8f5ae..d31bcc3 100644
--- a/hl/tools/h5watch/testh5watch.sh.in
+++ b/hl/tools/h5watch/testh5watch.sh.in
@@ -32,19 +32,19 @@ fi
#echo
#exit 0
-H5WATCH=h5watch # The tool name
-H5WATCH_BIN=`pwd`/$H5WATCH # The path of H5WATCH
-EXTEND_DSET=extend_dset # Routine to extend the dataset when watching
-EXTEND_BIN=`pwd`/$EXTEND_DSET # The path of EXTEND_DSET
+H5WATCH=h5watch # The tool name
+H5WATCH_BIN=`pwd`/$H5WATCH # The path of H5WATCH
+EXTEND_DSET=extend_dset # Routine to extend the dataset when watching
+EXTEND_BIN=`pwd`/$EXTEND_DSET # The path of EXTEND_DSET
#
EXIT_SUCCESS=0
EXIT_FAILURE=1
#
-GEN_TEST=h5watchgentest # Generate HDF5 file with various datasets
-GEN_TEST_BIN=`pwd`/$GEN_TEST # Path of the binary GEN_TEST
+GEN_TEST=h5watchgentest # Generate HDF5 file with various datasets
+GEN_TEST_BIN=`pwd`/$GEN_TEST # Path of the binary GEN_TEST
WATCHFILE=`pwd`/WATCH.h5 # The HDF5 file generated to test h5watch
TESTFILE=TEST.h5 # The temporary file (a copy of WATCH.h5) used by tests
-TRY_MAX=30 # Try running the test again
+TRY_MAX=30 # Try running the test again
#
# These 3 defines should be the same as the defines in ./extend_dset.c
WRITER_MESSAGE=writer_message # The message file created by the "extend" process
@@ -53,7 +53,7 @@ MESSAGE_TIMEOUT=300 # Message timeout length in secs
#
CMP='cmp -s'
DIFF='diff -c'
-NLINES=20 # Max. lines of output to display if test fails
+NLINES=20 # Max. lines of output to display if test fails
#
# Mac OS: just to make sure echo "backslash backslash" behaves properly
if test `uname -s` = 'Darwin'; then
@@ -83,9 +83,9 @@ TESTING() {
# Overall algorithm:
#
# Run a test and print PASSED or FAILED
-# If a test did not return with the expected return code,
+# If a test did not return with the expected return code,
# increment the `nerrors' global variable and (if $verbose is set) display up to $NLINES
-# lines of the actual output from the test.
+# lines of the actual output from the test.
# If the test did return the expected code,
# compare the actual output with the expected output;
# If the outputs are the same, print PASSED,
@@ -137,7 +137,54 @@ TOOLTEST() {
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
- rm -f $actual $actual_err
+ rm -f $actual $actual_err
+ fi
+}
+#
+# TOOLTEST_ERR():
+# same as toolset only compare error file
+#
+# Arguments:
+#
+# $1 -- expected output
+# $2 -- expected return code
+# $3 and on -- arguments for h5watch
+TOOLTEST_ERR() {
+ expect="$srcdir/../testfiles/$1"
+ expect_err="$srcdir/../testfiles/`basename $1 .ddl`.err"
+ actual="../testfiles/`basename $1 .ddl`.out"
+ actual_err="../testfiles/`basename $1 .ddl`.out.err"
+ shift
+ retvalexpect=$1
+ shift
+ # Run test.
+ TESTING $H5WATCH $@
+ (
+ $RUNSERIAL $H5WATCH_BIN "$@"
+ ) > $actual 2>$actual_err
+ exitcode=$?
+ if [ $exitcode -ne $retvalexpect ]; then
+ $ECHO "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
+ if [ yes = "$verbose" ]; then
+ $ECHO "test returned with exit code $exitcode"
+ $ECHO "test output: (up to $NLINES lines)"
+ head -$NLINES $actual
+ $ECHO "***end of test output***"
+ $ECHO ""
+ fi
+ elif $CMP $expect_err $actual_err; then
+ $ECHO " PASSED"
+ else
+ $ECHO "*FAILED*"
+ $ECHO " Expected result differs from actual result"
+ nerrors="`expr $nerrors + 1`"
+ test yes = "$verbose" && $DIFF $expect_err $actual_err |sed 's/^/ /'
+ fi
+
+ # Clean up output file
+ if test -z "$HDF5_NOCLEANUP"; then
+ rm -f $actual $actual_err
fi
}
@@ -176,15 +223,15 @@ do
# Wait for message from "extend_dset" process to start h5watch--
# To wait for the writer message file or till the maximum # of seconds is reached
# This performs similar function as the routine h5_wait_message() in test/h5test.c
- mexist=0 # Indicate whether the message file is found
- t0=`date +%s` # Get current time in seconds
- difft=0 # Initialize the time difference
- while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out
+ mexist=0 # Indicate whether the message file is found
+ t0=`date +%s` # Get current time in seconds
+ difft=0 # Initialize the time difference
+ while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out
do
- t1=`date +%s` # Get current time in seconds
- difft=`expr $t1 - $t0` # Calculate the time difference
+ t1=`date +%s` # Get current time in seconds
+ difft=`expr $t1 - $t0` # Calculate the time difference
if [ -e $WRITER_MESSAGE ]; then # If message file is found:
- mexist=1 # indicate the message file is found
+ mexist=1 # indicate the message file is found
rm $WRITER_MESSAGE # remove the message file
break # get out of the while loop
fi
@@ -211,8 +258,8 @@ do
wait $extend_pid # Wait for "extend" process to complete
extend_exit=$? # Collect "extend" process' exit code
sleep 1 # Sleep to make sure output is flushed
- kill $watch_pid # Kill h5watch
- wait $watch_pid # Wait for "h5watch" process to complete
+ kill $watch_pid # Kill h5watch
+ wait $watch_pid # Wait for "h5watch" process to complete
#
if [ $extend_exit -ne 0 ]; then # Error returned from "extend" process
$ECHO "*FAILED*"
@@ -265,7 +312,7 @@ done;
# DSET_ONE: one-dimensional dataset #
# DSET_TWO: two-dimensional dataset #
# DSET_CMPD: one-dimensional dataset with compound type #
-# DSET_CMPD_ESC: one-dimensional dataset with compound type & escape/separator characters #
+# DSET_CMPD_ESC: one-dimensional dataset with compound type & escape/separator characters #
# DSET_CMPD_TWO: two-dimensional dataset with compound type #
# #
# The following datasets are one-dimensional, chunked, max. dimension setting: #
@@ -282,11 +329,11 @@ done;
#################################################################################################
# #
# Tests on expected failures: #
-# Invalid file name #
-# Unable to find dataset, invalid dataset #
-# DSET_NONE and DSET_NOMAX #
-# Invalid input to options --width and --polling #
-# Invalid field names for -f option #
+# Invalid file name #
+# Unable to find dataset, invalid dataset #
+# DSET_NONE and DSET_NOMAX #
+# Invalid input to options --width and --polling #
+# Invalid field names for -f option #
# #
#################################################################################################
#
@@ -296,21 +343,21 @@ $GEN_TEST_BIN
TOOLTEST w-help1.ddl 0 --help
#
# Tests on expected failures
-TOOLTEST w-err-dset1.ddl 1 WATCH.h5
-TOOLTEST w-err-dset2.ddl 1 WATCH.h5/group/DSET_CMPD
-TOOLTEST w-err-dset-none.ddl 1 WATCH.h5/DSET_NONE
-TOOLTEST w-err-dset-nomax.ddl 1 WATCH.h5/DSET_NOMAX
-TOOLTEST w-err-file.ddl 1 ../WATCH.h5/DSET_CMPD
+TOOLTEST_ERR w-err-dset1.ddl 1 WATCH.h5
+TOOLTEST_ERR w-err-dset2.ddl 1 WATCH.h5/group/DSET_CMPD
+TOOLTEST_ERR w-err-dset-none.ddl 1 WATCH.h5/DSET_NONE
+TOOLTEST_ERR w-err-dset-nomax.ddl 1 WATCH.h5/DSET_NOMAX
+TOOLTEST_ERR w-err-file.ddl 1 ../WATCH.h5/DSET_CMPD
TOOLTEST w-err-width.ddl 1 --width=-8 WATCH.h5/DSET_ONE
TOOLTEST w-err-poll.ddl 1 --polling=-8 WATCH.h5/DSET_ONE
TOOLTEST w-err-poll0.ddl 1 --polling=0 WATCH.h5/DSET_ONE
#
# Tests on invalid field names via --fields option for a compound typed dataset: DSET_CMPD
-TOOLTEST w-err-cmpd1.ddl 1 --fields=fieldx WATCH.h5/DSET_CMPD
-TOOLTEST w-err-cmpd2.ddl 1 --fields=field1,field2. WATCH.h5/DSET_CMPD
-TOOLTEST w-err-cmpd3.ddl 1 --fields=field1,field2, WATCH.h5/DSET_CMPD
-TOOLTEST w-err-cmpd4.ddl 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD
-TOOLTEST w-err-cmpd5.ddl 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD
+TOOLTEST_ERR w-err-cmpd1.ddl 1 --fields=fieldx WATCH.h5/DSET_CMPD
+TOOLTEST_ERR w-err-cmpd2.ddl 1 --fields=field1,field2. WATCH.h5/DSET_CMPD
+TOOLTEST_ERR w-err-cmpd3.ddl 1 --fields=field1,field2, WATCH.h5/DSET_CMPD
+TOOLTEST_ERR w-err-cmpd4.ddl 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD
+TOOLTEST_ERR w-err-cmpd5.ddl 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD
#
echo "DONE WITH 1st SET OF TESTS"
#
diff --git a/hl/tools/testfiles/w-err-cmpd1.ddl b/hl/tools/testfiles/w-err-cmpd1.err
index 775d6a0..9c165fb 100644
--- a/hl/tools/testfiles/w-err-cmpd1.ddl
+++ b/hl/tools/testfiles/w-err-cmpd1.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>
diff --git a/hl/tools/testfiles/w-err-cmpd2.ddl b/hl/tools/testfiles/w-err-cmpd2.err
index 775d6a0..9c165fb 100644
--- a/hl/tools/testfiles/w-err-cmpd2.ddl
+++ b/hl/tools/testfiles/w-err-cmpd2.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>
diff --git a/hl/tools/testfiles/w-err-cmpd3.ddl b/hl/tools/testfiles/w-err-cmpd3.err
index 775d6a0..9c165fb 100644
--- a/hl/tools/testfiles/w-err-cmpd3.ddl
+++ b/hl/tools/testfiles/w-err-cmpd3.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>
diff --git a/hl/tools/testfiles/w-err-cmpd4.ddl b/hl/tools/testfiles/w-err-cmpd4.err
index 775d6a0..9c165fb 100644
--- a/hl/tools/testfiles/w-err-cmpd4.ddl
+++ b/hl/tools/testfiles/w-err-cmpd4.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>
diff --git a/hl/tools/testfiles/w-err-cmpd5.err b/hl/tools/testfiles/w-err-cmpd5.err
new file mode 100644
index 0000000..9c165fb
--- /dev/null
+++ b/hl/tools/testfiles/w-err-cmpd5.err
@@ -0,0 +1 @@
+h5watch error: error in processing <list_of_fields>
diff --git a/hl/tools/testfiles/w-err-dset-nomax.ddl b/hl/tools/testfiles/w-err-dset-nomax.err
index b99cf84..fd5ca7e 100644
--- a/hl/tools/testfiles/w-err-dset-nomax.ddl
+++ b/hl/tools/testfiles/w-err-dset-nomax.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: "/DSET_NOMAX" should have unlimited or max. dimension setting
diff --git a/hl/tools/testfiles/w-err-dset-none.ddl b/hl/tools/testfiles/w-err-dset-none.err
index cbf6770..db781c3 100644
--- a/hl/tools/testfiles/w-err-dset-none.ddl
+++ b/hl/tools/testfiles/w-err-dset-none.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: "/DSET_NONE" should be a chunked or virtual dataset
diff --git a/hl/tools/testfiles/w-err-dset1.ddl b/hl/tools/testfiles/w-err-dset1.err
index 433c4d6..d6b2a6e 100644
--- a/hl/tools/testfiles/w-err-dset1.ddl
+++ b/hl/tools/testfiles/w-err-dset1.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: no dataset specified
diff --git a/hl/tools/testfiles/w-err-dset2.ddl b/hl/tools/testfiles/w-err-dset2.err
index 81b52de..3f77ec8 100644
--- a/hl/tools/testfiles/w-err-dset2.ddl
+++ b/hl/tools/testfiles/w-err-dset2.err
@@ -1,2 +1 @@
-Opened "WATCH.h5" with sec2 driver.
h5watch error: unable to open dataset "/group/DSET_CMPD"
diff --git a/hl/tools/testfiles/w-err-file.ddl b/hl/tools/testfiles/w-err-file.err
index 015661f..015661f 100644
--- a/hl/tools/testfiles/w-err-file.ddl
+++ b/hl/tools/testfiles/w-err-file.err
diff --git a/hl/tools/testfiles/w-err-cmpd5.ddl b/hl/tools/testfiles/w-err-std.ddl
index 775d6a0..775d6a0 100644
--- a/hl/tools/testfiles/w-err-cmpd5.ddl
+++ b/hl/tools/testfiles/w-err-std.ddl
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index f9f9b65..bce0034 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -852,7 +852,8 @@ public class H5 implements java.io.Serializable {
* @exception HDF5LibraryException
* - Error from the HDF-5 Library.
**/
- public static long H5Aget_space(long attr_id) throws HDF5LibraryException {
+ public static long H5Aget_space(long attr_id) throws HDF5LibraryException
+ {
long id = _H5Aget_space(attr_id);
if (id > 0) {
log.trace("OPEN_IDS: H5Aget_space add {}", id);
@@ -888,7 +889,8 @@ public class H5 implements java.io.Serializable {
* @exception HDF5LibraryException
* - Error from the HDF-5 Library.
**/
- public static long H5Aget_type(long attr_id) throws HDF5LibraryException {
+ public static long H5Aget_type(long attr_id) throws HDF5LibraryException
+ {
long id = _H5Aget_type(attr_id);
if (id > 0) {
log.trace("OPEN_IDS: H5Aget_type add {}", id);
@@ -918,8 +920,9 @@ public class H5 implements java.io.Serializable {
* @exception NullPointerException
* - Name is null.
**/
- public static long H5Aopen(long obj_id, String attr_name, long aapl_id) throws HDF5LibraryException,
- NullPointerException {
+ public static long H5Aopen(long obj_id, String attr_name, long aapl_id)
+ throws HDF5LibraryException, NullPointerException
+ {
long id = _H5Aopen(obj_id, attr_name, aapl_id);
if (id > 0) {
log.trace("OPEN_IDS: H5Aopen add {}", id);
@@ -959,7 +962,8 @@ public class H5 implements java.io.Serializable {
* - Name is null.
**/
public static long H5Aopen_by_idx(long loc_id, String obj_name, int idx_type, int order, long n, long aapl_id,
- long lapl_id) throws HDF5LibraryException, NullPointerException {
+ long lapl_id) throws HDF5LibraryException, NullPointerException
+ {
long id = _H5Aopen_by_idx(loc_id, obj_name, idx_type, order, n, aapl_id, lapl_id);
if (id > 0) {
log.trace("OPEN_IDS: H5Aopen_by_idx add {}", id);
@@ -994,7 +998,8 @@ public class H5 implements java.io.Serializable {
* - obj_name is null.
**/
public static long H5Aopen_by_name(long loc_id, String obj_name, String attr_name, long aapl_id, long lapl_id)
- throws HDF5LibraryException, NullPointerException {
+ throws HDF5LibraryException, NullPointerException
+ {
long id = _H5Aopen_by_name(loc_id, obj_name, attr_name, aapl_id, lapl_id);
if (id > 0) {
log.trace("OPEN_IDS: H5Aopen_by_name add {}", id);
@@ -1015,8 +1020,10 @@ public class H5 implements java.io.Serializable {
* IN: Identifier of an attribute to read.
* @param mem_type_id
* IN: Identifier of the attribute datatype (in memory).
- * @param buf
- * IN: Buffer for data to be read.
+ * @param obj
+ * Buffer to store data read from the file.
+ * @param isCriticalPinning
+ * request lock on data reference.
*
* @return a non-negative value if successful
*
@@ -1025,9 +1032,19 @@ public class H5 implements java.io.Serializable {
* @exception NullPointerException
* - data buffer is null.
**/
- public synchronized static native int H5Aread(long attr_id, long mem_type_id, byte[] buf)
+ public synchronized static native int H5Aread(long attr_id, long mem_type_id, byte[] obj, boolean isCriticalPinning)
throws HDF5LibraryException, NullPointerException;
+ public synchronized static int H5Aread(long attr_id, long mem_type_id, byte[] buf) throws HDF5LibraryException, NullPointerException
+ {
+ return H5Aread(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static int H5Aread(long attr_id, long mem_type_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException
+ {
+ return H5Aread(attr_id, mem_type_id, obj, true);
+ }
+
/**
* H5Aread reads an attribute, specified with attr_id. The attribute's memory datatype is specified with
* mem_type_id. The entire attribute is read into data object from the file.
@@ -1038,31 +1055,143 @@ public class H5 implements java.io.Serializable {
* IN: Identifier of the attribute datatype (in memory).
* @param obj
* IN: Object for data to be read.
+ * @param isCriticalPinning
+ * request lock on data reference.
*
* @return a non-negative value if successful
*
+ * @exception HDF5Exception
+ * - Failure in the data conversion.
* @exception HDF5LibraryException
* - Error from the HDF-5 Library.
* @exception NullPointerException
* - data buffer is null. See public synchronized static native int H5Aread( )
**/
- public synchronized static int H5Aread(long attr_id, long mem_type_id, Object obj) throws HDF5Exception,
- NullPointerException {
- HDFArray theArray = new HDFArray(obj);
- byte[] buf = theArray.emptyBytes();
+ public synchronized static int H5Aread(long attr_id, long mem_type_id, Object obj, boolean isCriticalPinning)
+ throws HDF5Exception, HDF5LibraryException, NullPointerException
+ {
+ int status = -1;
+ boolean is1D = false;
- // This will raise an exception if there is an error
- int status = H5Aread(attr_id, mem_type_id, buf);
+ Class dataClass = obj.getClass();
+ if (!dataClass.isArray()) {
+ throw (new HDF5JavaException("H5Aread: data is not an array"));
+ }
- // No exception: status really ought to be OK
- if (status >= 0) {
- obj = theArray.arrayify(buf);
+ String cname = dataClass.getName();
+ is1D = (cname.lastIndexOf('[') == cname.indexOf('['));
+ char dname = cname.charAt(cname.lastIndexOf("[") + 1);
+ log.trace("H5Aread: cname={} is1D={} dname={}", cname, is1D, dname);
+
+ if (is1D && (dname == 'B')) {
+ log.trace("H5Aread_dname_B");
+ status = H5Aread(attr_id, mem_type_id, (byte[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'S')) {
+ log.trace("H5Aread_dname_S");
+ status = H5Aread_short(attr_id, mem_type_id, (short[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'I')) {
+ log.trace("H5Aread_dname_I");
+ status = H5Aread_int(attr_id, mem_type_id, (int[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'J')) {
+ log.trace("H5Aread_dname_J");
+ status = H5Aread_long(attr_id, mem_type_id, (long[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'F')) {
+ log.trace("H5Aread_dname_F");
+ status = H5Aread_float(attr_id, mem_type_id, (float[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'D')) {
+ log.trace("H5Aread_dname_D");
+ status = H5Aread_double(attr_id, mem_type_id, (double[]) obj, isCriticalPinning);
+ }
+ else if ((H5.H5Tdetect_class(mem_type_id, HDF5Constants.H5T_REFERENCE) && (is1D && (dataClass.getComponentType() == String.class))) || H5.H5Tequal(mem_type_id, HDF5Constants.H5T_STD_REF_DSETREG)) {
+ log.trace("H5Aread_reg_ref");
+ status = H5Aread_reg_ref(attr_id, mem_type_id, (String[]) obj);
+ }
+ else if (is1D && (dataClass.getComponentType() == String.class)) {
+ log.trace("H5Aread_string type");
+ status = H5Aread_string(attr_id, mem_type_id, (String[]) obj);
+ }
+ else {
+ // Create a data buffer to hold the data into a Java Array
+ HDFArray theArray = new HDFArray(obj);
+ byte[] buf = theArray.emptyBytes();
+ log.trace("H5Aread_else");
+
+ // This will raise an exception if there is an error
+ status = H5Aread(attr_id, mem_type_id, buf, isCriticalPinning);
+
+ // No exception: status really ought to be OK
+ if (status >= 0) {
+ obj = theArray.arrayify(buf);
+ }
+
+ // clean up these: assign 'null' as hint to gc()
+ buf = null;
+ theArray = null;
}
return status;
}
- public synchronized static native int H5AreadVL(long attr_id, long mem_type_id, String[] buf)
+ public synchronized static native int H5Aread_double(long attr_id, long mem_type_id, double[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Aread_double(long attr_id, long mem_type_id, double[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Aread_double(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Aread_float(long attr_id, long mem_type_id, float[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Aread_float(long attr_id, long mem_type_id, float[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Aread_float(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Aread_int(long attr_id, long mem_type_id, int[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Aread_int(long attr_id, long mem_type_id, int[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Aread_int(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Aread_long(long attr_id, long mem_type_id, long[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Aread_long(long attr_id, long mem_type_id, long[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Aread_long(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Aread_reg_ref(long attr_id, long mem_type_id, String[] buf)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static native int H5Aread_short(long attr_id, long mem_type_id, short[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Aread_short(long attr_id, long mem_type_id, short[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Aread_short(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5AreadVL(long attr_id, long mem_type_id, Object[] buf)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static native int H5Aread_string(long attr_id, long mem_type_id, String[] buf)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static native int H5Aread_VLStrings(long attr_id, long mem_type_id, Object[] buf)
throws HDF5LibraryException, NullPointerException;
public synchronized static native int H5AreadComplex(long attr_id, long mem_type_id, String[] buf)
@@ -1123,7 +1252,9 @@ public class H5 implements java.io.Serializable {
* @param mem_type_id
* IN: Identifier of the attribute datatype (in memory).
* @param buf
- * IN: Data to be written.
+ * IN: Buffer with data to be written to the file.
+ * @param isCriticalPinning
+ * IN: request lock on data reference.
*
* @return a non-negative value if successful
*
@@ -1132,9 +1263,21 @@ public class H5 implements java.io.Serializable {
* @exception NullPointerException
* - data is null.
**/
- public synchronized static native int H5Awrite(long attr_id, long mem_type_id, byte[] buf)
+ public synchronized static native int H5Awrite(long attr_id, long mem_type_id, byte[] buf, boolean isCriticalPinning)
throws HDF5LibraryException, NullPointerException;
+ public synchronized static int H5Awrite(long attr_id, long mem_type_id, byte[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static int H5Awrite(long attr_id, long mem_type_id, Object obj)
+ throws HDF5Exception, HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite(attr_id, mem_type_id, obj, true);
+ }
+
/**
* H5Awrite writes an attribute, specified with attr_id. The attribute's memory datatype is specified with
* mem_type_id. The entire attribute is written from data object to the file.
@@ -1145,28 +1288,140 @@ public class H5 implements java.io.Serializable {
* IN: Identifier of the attribute datatype (in memory).
* @param obj
* IN: Data object to be written.
+ * @param isCriticalPinning
+ * request lock on data reference.
*
* @return a non-negative value if successful
*
+ * @exception HDF5Exception
+ * - Failure in the data conversion.
* @exception HDF5LibraryException
* - Error from the HDF-5 Library.
* @exception NullPointerException
- * - data object is null. See public synchronized static native int H5Awrite(int attr_id, int
- * mem_type_id, byte[] buf);
+ * - data object is null
**/
- public synchronized static int H5Awrite(long attr_id, long mem_type_id, Object obj)
- throws HDF5Exception, NullPointerException
+ public synchronized static int H5Awrite(long attr_id, long mem_type_id, Object obj, boolean isCriticalPinning)
+ throws HDF5Exception, HDF5LibraryException, NullPointerException
{
- HDFArray theArray = new HDFArray(obj);
- byte[] buf = theArray.byteify();
+ int status = -1;
+ boolean is1D = false;
- int retVal = H5Awrite(attr_id, mem_type_id, buf);
- buf = null;
- theArray = null;
- return retVal;
+ Class dataClass = obj.getClass();
+ if (!dataClass.isArray()) {
+ throw (new HDF5JavaException("H5Dwrite: data is not an array"));
+ }
+
+ String cname = dataClass.getName();
+ is1D = (cname.lastIndexOf('[') == cname.indexOf('['));
+ char dname = cname.charAt(cname.lastIndexOf("[") + 1);
+
+ if (is1D && (dname == 'B')) {
+ status = H5Awrite(attr_id, mem_type_id, (byte[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'S')) {
+ status = H5Awrite_short(attr_id, mem_type_id, (short[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'I')) {
+ status = H5Awrite_int(attr_id, mem_type_id, (int[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'J')) {
+ status = H5Awrite_long(attr_id, mem_type_id, (long[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'F')) {
+ status = H5Awrite_float(attr_id, mem_type_id, (float[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dname == 'D')) {
+ status = H5Awrite_double(attr_id, mem_type_id, (double[]) obj, isCriticalPinning);
+ }
+ else if (is1D && (dataClass.getComponentType() == String.class)) {
+ log.trace("H5Dwrite_string type");
+ status = H5Awrite_string(attr_id, mem_type_id, (String[]) obj);
+ }
+ else {
+ HDFArray theArray = new HDFArray(obj);
+ byte[] buf = theArray.byteify();
+
+ status = H5Awrite(attr_id, mem_type_id, buf);
+ buf = null;
+ theArray = null;
+ }
+
+ return status;
+ }
+
+ public synchronized static native int H5Awrite_double(long attr_id, long mem_type_id, double[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Awrite_double(long attr_id, long mem_type_id, double[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite_double(attr_id, mem_type_id, buf, true);
}
- public synchronized static native int H5AwriteVL(long attr_id, long mem_type_id, String[] buf)
+ public synchronized static native int H5Awrite_float(long attr_id, long mem_type_id, float[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Awrite_float(long attr_id, long mem_type_id, float[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite_float(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Awrite_int(long attr_id, long mem_type_id, int[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Awrite_int(long attr_id, long mem_type_id, int[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite_int(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Awrite_long(long attr_id, long mem_type_id, long[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Awrite_long(long attr_id, long mem_type_id, long[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite_long(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Awrite_short(long attr_id, long mem_type_id, short[] buf, boolean isCriticalPinning)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static int H5Awrite_short(long attr_id, long mem_type_id, short[] buf)
+ throws HDF5LibraryException, NullPointerException
+ {
+ return H5Awrite_short(attr_id, mem_type_id, buf, true);
+ }
+
+ public synchronized static native int H5Awrite_string(long attr_id, long mem_type_id, String[] buf)
+ throws HDF5LibraryException, NullPointerException;
+
+ public synchronized static native int H5AwriteVL(long attr_id, long mem_type_id, Object[] buf)
+ throws HDF5LibraryException, NullPointerException;
+
+ /**
+ * H5Awrite_VLStrings writes a variable length String dataset, specified by its identifier attr_id, from
+ * the application memory buffer buf into the file.
+ *
+ * ---- contributed by Rosetta Biosoftware
+ *
+ * @param attr_id
+ * Identifier of the attribute read from.
+ * @param mem_type_id
+ * Identifier of the memory datatype.
+ * @param buf
+ * Buffer with data to be written to the file.
+ *
+ * @return a non-negative value if successful
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ * @exception NullPointerException
+ * - name is null.
+ **/
+
+ public synchronized static native int H5Awrite_VLStrings(long attr_id, long mem_type_id, Object[] buf)
throws HDF5LibraryException, NullPointerException;
/**
@@ -1614,8 +1869,8 @@ public class H5 implements java.io.Serializable {
* @exception NullPointerException
* - name is null.
**/
- public static long H5Dopen(long loc_id, String name, long dapl_id) throws HDF5LibraryException,
- NullPointerException {
+ public static long H5Dopen(long loc_id, String name, long dapl_id) throws HDF5LibraryException, NullPointerException
+ {
long id = _H5Dopen2(loc_id, name, dapl_id);
if (id > 0) {
log.trace("OPEN_IDS: H5Dopen add {}", id);
@@ -1664,12 +1919,14 @@ public class H5 implements java.io.Serializable {
NullPointerException;
public synchronized static int H5Dread(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id,
- long xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException {
+ long xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dread(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
public synchronized static int H5Dread(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id,
- long xfer_plist_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException {
+ long xfer_plist_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException
+ {
return H5Dread(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, obj, true);
}
@@ -1703,7 +1960,8 @@ public class H5 implements java.io.Serializable {
**/
public synchronized static int H5Dread(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id,
long xfer_plist_id, Object obj, boolean isCriticalPinning) throws HDF5Exception, HDF5LibraryException,
- NullPointerException {
+ NullPointerException
+ {
int status = -1;
boolean is1D = false;
@@ -1734,7 +1992,8 @@ public class H5 implements java.io.Serializable {
}
else if (is1D && (dname == 'J')) {
log.trace("H5Dread_dname_J");
- status = H5Dread_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (long[]) obj);
+ status = H5Dread_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (long[]) obj,
+ isCriticalPinning);
}
else if (is1D && (dname == 'F')) {
log.trace("H5Dread_dname_F");
@@ -1783,7 +2042,8 @@ public class H5 implements java.io.Serializable {
throws HDF5LibraryException, NullPointerException;
public synchronized static int H5Dread_double(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, double[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, double[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dread_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -1792,7 +2052,8 @@ public class H5 implements java.io.Serializable {
throws HDF5LibraryException, NullPointerException;
public synchronized static int H5Dread_float(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, float[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, float[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dread_float(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -1801,7 +2062,8 @@ public class H5 implements java.io.Serializable {
NullPointerException;
public synchronized static int H5Dread_int(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, int[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, int[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dread_int(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -1810,22 +2072,21 @@ public class H5 implements java.io.Serializable {
NullPointerException;
public synchronized static int H5Dread_long(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, long[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, long[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dread_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
public synchronized static native int H5Dread_reg_ref(long dataset_id, long mem_type_id, long mem_space_id,
long file_space_id, long xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException;
- public synchronized static native int H5Dread_reg_ref_data(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException;
-
public synchronized static native int H5Dread_short(long dataset_id, long mem_type_id, long mem_space_id,
long file_space_id, long xfer_plist_id, short[] buf, boolean isCriticalPinning)
throws HDF5LibraryException, NullPointerException;
public synchronized static int H5Dread_short(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, short[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, short[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dread_short(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -1929,12 +2190,14 @@ public class H5 implements java.io.Serializable {
NullPointerException;
public synchronized static int H5Dwrite(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id,
- long xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException {
+ long xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dwrite(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
public synchronized static int H5Dwrite(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id,
- long xfer_plist_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException {
+ long xfer_plist_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException
+ {
return H5Dwrite(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, obj, true);
}
@@ -1968,7 +2231,8 @@ public class H5 implements java.io.Serializable {
**/
public synchronized static int H5Dwrite(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id,
long xfer_plist_id, Object obj, boolean isCriticalPinning) throws HDF5Exception, HDF5LibraryException,
- NullPointerException {
+ NullPointerException
+ {
int status = -1;
boolean is1D = false;
@@ -2031,7 +2295,8 @@ public class H5 implements java.io.Serializable {
throws HDF5LibraryException, NullPointerException;
public synchronized static int H5Dwrite_double(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, double[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, double[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dwrite_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -2040,7 +2305,8 @@ public class H5 implements java.io.Serializable {
throws HDF5LibraryException, NullPointerException;
public synchronized static int H5Dwrite_float(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, float[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, float[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dwrite_float(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -2049,7 +2315,8 @@ public class H5 implements java.io.Serializable {
NullPointerException;
public synchronized static int H5Dwrite_int(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, int[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, int[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dwrite_int(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -2058,7 +2325,8 @@ public class H5 implements java.io.Serializable {
NullPointerException;
public synchronized static int H5Dwrite_long(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, long[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, long[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dwrite_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -2067,7 +2335,8 @@ public class H5 implements java.io.Serializable {
throws HDF5LibraryException, NullPointerException;
public synchronized static int H5Dwrite_short(long dataset_id, long mem_type_id, long mem_space_id,
- long file_space_id, long xfer_plist_id, short[] buf) throws HDF5LibraryException, NullPointerException {
+ long file_space_id, long xfer_plist_id, short[] buf) throws HDF5LibraryException, NullPointerException
+ {
return H5Dwrite_short(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true);
}
@@ -2808,10 +3077,29 @@ public class H5 implements java.io.Serializable {
* - Error from the HDF-5 Library.
* @exception NullPointerException
* - name is null.
+ *
+ * @deprecated As of HDF5 1.10.5 in favor of H5Fis_accessible.
**/
public synchronized static native boolean H5Fis_hdf5(String name) throws HDF5LibraryException, NullPointerException;
/**
+ * H5Fis_accessible determines if the file can be opened with the given fapl.
+ *
+ * @param name
+ * IN: File name to check.
+ * @param file_id
+ * IN: File identifier for a currently-open HDF5 file
+ *
+ * @return true if file is accessible, false if not.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ * @exception NullPointerException
+ * - name is null.
+ **/
+ public synchronized static native boolean H5Fis_accessible(String name, long file_id) throws HDF5LibraryException, NullPointerException;
+
+ /**
* H5Fmount mounts the file specified by child_id onto the group specified by loc_id and name using the mount
* properties plist_id.
*
diff --git a/java/src/jni/CMakeLists.txt b/java/src/jni/CMakeLists.txt
index 7b95e0b..50e76e1 100644
--- a/java/src/jni/CMakeLists.txt
+++ b/java/src/jni/CMakeLists.txt
@@ -48,7 +48,9 @@ set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
########### JNI libraries always must be built shared ###############
add_library (${HDF5_JAVA_JNI_LIB_TARGET} SHARED ${HDF5_JAVA_JNI_CSRCS} ${HDF5_JAVA_JNI_CHDRS})
-target_include_directories(${HDF5_JAVA_JNI_LIB_TARGET} PRIVATE ${HDF5_BINARY_DIR} ${HDF5_JAVA_JNI_SOURCE_DIR})
+target_include_directories(${HDF5_JAVA_JNI_LIB_TARGET}
+ PRIVATE "${HDF5_BINARY_DIR};${HDF5_JAVA_JNI_SOURCE_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
+)
TARGET_C_PROPERTIES (${HDF5_JAVA_JNI_LIB_TARGET} SHARED)
target_link_libraries (${HDF5_JAVA_JNI_LIB_TARGET} PUBLIC ${HDF5_LIBSH_TARGET})
set_target_properties (${HDF5_JAVA_JNI_LIB_TARGET} PROPERTIES FOLDER libraries/jni)
diff --git a/java/src/jni/h5aImp.c b/java/src/jni/h5aImp.c
index aba2240..e0ec4ca 100644
--- a/java/src/jni/h5aImp.c
+++ b/java/src/jni/h5aImp.c
@@ -60,6 +60,94 @@ static herr_t H5AreadVL_str (JNIEnv *env, hid_t attr_id, hid_t mem_id, jobjectAr
static herr_t H5A_iterate_cb(hid_t g_id, const char *name, const H5A_info_t *info, void *cb_data);
+/********************/
+/* Local Macros */
+/********************/
+
+#define PIN_BYTE_ARRAY() { \
+ if (isCriticalPinning) \
+ buffP = (jbyte*)ENVPTR->GetPrimitiveArrayCritical(ENVPAR buf, &isCopy); \
+ else \
+ buffP = ENVPTR->GetByteArrayElements(ENVPAR buf, &isCopy); \
+}
+
+#define UNPIN_BYTE_ARRAY(mode) { \
+ if (isCriticalPinning) \
+ ENVPTR->ReleasePrimitiveArrayCritical(ENVPAR buf, buffP, mode); \
+ else \
+ ENVPTR->ReleaseByteArrayElements(ENVPAR buf, buffP, mode); \
+}
+
+#define PIN_SHORT_ARRAY() { \
+ if (isCriticalPinning) \
+ buffP = (jshort*)ENVPTR->GetPrimitiveArrayCritical(ENVPAR buf, &isCopy); \
+ else \
+ buffP = ENVPTR->GetShortArrayElements(ENVPAR buf, &isCopy); \
+}
+
+#define UNPIN_SHORT_ARRAY(mode) { \
+ if (isCriticalPinning) \
+ ENVPTR->ReleasePrimitiveArrayCritical(ENVPAR buf, buffP, mode); \
+ else \
+ ENVPTR->ReleaseShortArrayElements(ENVPAR buf, buffP, mode); \
+}
+
+#define PIN_INT_ARRAY() { \
+ if (isCriticalPinning) \
+ buffP = (jint*)ENVPTR->GetPrimitiveArrayCritical(ENVPAR buf, &isCopy); \
+ else \
+ buffP = ENVPTR->GetIntArrayElements(ENVPAR buf, &isCopy); \
+}
+
+#define UNPIN_INT_ARRAY(mode) { \
+ if (isCriticalPinning) \
+ ENVPTR->ReleasePrimitiveArrayCritical(ENVPAR buf, buffP, mode); \
+ else \
+ ENVPTR->ReleaseIntArrayElements(ENVPAR buf, buffP, mode); \
+}
+
+#define PIN_LONG_ARRAY() { \
+ if (isCriticalPinning) \
+ buffP = (jlong*)ENVPTR->GetPrimitiveArrayCritical(ENVPAR buf, &isCopy); \
+ else \
+ buffP = ENVPTR->GetLongArrayElements(ENVPAR buf,&isCopy); \
+}
+
+#define UNPIN_LONG_ARRAY(mode) { \
+ if (isCriticalPinning) \
+ ENVPTR->ReleasePrimitiveArrayCritical(ENVPAR buf, buffP, mode); \
+ else \
+ ENVPTR->ReleaseLongArrayElements(ENVPAR buf, buffP, mode); \
+}
+
+#define PIN_FLOAT_ARRAY() { \
+ if (isCriticalPinning) \
+ buffP = (jfloat*)ENVPTR->GetPrimitiveArrayCritical(ENVPAR buf, &isCopy); \
+ else \
+ buffP = ENVPTR->GetFloatArrayElements(ENVPAR buf, &isCopy); \
+}
+
+#define UNPIN_FLOAT_ARRAY(mode) { \
+ if (isCriticalPinning) \
+ ENVPTR->ReleasePrimitiveArrayCritical(ENVPAR buf, buffP, mode); \
+ else \
+ ENVPTR->ReleaseFloatArrayElements(ENVPAR buf, buffP, mode); \
+}
+
+#define PIN_DOUBLE_ARRAY() { \
+ if (isCriticalPinning) \
+ buffP = (jdouble*)ENVPTR->GetPrimitiveArrayCritical(ENVPAR buf, &isCopy); \
+ else \
+ buffP = ENVPTR->GetDoubleArrayElements(ENVPAR buf, &isCopy); \
+}
+
+#define UNPIN_DOUBLE_ARRAY(mode) { \
+ if (isCriticalPinning) \
+ ENVPTR->ReleasePrimitiveArrayCritical(ENVPAR buf, buffP, mode); \
+ else \
+ ENVPTR->ReleaseDoubleArrayElements(ENVPAR buf, buffP, mode); \
+}
+
/*
* Class: hdf_hdf5lib_H5
@@ -129,36 +217,129 @@ Java_hdf_hdf5lib_H5__1H5Aopen_1idx
return (jlong)attr_id;
} /* end Java_hdf_hdf5lib_H5__1H5Aopen_1idx */
+static htri_t
+H5Tdetect_variable_str
+ (hid_t tid) {
+ htri_t ret_val = 0;
+
+ if (H5Tget_class(tid) == H5T_COMPOUND) {
+ unsigned i;
+ unsigned nm = (unsigned)H5Tget_nmembers(tid);
+ for(i = 0; i < nm; i++) {
+ htri_t status = 0;
+ hid_t mtid = 0;
+ if((mtid = H5Tget_member_type(tid, i)) < 0)
+ return -1; /* exit immediately on error */
+ if((status = H5Tdetect_variable_str(mtid)) < 0)
+ return status; /* exit immediately on error */
+ ret_val |= status;
+ H5Tclose (mtid);
+ } /* end for */
+ } /* end if */
+ else
+ ret_val = H5Tis_variable_str(tid);
+
+ return ret_val;
+} /* end H5Tdetect_variable_str */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread
+ * Signature: (JJ[BZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jbyteArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jbyte *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL) {
+ h5nullArgument( env,"H5Aread: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Aread: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Aread: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_BYTE_ARRAY();
+
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Aread: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, buffP);
+ if (status < 0) {
+ UNPIN_BYTE_ARRAY(JNI_ABORT);
+ h5libraryError(env);
+ } /* end if */
+ else {
+ UNPIN_BYTE_ARRAY(0); /* update java buffer for return */
+ } /* end else */
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Aread */
+
/*
* Class: hdf_hdf5lib_H5
* Method: H5Awrite
- * Signature: (JJ[B)I
+ * Signature: (JJ[BZ)I
*/
JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Awrite
- (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jbyteArray buf)
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jbyteArray buf, jboolean isCriticalPinning)
{
herr_t status = -1;
- jbyte *byteP;
+ jbyte *buffP;
jboolean isCopy;
+ htri_t data_class;
if (buf == NULL) {
h5nullArgument( env,"H5Awrite: buf is NULL");
} /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Awrite: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite: buf does not support variable length type");
+ } /* end else if */
else {
- byteP = ENVPTR->GetByteArrayElements(ENVPAR buf, &isCopy);
- if (byteP == NULL) {
- h5JNIFatalError(env,"H5Awrite: buf is not pinned");
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Awrite: H5Tdetect_variable_str() failed");
} /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite: buf does not support variable length type");
+ } /* end else if */
else {
- status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, byteP);
+ PIN_BYTE_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Awrite: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- /* free the buffer without copying back */
- ENVPTR->ReleaseByteArrayElements(ENVPAR buf, byteP, JNI_ABORT);
+ UNPIN_BYTE_ARRAY(JNI_ABORT); /* no need to update buffer */
- if (status < 0)
- h5libraryError(env);
- }
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
} /* end else */
return (jint)status;
@@ -166,190 +347,653 @@ Java_hdf_hdf5lib_H5_H5Awrite
/*
* Class: hdf_hdf5lib_H5
- * Method: H5Aread
- * Signature: (JJ[B)I
+ * Method: H5Aread_short
+ * Signature: (JJ[SZ)I
*/
JNIEXPORT jint JNICALL
-Java_hdf_hdf5lib_H5_H5Aread
- (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jbyteArray buf)
+Java_hdf_hdf5lib_H5_H5Aread_1short
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jshortArray buf, jboolean isCriticalPinning)
{
herr_t status = -1;
- jbyte *byteP;
+ jshort *buffP;
jboolean isCopy;
+ htri_t data_class;
if (buf == NULL) {
- h5nullArgument( env,"H5Aread: buf is NULL");
+ h5nullArgument(env, "H5Aread_short: buf is NULL");
} /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Aread: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_short: buf does not support variable length type");
+ } /* end else if */
else {
- byteP = ENVPTR->GetByteArrayElements(ENVPAR buf, &isCopy);
- if (byteP == NULL) {
- h5JNIFatalError( env,"H5Aread: buf is not pinned");
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Aread_short: H5Tdetect_variable_str() failed");
} /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_short: buf does not support variable length type");
+ } /* end else if */
else {
- status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, byteP);
- if (status < 0) {
- ENVPTR->ReleaseByteArrayElements(ENVPAR buf, byteP, JNI_ABORT);
- h5libraryError(env);
+ PIN_SHORT_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Aread_short: buf not pinned");
} /* end if */
- else {
- ENVPTR->ReleaseByteArrayElements(ENVPAR buf, byteP, 0);
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, buffP);
+
+ if (status < 0) {
+ UNPIN_SHORT_ARRAY(JNI_ABORT);
+ h5libraryError(env);
+ } /* end if */
+ else {
+ UNPIN_SHORT_ARRAY(0);
+ } /* end else */
} /* end else */
} /* end else */
} /* end else */
return (jint)status;
-} /* end Java_hdf_hdf5lib_H5_H5Aread */
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1short */
/*
* Class: hdf_hdf5lib_H5
- * Method: H5AwriteVL
- * Signature: (JJ[Ljava/lang/String;)I
+ * Method: H5Awrite_short
+ * Signature: (JJ[SZ)I
*/
JNIEXPORT jint JNICALL
-Java_hdf_hdf5lib_H5_H5AwriteVL
- (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf)
+Java_hdf_hdf5lib_H5_H5Awrite_1short
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jshortArray buf, jboolean isCriticalPinning)
{
- herr_t status = -1;
- htri_t isStr = 0;
- htri_t isVlenStr = 0;
- htri_t isComplex = 0;
+ herr_t status = -1;
+ jshort *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL ) {
+ h5nullArgument(env, "H5Awrite_short: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_short: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_short: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_short: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_short: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_SHORT_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Awrite_short: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, buffP);
+
+ UNPIN_SHORT_ARRAY(JNI_ABORT);
+
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1short */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_int
+ * Signature: (JJ[IZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1int
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jintArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jint *buffP;
+ jboolean isCopy;
+ htri_t data_class;
if (buf == NULL) {
- h5nullArgument(env, "H5AwriteVL: buf is NULL");
+ h5nullArgument(env, "H5Aread_int: buf is NULL");
} /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Aread_int: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_int: buf does not support variable length type");
+ } /* end else if */
else {
- isStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING);
- if (H5Tget_class((hid_t)mem_type_id) == H5T_COMPOUND) {
- unsigned i;
- int nm = H5Tget_nmembers(mem_type_id);
- for(i = 0; i <nm; i++) {
- hid_t nested_tid = H5Tget_member_type((hid_t)mem_type_id, i);
- isComplex = H5Tdetect_class((hid_t)nested_tid, H5T_COMPOUND) ||
- H5Tdetect_class((hid_t)nested_tid, H5T_VLEN);
- H5Tclose(nested_tid);
- }
- }
- else if (H5Tget_class((hid_t)mem_type_id) == H5T_VLEN) {
- isVlenStr = 1; /* strings created by H5Tvlen_create(H5T_C_S1) */
- }
- if (isStr == 0 || isComplex>0 || isVlenStr) {
- status = H5AwriteVL_asstr(env, (hid_t)attr_id, (hid_t)mem_type_id, buf);
- }
- else if (isStr > 0) {
- status = H5AwriteVL_str(env, (hid_t)attr_id, (hid_t)mem_type_id, buf);
- }
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Aread_int: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_int: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_INT_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Aread_int: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, buffP);
+
+ if (status < 0) {
+ UNPIN_INT_ARRAY(JNI_ABORT);
+ h5libraryError(env);
+ } /* end if */
+ else {
+ UNPIN_INT_ARRAY(0);
+ } /* end else */
+ } /* end else */
+ } /* end else */
} /* end else */
return (jint)status;
-} /* end Java_hdf_hdf5lib_H5_H5Awrite_1VL */
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1int */
-herr_t
-H5AwriteVL_str
- (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf)
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_int
+ * Signature: (JJ[IZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1int
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jintArray buf, jboolean isCriticalPinning)
{
- herr_t status = -1;
- char **wdata;
- jsize size;
- jint i;
+ herr_t status = -1;
+ jint *buffP;
+ jboolean isCopy;
+ htri_t data_class;
- size = ENVPTR->GetArrayLength(ENVPAR (jarray) buf);
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Awrite_int: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_int: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_int: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_int: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_int: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_INT_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Awrite_int: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- wdata = (char**)HDcalloc((size_t)size + 1, sizeof(char*));
- if (!wdata) {
- h5JNIFatalError(env, "H5AwriteVL_str: cannot allocate buffer");
+ UNPIN_INT_ARRAY(JNI_ABORT);
+
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1int */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_long
+ * Signature: (JJ[JZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1long
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jlongArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jlong *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Aread_long: buf is NULL");
} /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Aread_long: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_long: buf does not support variable length type");
+ } /* end else if */
else {
- HDmemset(wdata, 0, (size_t)size * sizeof(char*));
- for (i = 0; i < size; ++i) {
- jstring obj = (jstring) ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray) buf, i);
- if (obj != 0) {
- jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj);
- const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0);
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Aread_long: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_long: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_LONG_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Aread_long: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- if (utf8) {
- wdata[i] = (char*)HDmalloc((size_t)length + 1);
- if (wdata[i]) {
- HDmemset(wdata[i], 0, ((size_t)length + 1));
- HDstrncpy(wdata[i], utf8, (size_t)length);
- } /* end if */
+ if (status < 0) {
+ UNPIN_LONG_ARRAY(JNI_ABORT);
+ h5libraryError(env);
} /* end if */
+ else {
+ UNPIN_LONG_ARRAY(0);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+ } /* end else */
- ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8);
- ENVPTR->DeleteLocalRef(ENVPAR obj);
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1long */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_long
+ * Signature: (JJ[JZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1long
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jlongArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jlong *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Awrite_long: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Dwrite_long: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_long: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_long: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_long: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_LONG_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Awrite_long: buf not pinned");
} /* end if */
- } /* end for (i = 0; i < size; ++i) */
+ else {
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- status = H5Awrite((hid_t)aid, (hid_t)tid, wdata);
+ UNPIN_LONG_ARRAY(JNI_ABORT);
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
- for (i = 0; i < size; i++) {
- if(wdata[i]) {
- HDfree(wdata[i]);
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1long */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_float
+ * Signature: (JJ[FZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1float
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jfloatArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jfloat *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Aread_float: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Dread_float: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_float: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Aread_float: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_float: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_FLOAT_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Aread_float: buf not pinned");
} /* end if */
- } /* end for */
- HDfree(wdata);
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- if (status < 0)
- h5libraryError(env);
+ if (status < 0) {
+ UNPIN_FLOAT_ARRAY(JNI_ABORT);
+ h5libraryError(env);
+ } /* end if */
+ else {
+ UNPIN_FLOAT_ARRAY(0);
+ } /* end else */
+ } /* end else */
+ } /* end else */
} /* end else */
return (jint)status;
-}
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1float */
-herr_t
-H5AwriteVL_asstr
- (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf)
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_float
+ * Signature: (JJ[FZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1float
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jfloatArray buf, jboolean isCriticalPinning)
{
- char **strs;
- jstring jstr;
- jint i;
- jint n;
- hid_t sid;
- hsize_t dims[H5S_MAX_RANK];
- herr_t status = -1;
+ herr_t status = -1;
+ jfloat *buffP;
+ jboolean isCopy;
+ htri_t data_class;
- n = ENVPTR->GetArrayLength(ENVPAR buf);
- strs =(hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t));
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Awrite_float: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_float: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_float: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_float: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_float: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_FLOAT_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Awrite_float: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- if (strs == NULL) {
- h5JNIFatalError(env, "H5AwriteVL_asstr: failed to allocate buff for read variable length strings");
+ UNPIN_FLOAT_ARRAY(JNI_ABORT);
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1float */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_double
+ * Signature: (JJ[DZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1double
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jdoubleArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jdouble *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Aread_double: buf is NULL");
} /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Aread_double: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_double: buf does not support variable length type");
+ } /* end else if */
else {
- status = H5Awrite(aid, tid, strs);
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Aread_double: H5Tdetect_variable_str() failed");
+ } /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Aread_double: buf does not support variable length type");
+ } /* end else if */
+ else {
+ PIN_DOUBLE_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Aread_double: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, buffP);
- if (status < 0) {
- dims[0] = (hsize_t)n;
- sid = H5Screate_simple(1, dims, NULL);
- H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, strs);
- H5Sclose(sid);
- HDfree(strs);
- h5JNIFatalError(env, "H5AwriteVL_str: failed to read variable length strings");
+ if (status < 0) {
+ UNPIN_DOUBLE_ARRAY(JNI_ABORT);
+ h5libraryError(env);
+ } /* end if */
+ else {
+ UNPIN_DOUBLE_ARRAY(0);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1double */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_double
+ * Signature: (JJ[DZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1double
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jdoubleArray buf, jboolean isCriticalPinning)
+{
+ herr_t status = -1;
+ jdouble *buffP;
+ jboolean isCopy;
+ htri_t data_class;
+
+ if (buf == NULL) {
+ h5nullArgument(env, "H5Awrite_double: buf is NULL");
+ } /* end if */
+ else if((data_class = H5Tdetect_class(mem_type_id, H5T_VLEN)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_double: H5Tdetect_class() failed");
+ } /* end else if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_double: buf does not support variable length type");
+ } /* end else if */
+ else {
+ /* recursive detect any vlen string in type (compound, array ...) */
+ if((data_class = H5Tdetect_variable_str(mem_type_id)) < 0) {
+ h5JNIFatalError(env, "H5Awrite_double: H5Tdetect_variable_str() failed");
} /* end if */
+ else if(data_class == 1) {
+ h5badArgument(env, "H5Awrite_double: buf does not support variable length type");
+ } /* end else if */
else {
- for (i=0; i < n; i++) {
- jstr = ENVPTR->NewStringUTF(ENVPAR strs[i]);
- ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr);
- H5free_memory (strs[i]);
+ PIN_DOUBLE_ARRAY();
+ if (buffP == NULL) {
+ h5JNIFatalError(env, "H5Awrite_double: buf not pinned");
+ } /* end if */
+ else {
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, buffP);
+
+ UNPIN_DOUBLE_ARRAY(JNI_ABORT);
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1double */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_string
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1string
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray j_buf)
+{
+ herr_t status = -1;
+ char *c_buf;
+ char *cstr;
+ size_t str_len;
+ jsize i;
+ jsize n;
+ size_t pos;
+ jstring jstr;
+
+ c_buf = cstr = NULL;
+ if (j_buf == NULL) {
+ h5nullArgument(env, "H5Aread_string: buf is NULL");
+ } /* end if */
+ else if ((n = ENVPTR->GetArrayLength(ENVPAR j_buf)) <= 0) {
+ h5nullArgument(env, "H5Aread_string: buf length <= 0");
+ } /* end else if */
+ else if ((str_len = H5Tget_size((hid_t)mem_type_id)) <=0) {
+ h5libraryError(env);
+ } /* end else if */
+ else {
+ if ((cstr = (char*)HDmalloc(str_len + 1)) == NULL) {
+ h5JNIFatalError(env, "H5Aread_string: memory allocation failed.");
+ } /* end if */
+ else {
+ if ((c_buf = (char*)HDmalloc((size_t)n * str_len)) == NULL) {
+ if (cstr)
+ HDfree(cstr);
+ cstr = NULL;
+ h5JNIFatalError(env, "H5Aread_string: memory allocation failed.");
+ } /* end if */
+ else {
+ status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, c_buf);
+
+ if (status < 0) {
+ if (cstr)
+ HDfree(cstr);
+ cstr = NULL;
+ if (c_buf)
+ HDfree(c_buf);
+ c_buf = NULL;
+ h5libraryError(env);
+ } /* end if */
+ else {
+ pos = 0;
+ for (i = 0; i < n; i++) {
+ HDmemcpy(cstr, c_buf+pos, str_len);
+ cstr[str_len] = '\0';
+ jstr = ENVPTR->NewStringUTF(ENVPAR cstr);
+ ENVPTR->SetObjectArrayElement(ENVPAR j_buf, i, jstr);
+ pos += str_len;
+ } /* end for */
+ } /* end else */
+
+ if (c_buf)
+ HDfree(c_buf);
+ } /* end else cbuf allocation*/
+
+ if (cstr)
+ HDfree(cstr);
+ } /* end else cstr allocation*/
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1string */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_string
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1string
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray j_buf)
+{
+ herr_t status = -1;
+ char *c_buf;
+ jsize str_len;
+ jsize i;
+ jsize n;
+
+ if (j_buf == NULL) {
+ h5nullArgument(env, "H5Awrite_string: buf is NULL");
+ } /* end if */
+ else if ((n = ENVPTR->GetArrayLength(ENVPAR j_buf)) <= 0) {
+ h5nullArgument(env, "H5Awrite_string: buf length <= 0");
+ } /* end else if */
+ else if ((str_len = (jsize)H5Tget_size((hid_t)mem_type_id)) <=0) {
+ h5libraryError(env);
+ } /* end else if */
+ else {
+ if ((c_buf = (char*)HDmalloc((size_t)n * (size_t)str_len)) == NULL) {
+ h5JNIFatalError(env, "H5Awrite_string: memory allocation failed.");
+ } /* end if */
+ else {
+ for (i = 0; i < n; i++) {
+ jstring obj = (jstring)ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray)j_buf, i);
+ if (obj != 0) {
+ jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj);
+ const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0);
+
+ if (utf8) {
+ HDstrncpy(&c_buf[i * str_len], utf8, str_len);
+ } /* end if */
+
+ ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8);
+ ENVPTR->DeleteLocalRef(ENVPAR obj);
+ } /* end if */
} /* end for */
- /*
- for repeatedly reading a dataset with a large number of strs (e.g., 1,000,000 strings,
- H5Dvlen_reclaim() may crash on Windows because the Java GC will not be able to collect
- free space in time. Instead, use "H5free_memory(strs[i])" above to free individual strings
- after it is done.
- H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, strs);
- */
+ status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, c_buf);
- HDfree(strs);
+ if (c_buf)
+ HDfree(c_buf);
+ c_buf = NULL;
+
+ if (status < 0) {
+ h5libraryError(env);
+ } /* end if */
} /* end else */
} /* end else */
- return status;
-} /* end H5AwriteVL_str */
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1string */
/*
* Class: hdf_hdf5lib_H5
* Method: H5AreadVL
- * Signature: (JJJJJ[Ljava/lang/String;)I
+ * Signature: (JJ[Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5AreadVL
@@ -519,6 +1163,206 @@ H5AreadVL_str
/*
* Class: hdf_hdf5lib_H5
+ * Method: H5AwriteVL
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5AwriteVL
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf)
+{
+ herr_t status = -1;
+ htri_t isStr = 0;
+ htri_t isVlenStr = 0;
+ htri_t isComplex = 0;
+
+ if (buf == NULL) {
+ h5nullArgument(env, "H5AwriteVL: buf is NULL");
+ } /* end if */
+ else {
+ isStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING);
+ if (H5Tget_class((hid_t)mem_type_id) == H5T_COMPOUND) {
+ unsigned i;
+ int nm = H5Tget_nmembers(mem_type_id);
+ for(i = 0; i <nm; i++) {
+ hid_t nested_tid = H5Tget_member_type((hid_t)mem_type_id, i);
+ isComplex = H5Tdetect_class((hid_t)nested_tid, H5T_COMPOUND) ||
+ H5Tdetect_class((hid_t)nested_tid, H5T_VLEN);
+ H5Tclose(nested_tid);
+ }
+ }
+ else if (H5Tget_class((hid_t)mem_type_id) == H5T_VLEN) {
+ isVlenStr = 1; /* strings created by H5Tvlen_create(H5T_C_S1) */
+ }
+ if (isStr == 0 || isComplex>0 || isVlenStr) {
+ status = H5AwriteVL_asstr(env, (hid_t)attr_id, (hid_t)mem_type_id, buf);
+ }
+ else if (isStr > 0) {
+ status = H5AwriteVL_str(env, (hid_t)attr_id, (hid_t)mem_type_id, buf);
+ }
+ } /* end else */
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Awrite_1VL */
+
+herr_t
+H5AwriteVL_str
+ (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf)
+{
+ herr_t status = -1;
+ char **wdata;
+ jsize size;
+ jint i;
+
+ size = ENVPTR->GetArrayLength(ENVPAR (jarray) buf);
+
+ wdata = (char**)HDcalloc((size_t)size + 1, sizeof(char*));
+ if (!wdata) {
+ h5JNIFatalError(env, "H5AwriteVL_str: cannot allocate buffer");
+ } /* end if */
+ else {
+ HDmemset(wdata, 0, (size_t)size * sizeof(char*));
+ for (i = 0; i < size; ++i) {
+ jstring obj = (jstring) ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray) buf, i);
+ if (obj != 0) {
+ jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj);
+ const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0);
+
+ if (utf8) {
+ wdata[i] = (char*)HDmalloc((size_t)length + 1);
+ if (wdata[i]) {
+ HDmemset(wdata[i], 0, ((size_t)length + 1));
+ HDstrncpy(wdata[i], utf8, (size_t)length);
+ } /* end if */
+ } /* end if */
+
+ ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8);
+ ENVPTR->DeleteLocalRef(ENVPAR obj);
+ } /* end if */
+ } /* end for (i = 0; i < size; ++i) */
+
+ status = H5Awrite((hid_t)aid, (hid_t)tid, wdata);
+
+ for (i = 0; i < size; i++) {
+ if(wdata[i]) {
+ HDfree(wdata[i]);
+ } /* end if */
+ } /* end for */
+ HDfree(wdata);
+
+ if (status < 0)
+ h5libraryError(env);
+ } /* end else */
+
+ return (jint)status;
+}
+
+herr_t
+H5AwriteVL_asstr
+ (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf)
+{
+ char **strs;
+ jstring jstr;
+ jint i;
+ jint n;
+ hid_t sid;
+ hsize_t dims[H5S_MAX_RANK];
+ herr_t status = -1;
+
+ n = ENVPTR->GetArrayLength(ENVPAR buf);
+ strs =(hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t));
+
+ if (strs == NULL) {
+ h5JNIFatalError(env, "H5AwriteVL_asstr: failed to allocate buff for read variable length strings");
+ } /* end if */
+ else {
+ status = H5Awrite(aid, tid, strs);
+
+ if (status < 0) {
+ dims[0] = (hsize_t)n;
+ sid = H5Screate_simple(1, dims, NULL);
+ H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, strs);
+ H5Sclose(sid);
+ HDfree(strs);
+ h5JNIFatalError(env, "H5AwriteVL_str: failed to read variable length strings");
+ } /* end if */
+ else {
+ for (i=0; i < n; i++) {
+ jstr = ENVPTR->NewStringUTF(ENVPAR strs[i]);
+ ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr);
+ H5free_memory (strs[i]);
+ } /* end for */
+
+ /*
+ for repeatedly reading a dataset with a large number of strs (e.g., 1,000,000 strings,
+ H5Dvlen_reclaim() may crash on Windows because the Java GC will not be able to collect
+ free space in time. Instead, use "H5free_memory(strs[i])" above to free individual strings
+ after it is done.
+ H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, strs);
+ */
+
+ HDfree(strs);
+ } /* end else */
+ } /* end else */
+
+ return status;
+} /* end H5AwriteVL_str */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_reg_ref
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1reg_1ref
+ (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf)
+{
+ herr_t status = -1;
+ h5str_t h5str;
+ size_t size;
+ hdset_reg_ref_t *ref_data;
+ jint i;
+ jint n;
+ jstring jstr;
+
+ hid_t region = -1;
+ hid_t aid = (hid_t) attr_id;
+ hid_t tid = (hid_t) mem_type_id;
+
+ n = ENVPTR->GetArrayLength(ENVPAR buf);
+ size = sizeof(hdset_reg_ref_t); /*H5Tget_size(tid);*/
+ ref_data = (hdset_reg_ref_t*)HDmalloc(size * (size_t)n);
+
+ if (ref_data == NULL) {
+ h5JNIFatalError(env, "H5Aread_reg_ref: failed to allocate buff for read");
+ return -1;
+ } /* end if */
+
+ status = H5Aread(aid, tid, ref_data);
+
+ if (status < 0) {
+ HDfree(ref_data);
+ h5JNIFatalError(env, "H5Aread_reg_ref: failed to read data");
+ return -1;
+ } /* end if */
+
+ HDmemset(&h5str, 0, sizeof(h5str_t));
+ h5str_new(&h5str, 1024);
+ for (i=0; i<n; i++) {
+ h5str.s[0] = '\0';
+ h5str_sprintf(&h5str, aid, tid, ref_data[i], 0, 0);
+ jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s);
+
+ ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr);
+ } /* end for */
+
+ h5str_free(&h5str);
+ HDfree(ref_data);
+
+ return (jint)status;
+} /* end Java_hdf_hdf5lib_H5_H5Aread_1reg_1ref */
+
+/*
+ * Class: hdf_hdf5lib_H5
* Method: H5Aget_space
* Signature: (J)J
*/
diff --git a/java/src/jni/h5aImp.h b/java/src/jni/h5aImp.h
index f3758eb..15cc83e 100644
--- a/java/src/jni/h5aImp.h
+++ b/java/src/jni/h5aImp.h
@@ -51,21 +51,120 @@ Java_hdf_hdf5lib_H5__1H5Aopen_1idx
/*
* Class: hdf_hdf5lib_H5
+ * Method: H5Aread
+ * Signature: (JJ[B)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread
+ (JNIEnv *, jclass, jlong, jlong, jbyteArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
* Method: H5Awrite
* Signature: (JJ[B)I
*/
JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Awrite
- (JNIEnv *, jclass, jlong, jlong, jbyteArray);
+ (JNIEnv *, jclass, jlong, jlong, jbyteArray, jboolean);
/*
* Class: hdf_hdf5lib_H5
- * Method: H5Aread
- * Signature: (JJ[B)I
+ * Method: H5Aread_short
+ * Signature: (JJ[SZ)I
*/
JNIEXPORT jint JNICALL
-Java_hdf_hdf5lib_H5_H5Aread
- (JNIEnv *, jclass, jlong, jlong, jbyteArray);
+Java_hdf_hdf5lib_H5_H5Aread_1short
+ (JNIEnv*, jclass, jlong, jlong, jshortArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_short
+ * Signature: (JJ[SZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1short
+ (JNIEnv*, jclass, jlong, jlong, jshortArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_int
+ * Signature: (JJ[IZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1int
+ (JNIEnv*, jclass, jlong, jlong, jintArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_int
+ * Signature: (JJ[IZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1int
+ (JNIEnv*, jclass, jlong, jlong, jintArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_long
+ * Signature: (JJ[JZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1long
+ (JNIEnv*, jclass, jlong, jlong, jlongArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_long
+ * Signature: (JJ[JZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1long
+ (JNIEnv*, jclass, jlong, jlong, jlongArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_float
+ * Signature: (JJ[FZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1float
+ (JNIEnv*, jclass, jlong, jlong, jfloatArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_float
+ * Signature: (JJ[FZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1float
+ (JNIEnv*, jclass, jlong, jlong, jfloatArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_double
+ * Signature: (JJ[DZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1double
+ (JNIEnv*, jclass, jlong, jlong, jdoubleArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_double
+ * Signature: (JJ[DZ)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1double
+ (JNIEnv*, jclass, jlong, jlong, jdoubleArray, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5AreadVL
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5AreadVL
+ (JNIEnv *, jclass, jlong, jlong, jobjectArray);
/*
* Class: hdf_hdf5lib_H5
@@ -78,12 +177,48 @@ Java_hdf_hdf5lib_H5_H5AwriteVL
/*
* Class: hdf_hdf5lib_H5
- * Method: H5AreadVL
+ * Method: H5Aread_string
* Signature: (JJ[Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
-Java_hdf_hdf5lib_H5_H5AreadVL
- (JNIEnv *, jclass, jlong, jlong, jobjectArray);
+Java_hdf_hdf5lib_H5_H5Aread_1string
+ (JNIEnv*, jclass, jlong, jlong, jobjectArray);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_string
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1string
+(JNIEnv*, jclass, jlong, jlong, jobjectArray);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_VLStrings
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1VLStrings
+(JNIEnv*, jclass, jlong, jlong, jobjectArray);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Awrite_VLStrings
+ * Signature: (JJ[B)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Awrite_1VLStrings
+ (JNIEnv*, jclass, jlong, jlong, jobjectArray);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Aread_reg_ref
+ * Signature: (JJ[Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Aread_1reg_1ref
+(JNIEnv*, jclass, jlong, jlong, jobjectArray);
/*
* Class: hdf_hdf5lib_H5
diff --git a/java/src/jni/h5dImp.c b/java/src/jni/h5dImp.c
index 652c873..79a5d0a 100644
--- a/java/src/jni/h5dImp.c
+++ b/java/src/jni/h5dImp.c
@@ -1574,84 +1574,6 @@ Java_hdf_hdf5lib_H5_H5Dread_1reg_1ref
/*
* Class: hdf_hdf5lib_H5
- * Method: H5Dread_reg_ref_data
- * Signature: (JJJJJ[Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL
-Java_hdf_hdf5lib_H5_H5Dread_1reg_1ref_1data
- (JNIEnv *env, jclass clss,
- jlong dataset_id, jlong mem_type_id, jlong mem_space_id,
- jlong file_space_id, jlong xfer_plist_id, jobjectArray buf)
-{
- herr_t status = -1;
- h5str_t h5str;
- size_t size;
- hdset_reg_ref_t *ref_data;
- jint i;
- jint n;
- jstring jstr;
-
- hid_t region_obj;
- H5S_sel_type region_type;
-
- hid_t region = -1;
- hid_t did = (hid_t) dataset_id;
- hid_t tid = (hid_t) mem_type_id;
- hid_t mem_sid = (hid_t) mem_space_id;
- hid_t file_sid = (hid_t) file_space_id;
-
- n = ENVPTR->GetArrayLength(ENVPAR buf);
- size = sizeof(hdset_reg_ref_t); /*H5Tget_size(tid);*/
- ref_data = (hdset_reg_ref_t*)HDmalloc(size * (size_t)n);
-
- if (ref_data == NULL) {
- h5JNIFatalError(env, "H5Dread_reg_ref_data: failed to allocate buff for read");
- return -1;
- } /* end if */
-
- status = H5Dread(did, tid, mem_sid, file_sid, xfer_plist_id, ref_data);
-
- if (status < 0) {
- HDfree(ref_data);
- h5JNIFatalError(env, "H5Dread_reg_ref_data: failed to read data");
- return -1;
- } /* end if */
-
- HDmemset(&h5str, 0, sizeof(h5str_t));
- h5str_new(&h5str, 1024);
- for (i=0; i<n; i++) {
- h5str.s[0] = '\0';
-
- /* get name of the dataset the region reference points to using H5Rget_name */
- region_obj = H5Rdereference2(did, H5P_DEFAULT, H5R_DATASET_REGION, ref_data[i]);
- if (region_obj >= 0) {
- region = H5Rget_region(did, H5R_DATASET_REGION, ref_data[i]);
- if (region >= 0) {
- region_type = H5Sget_select_type(region);
- if(region_type==H5S_SEL_POINTS) {
- h5str_dump_region_points_data(&h5str, region, region_obj);
- } /* end if */
- else {
- h5str_dump_region_blocks_data(&h5str, region, region_obj);
- } /* end else */
-
- H5Sclose(region);
- } /* end if */
- H5Dclose(region_obj);
- } /* end if */
- jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s);
-
- ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr);
- } /* end for */
-
- h5str_free(&h5str);
- HDfree(ref_data);
-
- return (jint)status;
-} /* end Java_hdf_hdf5lib_H5_H5Dread_1reg_1ref_1data */
-
-/*
- * Class: hdf_hdf5lib_H5
* Method: _H5Dcreate2
* Signature: (JLjava/lang/String;JJJJJ)J
*/
diff --git a/java/src/jni/h5dImp.h b/java/src/jni/h5dImp.h
index 1fe71a8..f824452 100644
--- a/java/src/jni/h5dImp.h
+++ b/java/src/jni/h5dImp.h
@@ -250,7 +250,7 @@ Java_hdf_hdf5lib_H5_H5Dread_1VLStrings
/*
* Class: hdf_hdf5lib_H5
* Method: H5Dwrite_VLStrings
- * Signature: (JJJJJ[BZ)I
+ * Signature: (JJJJJ[B)I
*/
JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Dwrite_1VLStrings
@@ -267,15 +267,6 @@ Java_hdf_hdf5lib_H5_H5Dread_1reg_1ref
/*
* Class: hdf_hdf5lib_H5
- * Method: H5Dread_reg_ref_data
- * Signature: (JJJJJ[Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL
-Java_hdf_hdf5lib_H5_H5Dread_1reg_1ref_1data
- (JNIEnv*, jclass, jlong, jlong, jlong, jlong, jlong, jobjectArray);
-
-/*
- * Class: hdf_hdf5lib_H5
* Method: _H5Dcreate2
* Signature: (JLjava/lang/String;JJJJJ)J
*/
diff --git a/java/src/jni/h5fImp.c b/java/src/jni/h5fImp.c
index 9d68290..248e654 100644
--- a/java/src/jni/h5fImp.c
+++ b/java/src/jni/h5fImp.c
@@ -168,6 +168,33 @@ Java_hdf_hdf5lib_H5_H5Fis_1hdf5
/*
* Class: hdf_hdf5lib_H5
+ * Method: H5Fis_accessible
+ * Signature: (Ljava/lang/String;J)Z
+ */
+JNIEXPORT jboolean JNICALL
+Java_hdf_hdf5lib_H5_H5Fis_1accessible
+ (JNIEnv *env, jclass clss, jstring name, jlong file_id)
+{
+ htri_t bval = JNI_FALSE;
+ const char *fileName;
+
+ PIN_JAVA_STRING(name, fileName);
+ if (fileName != NULL) {
+ bval = H5Fis_accessible(fileName, (hid_t)file_id);
+
+ UNPIN_JAVA_STRING(name, fileName);
+
+ if (bval > 0)
+ bval = JNI_TRUE;
+ else if (bval < 0)
+ h5libraryError(env);
+ }
+
+ return (jboolean)bval;
+} /* end Java_hdf_hdf5lib_H5_H5Fis_1accessible */
+
+/*
+ * Class: hdf_hdf5lib_H5
* Method: H5Fget_create_plist
* Signature: (J)J
*/
@@ -177,7 +204,7 @@ Java_hdf_hdf5lib_H5__1H5Fget_1create_1plist
{
hid_t retVal = -1;
- retVal = H5Fget_create_plist((hid_t)file_id );
+ retVal = H5Fget_create_plist((hid_t)file_id);
if (retVal < 0)
h5libraryError(env);
diff --git a/java/src/jni/h5fImp.h b/java/src/jni/h5fImp.h
index fcfdedf..af0fa1d 100644
--- a/java/src/jni/h5fImp.h
+++ b/java/src/jni/h5fImp.h
@@ -68,6 +68,15 @@ Java_hdf_hdf5lib_H5_H5Fis_1hdf5
/*
* Class: hdf_hdf5lib_H5
+ * Method: H5Fis_accessible
+ * Signature: (Ljava/lang/String;J)Z
+ */
+JNIEXPORT jboolean JNICALL
+Java_hdf_hdf5lib_H5_H5Fis_1ccessible
+ (JNIEnv*, jclass, jstring, jlong);
+
+/*
+ * Class: hdf_hdf5lib_H5
* Method: H5Fget_create_plist
* Signature: (J)J
*/
diff --git a/java/test/TestH5Fbasic.java b/java/test/TestH5Fbasic.java
index 11d6644..a5afb6e 100644
--- a/java/test/TestH5Fbasic.java
+++ b/java/test/TestH5Fbasic.java
@@ -81,6 +81,19 @@ public class TestH5Fbasic {
assertTrue(isH5 == true);
}
+ @Test
+ public void testH5Fis_accessible() {
+ boolean isH5 = false;
+
+ try {
+ isH5 = H5.H5Fis_accessible(H5_FILE, HDF5Constants.H5P_DEFAULT);
+ }
+ catch (Throwable err) {
+ fail("H5.H5Fis_accessible failed on " + H5_FILE + ": " + err);
+ }
+ assertTrue(isH5 == true);
+ }
+
@Test(expected = HDF5LibraryException.class)
public void testH5Fcreate_EXCL() throws Throwable {
H5.H5Fcreate(H5_FILE, HDF5Constants.H5F_ACC_EXCL,
diff --git a/java/test/TestH5Fparams.java b/java/test/TestH5Fparams.java
index fffded1..3d64aa9 100644
--- a/java/test/TestH5Fparams.java
+++ b/java/test/TestH5Fparams.java
@@ -60,6 +60,11 @@ public class TestH5Fparams {
}
@Test(expected = NullPointerException.class)
+ public void testH5Fis_accessible_null() throws Throwable {
+ H5.H5Fis_accessible(null, -1);
+ }
+
+ @Test(expected = NullPointerException.class)
public void testH5Fmount_null() throws Throwable {
H5.H5Fmount(-1, null, -1, HDF5Constants.H5P_DEFAULT);
}
diff --git a/java/test/testfiles/JUnit-TestH5Edefault.txt b/java/test/testfiles/JUnit-TestH5Edefault.txt
index 71d1431..48c6254 100644
--- a/java/test/testfiles/JUnit-TestH5Edefault.txt
+++ b/java/test/testfiles/JUnit-TestH5Edefault.txt
@@ -38,17 +38,20 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
minor: Unable to open file
#001: (file name) line (number) in H5VL_file_open(): open failed
major: Virtual Object Layer
- minor: Unable to initialize object
- #002: (file name) line (number) in H5VL_native_file_open(): unable to open file
+ minor: Can't open object
+ #002: (file name) line (number) in H5VL__file_open(): open failed
+ major: Virtual Object Layer
+ minor: Can't open object
+ #003: (file name) line (number) in H5VL__native_file_open(): unable to open file
major: File accessibility
minor: Unable to open file
- #003: (file name) line (number) in H5F_open(): unable to open file: name = 'test', tent_flags = 1
+ #004: (file name) line (number) in H5F_open(): unable to open file: name = 'test', tent_flags = 1
major: File accessibility
minor: Unable to open file
- #004: (file name) line (number) in H5FD_open(): open failed
+ #005: (file name) line (number) in H5FD_open(): open failed
major: Virtual File Layer
minor: Unable to initialize object
- #005: (file name) line (number) in H5FD_sec2_open(): unable to open file: name = 'test', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2
+ #006: (file name) line (number) in H5FD_sec2_open(): unable to open file: name = 'test', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2
major: File accessibility
minor: Unable to open file
HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
@@ -57,16 +60,19 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
minor: Unable to open file
#001: (file name) line (number) in H5VL_file_open(): open failed
major: Virtual Object Layer
- minor: Unable to initialize object
- #002: (file name) line (number) in H5VL_native_file_open(): unable to open file
+ minor: Can't open object
+ #002: (file name) line (number) in H5VL__file_open(): open failed
+ major: Virtual Object Layer
+ minor: Can't open object
+ #003: (file name) line (number) in H5VL__native_file_open(): unable to open file
major: File accessibility
minor: Unable to open file
- #003: (file name) line (number) in H5F_open(): unable to open file: name = 'test', tent_flags = 1
+ #004: (file name) line (number) in H5F_open(): unable to open file: name = 'test', tent_flags = 1
major: File accessibility
minor: Unable to open file
- #004: (file name) line (number) in H5FD_open(): open failed
+ #005: (file name) line (number) in H5FD_open(): open failed
major: Virtual File Layer
minor: Unable to initialize object
- #005: (file name) line (number) in H5FD_sec2_open(): unable to open file: name = 'test', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2
+ #006: (file name) line (number) in H5FD_sec2_open(): unable to open file: name = 'test', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2
major: File accessibility
minor: Unable to open file
diff --git a/java/test/testfiles/JUnit-TestH5Fbasic.txt b/java/test/testfiles/JUnit-TestH5Fbasic.txt
index 467e2fb..2654624 100644
--- a/java/test/testfiles/JUnit-TestH5Fbasic.txt
+++ b/java/test/testfiles/JUnit-TestH5Fbasic.txt
@@ -9,6 +9,7 @@ JUnit version 4.11
.testH5Freopen_closed
.testH5Freset_mdc_hit_rate_stats
.testH5Fget_name
+.testH5Fis_accessible
.testH5Fcreate
.testH5Fclear_elink_file_cache
.testH5Fclose_twice
@@ -17,5 +18,5 @@ JUnit version 4.11
Time: XXXX
-OK (15 tests)
+OK (16 tests)
diff --git a/java/test/testfiles/JUnit-TestH5Fparams.txt b/java/test/testfiles/JUnit-TestH5Fparams.txt
index 9d35220..e91cbdc 100644
--- a/java/test/testfiles/JUnit-TestH5Fparams.txt
+++ b/java/test/testfiles/JUnit-TestH5Fparams.txt
@@ -1,4 +1,5 @@
JUnit version 4.11
+.testH5Fis_accessible_null
.testH5Fcreate_null
.testH5Fflush_local
.testH5Fget_info
@@ -13,5 +14,5 @@ JUnit version 4.11
Time: XXXX
-OK (11 tests)
+OK (12 tests)
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 0df856f..024db9a 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -48,6 +48,15 @@ New Features
Configuration:
-------------
+ - Keep stderr and stdout separate in tests
+
+ Changed test handling of output capture. Tests now keep the stderr
+ output separate from the stdout output. It is up to the test to decide
+ which output to check against a reference. Also added the option
+ to grep for a string in either output.
+
+ (ADB - 2018/12/12, HDFFV-10632)
+
- Add toolchain and cross-compile support
Added info on using a toolchain file to INSTALL_CMAKE.txt. A
@@ -110,7 +119,7 @@ New Features
(ADB - 2018/07/16)
-
+
Library:
--------
- Allow pre-generated H5Tinit.c and H5make_libsettings.c to be used.
@@ -187,6 +196,15 @@ New Features
Java Library:
----------------
+ - Duplicate the data read/write functions of Datasets for Attributes.
+
+ Region references could not be displayed for attributes as they could
+ for datasets. Datasets had overloaded read and write functions for different
+ datatypes that were not available for attributes. After adding similar
+ functions, attribute region references work normally.
+
+ (ADB - 2018/12/12, HDFVIEW-4)
+
- Removed H5I_REFERENCE from the Java wrappers
@@ -299,9 +317,9 @@ Bug Fixes since HDF5-1.10.3 release
- Made Fortran specific subroutines PRIVATE in generic procedures.
Effected generic procedures were functions in H5A, H5D, H5P, H5R and H5T.
-
+
(MSB, 2018/12/04, HDFFV-10511)
-
+
Tools
-----
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cd81ba5..778505f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -950,10 +950,13 @@ if (NOT EXISTS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c)
)
add_custom_command (
OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c
+ ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1
COMMAND ${HDF5_BATCH_CMD}
ARGS ${HDF5_BINARY_DIR}/${HDF5_BATCH_H5DETECT_SCRIPT}
COMMAND ${CMAKE_COMMAND}
ARGS -E echo "Executed batch command to create H5Tinit.c"
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1
DEPENDS H5detect
WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
)
@@ -963,31 +966,62 @@ if (NOT EXISTS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c)
if (BUILD_SHARED_LIBS)
add_custom_command (
OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c
+ ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c" "${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c"
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
DEPENDS gen_H5Tinit ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit_created
+ WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
)
set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c PROPERTIES GENERATED TRUE)
endif ()
else ()
add_custom_command (
OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c
+ ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR}$<TARGET_FILE:H5detect>
ARGS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1
DEPENDS H5detect
WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
)
if (BUILD_SHARED_LIBS)
add_custom_command (
OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c
+ ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c" "${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c"
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c
+ WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
)
set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c PROPERTIES GENERATED TRUE)
endif ()
endif ()
set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c PROPERTIES GENERATED TRUE)
+else ()
+ add_custom_command (
+ OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1
+ DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c
+ WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
+ )
+ if (BUILD_SHARED_LIBS)
+ add_custom_command (
+ OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different "${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c" "${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c"
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
+ DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c
+ WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
+ )
+ set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c PROPERTIES GENERATED TRUE)
+ endif ()
endif ()
add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
@@ -1001,8 +1035,11 @@ target_link_libraries (H5make_libsettings
add_custom_command (
OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c
+ ${HDF5_BINARY_DIR}/gen_SRCS.stamp2
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR}$<TARGET_FILE:H5make_libsettings>
ARGS ${HDF5_BINARY_DIR}/H5lib_settings.c
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2
DEPENDS H5make_libsettings
WORKING_DIRECTORY ${HDF5_BINARY_DIR}
)
@@ -1010,9 +1047,13 @@ set_source_files_properties (${HDF5_BINARY_DIR}/H5lib_settings.c PROPERTIES GENE
if (BUILD_SHARED_LIBS)
add_custom_command (
OUTPUT ${HDF5_BINARY_DIR}/shared/H5lib_settings.c
+ ${HDF5_BINARY_DIR}/shared/shared_gen_SRCS.stamp2
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${HDF5_BINARY_DIR}/H5lib_settings.c" "${HDF5_BINARY_DIR}/shared/H5lib_settings.c"
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E touch ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2
DEPENDS ${HDF5_BINARY_DIR}/H5lib_settings.c
+ WORKING_DIRECTORY ${HDF5_BINARY_DIR}
)
set_source_files_properties (${HDF5_BINARY_DIR}/shared/H5lib_settings.c PROPERTIES GENERATED TRUE)
endif ()
@@ -1025,8 +1066,8 @@ option (HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF)
# Add H5Tinit source to build - generated by H5detect/CMake at configure time
#-----------------------------------------------------------------------------
set (gen_SRCS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c ${HDF5_BINARY_DIR}/H5lib_settings.c)
+add_custom_target (gen_${HDF5_LIB_TARGET} ALL DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1 ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2)
-add_custom_target (gen_${HDF5_LIB_TARGET} ALL DEPENDS ${gen_SRCS})
add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
target_include_directories(${HDF5_LIB_TARGET}
PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
@@ -1055,8 +1096,8 @@ set (install_targets ${HDF5_LIB_TARGET})
if (BUILD_SHARED_LIBS)
set (shared_gen_SRCS ${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c ${HDF5_BINARY_DIR}/shared/H5lib_settings.c)
+ add_custom_target (gen_${HDF5_LIBSH_TARGET} ALL DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1 ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2)
- add_custom_target (gen_${HDF5_LIBSH_TARGET} ALL DEPENDS ${shared_gen_SRCS})
add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${shared_gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
target_include_directories(${HDF5_LIBSH_TARGET}
PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
diff --git a/src/H5A.c b/src/H5A.c
index 0d20912..74b0148 100644
--- a/src/H5A.c
+++ b/src/H5A.c
@@ -1046,6 +1046,8 @@ H5Aget_info(hid_t attr_id, H5A_info_t *ainfo)
/* Check arguments */
if(NULL == (vol_obj = (H5VL_object_t *)H5I_object_verify(attr_id, H5I_ATTR)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an attribute")
+ if(!ainfo)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "attribute_info parameter cannot be NULL")
loc_params.type = H5VL_OBJECT_BY_SELF;
loc_params.obj_type = H5I_get_type(attr_id);
diff --git a/src/H5Adeprec.c b/src/H5Adeprec.c
index b43e41d..d4eac6a 100644
--- a/src/H5Adeprec.c
+++ b/src/H5Adeprec.c
@@ -343,7 +343,7 @@ H5Aget_num_attrs(hid_t loc_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, (-1), "invalid location identifier")
/* Get the number of attributes for the object */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, &oinfo, H5O_INFO_ALL) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, &oinfo, H5O_INFO_ALL) < 0)
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, (-1), "unable to get attribute count for object")
H5_CHECKED_ASSIGN(ret_value, int, oinfo.num_attrs, hsize_t);
@@ -408,7 +408,7 @@ H5Aiterate1(hid_t loc_id, unsigned *attr_num, H5A_operator1_t op, void *op_data)
HGOTO_ERROR(H5E_VOL, H5E_BADTYPE, H5_ITER_ERROR, "invalid location identifier")
/* Call attribute iteration routine */
- if((ret_value = H5VL_attr_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_ATTR_ITERATE_OLD, loc_id, attr_num, op, op_data)) < 0)
+ if((ret_value = H5VL_attr_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_ATTR_ITERATE_OLD, loc_id, attr_num, op, op_data)) < 0)
HERROR(H5E_VOL, H5E_BADITER, "error iterating over attributes");
done:
diff --git a/src/H5Apkg.h b/src/H5Apkg.h
index cfe9dae..91061cd 100644
--- a/src/H5Apkg.h
+++ b/src/H5Apkg.h
@@ -155,21 +155,6 @@ typedef struct {
H5A_t **attrs; /* Pointer to array of attribute pointers */
} H5A_attr_table_t;
-/* Types for optional attribute VOL operations */
-typedef enum H5VL_attr_optional_t {
- H5VL_ATTR_ITERATE_OLD /* H5Aiterate (deprecated routine) */
- /* (This enum value should have an
- * "#ifndefH5_NO_DEPRECATED_SYMBOLS"
- * around it, but the compiler
- * complains about an empty enum
- * when deprecated symbols are
- * disabled currently. When
- * another enum value is added,
- * please put the #ifdef around
- * this symbol. QAK - 2018/12/06
- */
-} H5VL_attr_optional_t;
-
/*****************************/
/* Package Private Variables */
diff --git a/src/H5Apublic.h b/src/H5Apublic.h
index 586940b..726f51b 100644
--- a/src/H5Apublic.h
+++ b/src/H5Apublic.h
@@ -38,6 +38,22 @@ typedef struct {
typedef herr_t (*H5A_operator2_t)(hid_t location_id/*in*/,
const char *attr_name/*in*/, const H5A_info_t *ainfo/*in*/, void *op_data/*in,out*/);
+/* Enumeration for native VOL connector attribute optional VOL operations */
+typedef enum H5VL_native_attr_optional_t {
+ H5VL_NATIVE_ATTR_ITERATE_OLD /* H5Aiterate (deprecated routine) */
+ /* (This enum value should have an
+ * "#ifndefH5_NO_DEPRECATED_SYMBOLS"
+ * around it, but the compiler
+ * complains about an empty enum
+ * when deprecated symbols are
+ * disabled currently. When
+ * another enum value is added,
+ * please put the #ifdef around
+ * this symbol. QAK - 2018/12/06
+ */
+} H5VL_native_attr_optional_t;
+
+
/* Public function prototypes */
H5_DLL hid_t H5Acreate2(hid_t loc_id, const char *attr_name, hid_t type_id,
hid_t space_id, hid_t acpl_id, hid_t aapl_id);
diff --git a/src/H5D.c b/src/H5D.c
index 1e16868..db70847 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -1027,7 +1027,7 @@ H5Dformat_convert(hid_t dset_id)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set collective metadata read info")
/* Convert the dataset */
- if(H5VL_dataset_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_DATASET_FORMAT_CONVERT) < 0)
+ if(H5VL_dataset_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_DATASET_FORMAT_CONVERT) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_INTERNAL, FAIL, "can't convert dataset format")
done:
@@ -1063,7 +1063,7 @@ H5Dget_chunk_index_type(hid_t dset_id, H5D_chunk_index_t *idx_type)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "idx_type parameter cannot be NULL")
/* Get the chunk indexing type */
- if(H5VL_dataset_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_DATASET_GET_CHUNK_INDEX_TYPE, idx_type) < 0)
+ if(H5VL_dataset_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE, idx_type) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk index type")
done:
@@ -1104,7 +1104,7 @@ H5Dget_chunk_storage_size(hid_t dset_id, const hsize_t *offset, hsize_t *chunk_n
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "chunk_nbytes parameter cannot be NULL")
/* Get the dataset creation property list */
- if(H5VL_dataset_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_DATASET_GET_CHUNK_STORAGE_SIZE, offset, chunk_nbytes) < 0)
+ if(H5VL_dataset_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE, offset, chunk_nbytes) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get storage size of chunk")
done:
diff --git a/src/H5Dio.c b/src/H5Dio.c
index f977b0e..037d443 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -242,7 +242,7 @@ H5Dread_chunk(hid_t dset_id, hid_t dxpl_id, const hsize_t *offset, uint32_t *fil
H5CX_set_dxpl(dxpl_id);
/* Read the raw chunk */
- if(H5VL_dataset_optional(vol_obj, dxpl_id, H5_REQUEST_NULL, H5VL_DATASET_CHUNK_READ, offset, filters, buf) < 0)
+ if(H5VL_dataset_optional(vol_obj, dxpl_id, H5_REQUEST_NULL, H5VL_NATIVE_DATASET_CHUNK_READ, offset, filters, buf) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read unprocessed chunk data")
done:
@@ -370,7 +370,7 @@ H5Dwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, const hsize_t *of
H5CX_set_dxpl(dxpl_id);
/* Write chunk */
- if(H5VL_dataset_optional(vol_obj, dxpl_id, H5_REQUEST_NULL, H5VL_DATASET_CHUNK_WRITE, filters, offset, data_size_32, buf) < 0)
+ if(H5VL_dataset_optional(vol_obj, dxpl_id, H5_REQUEST_NULL, H5VL_NATIVE_DATASET_CHUNK_WRITE, filters, offset, data_size_32, buf) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write unprocessed chunk data")
done:
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h
index 30652a5..2767aa1 100644
--- a/src/H5Dpkg.h
+++ b/src/H5Dpkg.h
@@ -110,15 +110,6 @@ typedef struct H5D_type_info_t {
hbool_t bkg_buf_allocated; /* Whether the background buffer was allocated */
} H5D_type_info_t;
-/* Types for dataset optional VOL operations */
-typedef enum H5VL_dataset_optional_t {
- H5VL_DATASET_FORMAT_CONVERT, /* H5Dformat_convert (internal) */
- H5VL_DATASET_GET_CHUNK_INDEX_TYPE, /* H5Dget_chunk_index_type */
- H5VL_DATASET_GET_CHUNK_STORAGE_SIZE, /* H5Dget_chunk_storage_size */
- H5VL_DATASET_CHUNK_READ, /* H5Dchunk_read */
- H5VL_DATASET_CHUNK_WRITE, /* H5Dchunk_write */
-} H5VL_dataset_optional_t;
-
/* Forward declaration of structs used below */
struct H5D_io_info_t;
struct H5D_chunk_map_t;
diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h
index a1ccda0..921974d 100644
--- a/src/H5Dpublic.h
+++ b/src/H5Dpublic.h
@@ -104,6 +104,16 @@ typedef enum H5D_vds_view_t {
/* Callback for H5Pset_append_flush() in a dataset access property list */
typedef herr_t (*H5D_append_cb_t)(hid_t dataset_id, hsize_t *cur_dims, void *op_data);
+/* Enumeration for native VOL connector dataset optional VOL operations */
+typedef enum H5VL_native_dataset_optional_t {
+ H5VL_NATIVE_DATASET_FORMAT_CONVERT, /* H5Dformat_convert (internal) */
+ H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE, /* H5Dget_chunk_index_type */
+ H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE, /* H5Dget_chunk_storage_size */
+ H5VL_NATIVE_DATASET_CHUNK_READ, /* H5Dchunk_read */
+ H5VL_NATIVE_DATASET_CHUNK_WRITE, /* H5Dchunk_write */
+} H5VL_native_dataset_optional_t;
+
+
/********************/
/* Public Variables */
/********************/
diff --git a/src/H5F.c b/src/H5F.c
index a5017d8..3937609 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -545,7 +545,7 @@ H5Fget_vfd_handle(hid_t file_id, hid_t fapl_id, void **file_handle)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid file identifier")
/* Retrieve the VFD handle for the file */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_VFD_HANDLE, file_handle, fapl_id) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_VFD_HANDLE, file_handle, fapl_id) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get VFD handle")
done:
@@ -931,7 +931,7 @@ H5Fget_freespace(hid_t file_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, (-1), "invalid file identifier")
/* Get the amount of free space in the file */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_FREE_SPACE, &ret_value) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_FREE_SPACE, &ret_value) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, (-1), "unable to get file free space")
done:
@@ -966,7 +966,7 @@ H5Fget_filesize(hid_t file_id, hsize_t *size)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
/* Get the file size */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_SIZE, size) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_SIZE, size) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get file size")
done:
@@ -1027,7 +1027,7 @@ H5Fget_file_image(hid_t file_id, void *buf_ptr, size_t buf_len)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, (-1), "not a file ID")
/* Get the file image */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_FILE_IMAGE, buf_ptr, &ret_value, buf_len) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_FILE_IMAGE, buf_ptr, &ret_value, buf_len) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, (-1), "unable to get file image")
done:
@@ -1067,7 +1067,7 @@ H5Fget_mdc_config(hid_t file_id, H5AC_cache_config_t *config_ptr)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid file identifier")
/* Get the metadata cache configuration */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_MDC_CONF, config_ptr) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_MDC_CONF, config_ptr) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get metadata cache configuration")
done:
@@ -1100,7 +1100,7 @@ H5Fset_mdc_config(hid_t file_id, H5AC_cache_config_t *config_ptr)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid file identifier")
/* Set the metadata cache configuration */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_SET_MDC_CONFIG, config_ptr) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_SET_MDC_CONFIG, config_ptr) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "unable to set metadata cache configuration")
done:
@@ -1136,7 +1136,7 @@ H5Fget_mdc_hit_rate(hid_t file_id, double *hit_rate_ptr)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
/* Get the current hit rate */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_MDC_HR, hit_rate_ptr) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_MDC_HR, hit_rate_ptr) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get MDC hit rate")
done:
@@ -1173,7 +1173,7 @@ H5Fget_mdc_size(hid_t file_id, size_t *max_size_ptr, size_t *min_clean_size_ptr,
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
/* Get the size data */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_MDC_SIZE, max_size_ptr, min_clean_size_ptr, cur_size_ptr, cur_num_entries_ptr) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_MDC_SIZE, max_size_ptr, min_clean_size_ptr, cur_size_ptr, cur_num_entries_ptr) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get MDC size")
done:
@@ -1211,7 +1211,7 @@ H5Freset_mdc_hit_rate_stats(hid_t file_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid file identifier")
/* Reset the hit rate statistic */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_RESET_MDC_HIT_RATE) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't reset cache hit rate")
done:
@@ -1305,7 +1305,7 @@ H5Fget_info2(hid_t obj_id, H5F_info2_t *finfo)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid object identifier")
/* Get the file information */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_INFO, type, finfo) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_INFO, type, finfo) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to retrieve file info")
done:
@@ -1341,7 +1341,7 @@ H5Fget_metadata_read_retry_info(hid_t file_id, H5F_retry_info_t *info)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
/* Get the retry info */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_METADATA_READ_RETRY_INFO, info) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO, info) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't get metadata read retry info")
done:
@@ -1380,7 +1380,7 @@ H5Fget_free_sections(hid_t file_id, H5F_mem_t type, size_t nsects,
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, (-1), "nsects must be > 0")
/* Get the free-space section information in the file */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_FREE_SECTIONS, sect_info, &ret_value, type, nsects) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_FREE_SECTIONS, sect_info, &ret_value, type, nsects) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, (-1), "unable to get file free sections")
done:
@@ -1413,7 +1413,7 @@ H5Fclear_elink_file_cache(hid_t file_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
/* Release the EFC */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_CLEAR_ELINK_CACHE) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't release external file cache")
done:
@@ -1473,7 +1473,7 @@ H5Fstart_swmr_write(hid_t file_id)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set collective metadata read info")
/* Start SWMR writing */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_START_SWMR_WRITE) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_START_SWMR_WRITE) < 0)
HGOTO_ERROR(H5E_FILE, H5E_SYSTEM, FAIL, "unable to start SWMR writing")
done:
@@ -1505,7 +1505,7 @@ H5Fstart_mdc_logging(hid_t file_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "hid_t identifier is not a file ID")
/* Call mdc logging function */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_START_MDC_LOGGING) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_START_MDC_LOGGING) < 0)
HGOTO_ERROR(H5E_FILE, H5E_LOGFAIL, FAIL, "unable to start mdc logging")
done:
@@ -1538,7 +1538,7 @@ H5Fstop_mdc_logging(hid_t file_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "hid_t identifier is not a file ID")
/* Call mdc logging function */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_STOP_MDC_LOGGING) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_STOP_MDC_LOGGING) < 0)
HGOTO_ERROR(H5E_FILE, H5E_LOGFAIL, FAIL, "unable to stop mdc logging")
done:
@@ -1572,7 +1572,7 @@ H5Fget_mdc_logging_status(hid_t file_id, hbool_t *is_enabled,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "hid_t identifier is not a file ID")
/* Call mdc logging function */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_MDC_LOGGING_STATUS, is_enabled, is_currently_logging) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS, is_enabled, is_currently_logging) < 0)
HGOTO_ERROR(H5E_FILE, H5E_LOGFAIL, FAIL, "unable to get logging status")
done:
@@ -1610,7 +1610,7 @@ H5Fset_libver_bounds(hid_t file_id, H5F_libver_t low, H5F_libver_t high)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set collective metadata read info")
/* Set the library's version bounds */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_SET_LIBVER_BOUNDS, low, high) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS, low, high) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set library version bounds")
done:
@@ -1647,7 +1647,7 @@ H5Fformat_convert(hid_t file_id)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set collective metadata read info")
/* Convert the format */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_FORMAT_CONVERT) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_FORMAT_CONVERT) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTCONVERT, FAIL, "can't convert file format")
done:
@@ -1678,7 +1678,7 @@ H5Freset_page_buffering_stats(hid_t file_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid file identifier")
/* Reset the statistics */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_RESET_PAGE_BUFFERING_STATS) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't reset stats for page buffering")
done:
@@ -1713,7 +1713,7 @@ H5Fget_page_buffering_stats(hid_t file_id, unsigned accesses[2], unsigned hits[2
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "NULL input parameters for stats")
/* Get the statistics */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_PAGE_BUFFERING_STATS, accesses, hits, misses, evictions, bypasses) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS, accesses, hits, misses, evictions, bypasses) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't retrieve stats for page buffering")
done:
@@ -1748,7 +1748,7 @@ H5Fget_mdc_image_info(hid_t file_id, haddr_t *image_addr, hsize_t *image_len)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "hid_t identifier is not a file ID")
/* Go get the address and size of the cache image */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_MDC_IMAGE_INFO, image_addr, image_len) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO, image_addr, image_len) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't retrieve cache image info")
done:
@@ -1782,7 +1782,7 @@ H5Fget_eoa(hid_t file_id, haddr_t *eoa)
/* Only do work if valid pointer to fill in */
if(eoa) {
/* Retrieve the EOA for the file */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_EOA, eoa) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_EOA, eoa) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get EOA")
} /* end if */
@@ -1813,7 +1813,7 @@ H5Fincrement_filesize(hid_t file_id, hsize_t increment)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "hid_t identifier is not a file ID")
/* Increment the file size */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_INCR_FILESIZE, increment) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_INCR_FILESIZE, increment) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "unable to increment file size")
done:
diff --git a/src/H5Fdeprec.c b/src/H5Fdeprec.c
index dfc1441..1a2418d 100644
--- a/src/H5Fdeprec.c
+++ b/src/H5Fdeprec.c
@@ -118,7 +118,7 @@ H5Fget_info1(hid_t obj_id, H5F_info1_t *finfo)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid object identifier")
/* Get the file information */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_INFO, type, &finfo2) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_INFO, type, &finfo2) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to retrieve file info")
/* Copy the compatible fields into the older struct */
@@ -225,7 +225,7 @@ H5Fset_latest_format(hid_t file_id, hbool_t latest_format)
low = H5F_LIBVER_EARLIEST;
/* Set the library's version bounds */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_SET_LIBVER_BOUNDS, low, high) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS, low, high) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set library version bounds")
done:
diff --git a/src/H5Fint.c b/src/H5Fint.c
index 4ac74ad..993db06 100644
--- a/src/H5Fint.c
+++ b/src/H5Fint.c
@@ -3693,7 +3693,7 @@ H5F_get_file_id(hid_t obj_id, H5I_type_t type)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5I_INVALID_HID, "invalid identifier")
/* Get the file through the VOL */
- if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_FILE_GET_FILE_ID, type, &file_id) < 0)
+ if(H5VL_file_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_FILE_GET_FILE_ID, type, &file_id) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, H5I_INVALID_HID, "unable to get file ID")
if(H5I_INVALID_HID == file_id)
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, H5I_INVALID_HID, "unable to get the file ID through the VOL")
diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h
index fc902b0..e5bb28f 100644
--- a/src/H5Fpkg.h
+++ b/src/H5Fpkg.h
@@ -382,35 +382,6 @@ struct H5F_t {
#endif /* H5_HAVE_PARALLEL */
};
-/* types for file optional VOL operations */
-typedef enum H5VL_file_optional_t {
- H5VL_FILE_CLEAR_ELINK_CACHE, /* Clear external link cache */
- H5VL_FILE_GET_FILE_IMAGE, /* file image */
- H5VL_FILE_GET_FREE_SECTIONS, /* file free selections */
- H5VL_FILE_GET_FREE_SPACE, /* file freespace */
- H5VL_FILE_GET_INFO, /* file info */
- H5VL_FILE_GET_MDC_CONF, /* file metadata cache configuration */
- H5VL_FILE_GET_MDC_HR, /* file metadata cache hit rate */
- H5VL_FILE_GET_MDC_SIZE, /* file metadata cache size */
- H5VL_FILE_GET_SIZE, /* file size */
- H5VL_FILE_GET_VFD_HANDLE, /* file VFD handle */
- H5VL_FILE_GET_FILE_ID, /* retrieve or resurrect file ID of object */
- H5VL_FILE_RESET_MDC_HIT_RATE, /* get metadata cache hit rate */
- H5VL_FILE_SET_MDC_CONFIG, /* set metadata cache configuration */
- H5VL_FILE_GET_METADATA_READ_RETRY_INFO,
- H5VL_FILE_START_SWMR_WRITE,
- H5VL_FILE_START_MDC_LOGGING,
- H5VL_FILE_STOP_MDC_LOGGING,
- H5VL_FILE_GET_MDC_LOGGING_STATUS,
- H5VL_FILE_FORMAT_CONVERT,
- H5VL_FILE_RESET_PAGE_BUFFERING_STATS,
- H5VL_FILE_GET_PAGE_BUFFERING_STATS,
- H5VL_FILE_GET_MDC_IMAGE_INFO,
- H5VL_FILE_GET_EOA,
- H5VL_FILE_INCR_FILESIZE,
- H5VL_FILE_SET_LIBVER_BOUNDS
-} H5VL_file_optional_t;
-
/*****************************/
/* Package Private Variables */
diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h
index 8e54e7f..ec543b6 100644
--- a/src/H5Fpublic.h
+++ b/src/H5Fpublic.h
@@ -217,6 +217,35 @@ typedef struct H5F_retry_info_t {
/* Callback for H5Pset_object_flush_cb() in a file access property list */
typedef herr_t (*H5F_flush_cb_t)(hid_t object_id, void *udata);
+/* Enumeration for native VOL connector file optional VOL operations */
+typedef enum H5VL_native_file_optional_t {
+ H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE, /* H5Fclear_elink_file_cache */
+ H5VL_NATIVE_FILE_GET_FILE_IMAGE, /* H5Fget_file_image */
+ H5VL_NATIVE_FILE_GET_FREE_SECTIONS, /* H5Fget_free_sections */
+ H5VL_NATIVE_FILE_GET_FREE_SPACE, /* H5Fget_freespace */
+ H5VL_NATIVE_FILE_GET_INFO, /* H5Fget_info1/2 */
+ H5VL_NATIVE_FILE_GET_MDC_CONF, /* H5Fget_mdc_config */
+ H5VL_NATIVE_FILE_GET_MDC_HR, /* H5Fget_mdc_hit_rate */
+ H5VL_NATIVE_FILE_GET_MDC_SIZE, /* H5Fget_mdc_size */
+ H5VL_NATIVE_FILE_GET_SIZE, /* H5Fget_filesize */
+ H5VL_NATIVE_FILE_GET_VFD_HANDLE, /* H5Fget_vfd_handle */
+ H5VL_NATIVE_FILE_GET_FILE_ID, /* H5Fget_file_id */
+ H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE, /* H5Freset_mdc_hit_rate_stats */
+ H5VL_NATIVE_FILE_SET_MDC_CONFIG, /* H5Fset_mdc_config */
+ H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO, /* H5Fget_metadata_read_retry_info */
+ H5VL_NATIVE_FILE_START_SWMR_WRITE, /* H5Fstart_swmr_write */
+ H5VL_NATIVE_FILE_START_MDC_LOGGING, /* H5Fstart_mdc_logging */
+ H5VL_NATIVE_FILE_STOP_MDC_LOGGING, /* H5Fstop_mdc_logging */
+ H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS, /* H5Fget_mdc_logging_status */
+ H5VL_NATIVE_FILE_FORMAT_CONVERT, /* H5Fformat_convert */
+ H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS, /* H5Freset_page_buffering_stats */
+ H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS, /* H5Fget_page_buffering_stats */
+ H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO, /* H5Fget_mdc_image_info */
+ H5VL_NATIVE_FILE_GET_EOA, /* H5Fget_eoa */
+ H5VL_NATIVE_FILE_INCR_FILESIZE, /* H5Fincrement_filesize */
+ H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS /* H5Fset_latest_format/libver_bounds */
+} H5VL_native_file_optional_t;
+
#ifdef __cplusplus
extern "C" {
diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c
index a15703e..07cad55 100644
--- a/src/H5Gdeprec.c
+++ b/src/H5Gdeprec.c
@@ -734,7 +734,7 @@ H5Gset_comment(hid_t loc_id, const char *name, const char *comment)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Set the comment */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_SET_COMMENT, &loc_params, comment) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_SET_COMMENT, &loc_params, comment) < 0)
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "unable to set comment value")
done:
@@ -795,7 +795,7 @@ H5Gget_comment(hid_t loc_id, const char *name, size_t bufsize, char *buf)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Get the comment */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_COMMENT, &loc_params, buf, bufsize, &ret_value) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_COMMENT, &loc_params, buf, bufsize, &ret_value) < 0)
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "unable to get comment value")
done:
@@ -868,7 +868,7 @@ H5Giterate(hid_t loc_id, const char *name, int *idx_p, H5G_iterate_t op,
HGOTO_ERROR(H5E_ATOM, H5E_BADTYPE, (-1), "invalid identifier")
/* Call private iteration function, through VOL callback */
- if((ret_value = H5VL_group_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_GROUP_ITERATE_OLD, &loc_params, idx, &last_obj, &lnk_op, op_data)) < 0)
+ if((ret_value = H5VL_group_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_GROUP_ITERATE_OLD, &loc_params, idx, &last_obj, &lnk_op, op_data)) < 0)
HERROR(H5E_SYM, H5E_BADITER, "error iterating over group's links");
/* Set the index we stopped at */
@@ -985,7 +985,7 @@ H5Gget_objinfo(hid_t loc_id, const char *name, hbool_t follow_link,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_group_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_GROUP_GET_OBJINFO, &loc_params, (unsigned)follow_link, statbuf) < 0)
+ if(H5VL_group_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_GROUP_GET_OBJINFO, &loc_params, (unsigned)follow_link, statbuf) < 0)
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't get info for object: '%s'", name)
} /* end if */
@@ -1239,7 +1239,7 @@ H5Gget_objtype_by_idx(hid_t loc_id, hsize_t idx)
/* Retrieve the object's basic information (which includes its type) */
fields = H5O_INFO_BASIC;
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, &oinfo, fields) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, &oinfo, fields) < 0)
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, H5G_UNKNOWN, "can't get object info")
/* Map to group object type */
diff --git a/src/H5Gpkg.h b/src/H5Gpkg.h
index 159b6f5..f475bde 100644
--- a/src/H5Gpkg.h
+++ b/src/H5Gpkg.h
@@ -299,22 +299,6 @@ typedef struct H5G_copy_file_ud_t {
H5G_cache_t cache; /* Cached data for symbol table entry */
} H5G_copy_file_ud_t;
-/* Types for optional group VOL operations */
-typedef enum H5VL_group_optional_t {
- H5VL_GROUP_ITERATE_OLD, /* HG5Giterate (deprecated routine) */
- H5VL_GROUP_GET_OBJINFO /* HG5Gget_objinfo (deprecated routine) */
- /* (These two enum values should have an
- * "#ifndefH5_NO_DEPRECATED_SYMBOLS"
- * around them, but the compiler
- * complains about an empty enum
- * when deprecated symbols are
- * disabled currently. When
- * another enum value is added,
- * please put the #ifdef around
- * these symbols. QAK - 2018/12/06
- */
-} H5VL_group_optional_t;
-
/*****************************/
/* Package Private Variables */
diff --git a/src/H5Gpublic.h b/src/H5Gpublic.h
index ab6f200..58961ba 100644
--- a/src/H5Gpublic.h
+++ b/src/H5Gpublic.h
@@ -62,6 +62,22 @@ typedef struct H5G_info_t {
hbool_t mounted; /* Whether group has a file mounted on it */
} H5G_info_t;
+/* Enumeration for native VOL connector group optional VOL operations */
+typedef enum H5VL_native_group_optional_t {
+ H5VL_NATIVE_GROUP_ITERATE_OLD, /* HG5Giterate (deprecated routine) */
+ H5VL_NATIVE_GROUP_GET_OBJINFO /* HG5Gget_objinfo (deprecated routine) */
+ /* (These two enum values should have an
+ * "#ifndefH5_NO_DEPRECATED_SYMBOLS"
+ * around them, but the compiler
+ * complains about an empty enum
+ * when deprecated symbols are
+ * disabled currently. When
+ * another enum value is added,
+ * please put the #ifdef around
+ * these symbols. QAK - 2018/12/06
+ */
+} H5VL_native_group_optional_t;
+
/********************/
/* Public Variables */
/********************/
diff --git a/src/H5O.c b/src/H5O.c
index 0212dc4..ea88172 100644
--- a/src/H5O.c
+++ b/src/H5O.c
@@ -575,7 +575,7 @@ H5Oget_info2(hid_t loc_id, H5O_info_t *oinfo, unsigned fields)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, oinfo, fields) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, oinfo, fields) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object")
done:
@@ -633,7 +633,7 @@ H5Oget_info_by_name2(hid_t loc_id, const char *name, H5O_info_t *oinfo,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, oinfo, fields) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, oinfo, fields) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object: '%s'", name)
done:
@@ -698,7 +698,7 @@ H5Oget_info_by_idx2(hid_t loc_id, const char *group_name, H5_index_t idx_type,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, oinfo, fields) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, oinfo, fields) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object")
done:
@@ -746,7 +746,7 @@ H5Oset_comment(hid_t obj_id, const char *comment)
loc_params.obj_type = H5I_get_type(obj_id);
/* (Re)set the object's comment */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_SET_COMMENT, &loc_params, comment) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_SET_COMMENT, &loc_params, comment) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set comment for object")
done:
@@ -801,7 +801,7 @@ H5Oset_comment_by_name(hid_t loc_id, const char *name, const char *comment,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* (Re)set the object's comment */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_SET_COMMENT, &loc_params, comment) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_SET_COMMENT, &loc_params, comment) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set comment for object: '%s'", name)
done:
@@ -844,7 +844,7 @@ H5Oget_comment(hid_t obj_id, char *comment, size_t bufsize)
loc_params.obj_type = H5I_get_type(obj_id);
/* Retrieve the object's comment */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_COMMENT, &loc_params, comment, bufsize, &ret_value) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_COMMENT, &loc_params, comment, bufsize, &ret_value) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, (-1), "can't get comment for object")
done:
@@ -898,7 +898,7 @@ H5Oget_comment_by_name(hid_t loc_id, const char *name, char *comment, size_t buf
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, (-1), "invalid location identifier")
/* Retrieve the object's comment */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_COMMENT, &loc_params, comment, bufsize, &ret_value) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_COMMENT, &loc_params, comment, bufsize, &ret_value) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, (-1), "can't get comment for object: '%s'", name)
done:
diff --git a/src/H5Odeprec.c b/src/H5Odeprec.c
index 93fc18a..56b0c05 100644
--- a/src/H5Odeprec.c
+++ b/src/H5Odeprec.c
@@ -109,7 +109,7 @@ H5Oget_info1(hid_t loc_id, H5O_info_t *oinfo)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, oinfo, H5O_INFO_ALL) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, oinfo, H5O_INFO_ALL) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object")
done:
@@ -160,7 +160,7 @@ H5Oget_info_by_name1(hid_t loc_id, const char *name, H5O_info_t *oinfo, hid_t la
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, oinfo, H5O_INFO_ALL) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, oinfo, H5O_INFO_ALL) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object: '%s'", name)
done:
@@ -221,7 +221,7 @@ H5Oget_info_by_idx1(hid_t loc_id, const char *group_name, H5_index_t idx_type,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid location identifier")
/* Retrieve the object's information */
- if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_OBJECT_GET_INFO, &loc_params, oinfo, H5O_INFO_ALL) < 0)
+ if(H5VL_object_optional(vol_obj, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, H5VL_NATIVE_OBJECT_GET_INFO, &loc_params, oinfo, H5O_INFO_ALL) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object")
done:
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index e8565b9..7ed9e26 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -851,13 +851,6 @@ typedef struct {
} u;
} H5O_mesg_operator_t;
-/* Types for object optional VOL operations */
-typedef enum H5VL_object_optional_t {
- H5VL_OBJECT_GET_COMMENT, /* get object comment */
- H5VL_OBJECT_GET_INFO, /* get object info */
- H5VL_OBJECT_SET_COMMENT /* set object comment */
-} H5VL_object_optional_t;
-
/* Typedef for abstract object creation */
typedef struct {
H5O_type_t obj_type; /* Type of object to create */
diff --git a/src/H5Opublic.h b/src/H5Opublic.h
index da2910d..fe0c72d 100644
--- a/src/H5Opublic.h
+++ b/src/H5Opublic.h
@@ -150,6 +150,13 @@ typedef enum H5O_mcdt_search_ret_t {
/* Callback to invoke when completing the search for a matching committed datatype from the committed dtype list */
typedef H5O_mcdt_search_ret_t (*H5O_mcdt_search_cb_t)(void *op_data);
+/* Enumeration for native VOL connector object optional VOL operations */
+typedef enum H5VL_native_object_optional_t {
+ H5VL_NATIVE_OBJECT_GET_COMMENT, /* H5G|H5Oget_comment, H5Oget_comment_by_name */
+ H5VL_NATIVE_OBJECT_GET_INFO, /* H5Oget_info(_by_idx, _by_name)(2?) */
+ H5VL_NATIVE_OBJECT_SET_COMMENT /* H5G|H5Oset_comment, H5Oset_comment_by_name */
+} H5VL_native_object_optional_t;
+
/********************/
/* Public Variables */
/********************/
diff --git a/src/H5PLint.c b/src/H5PLint.c
index bbe71fe..ded315a 100644
--- a/src/H5PLint.c
+++ b/src/H5PLint.c
@@ -262,7 +262,7 @@ H5PL_load(H5PL_type_t type, const H5PL_key_t *key)
/* Set up the search parameters */
search_params.type = type;
- search_params.key.id = key->id;
+ search_params.key = key;
/* Search in the table of already loaded plugin libraries */
if(H5PL__find_plugin_in_cache(&search_params, &found, &plugin_info) < 0)
diff --git a/src/H5PLpath.c b/src/H5PLpath.c
index d53007b..04248b5 100644
--- a/src/H5PLpath.c
+++ b/src/H5PLpath.c
@@ -242,6 +242,7 @@ H5PL__create_path_table(void)
* environment variable or the default.
*/
char *next_path = NULL; /* A path tokenized from the paths string */
+ char *lasts = NULL; /* Context pointer for strtok_r() call */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -265,8 +266,7 @@ H5PL__create_path_table(void)
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't allocate memory for path copy")
/* Separate the paths and store them */
- /* XXX: strtok() is not thread-safe */
- next_path = HDstrtok(paths, H5PL_PATH_SEPARATOR);
+ next_path = HDstrtok_r(paths, H5PL_PATH_SEPARATOR, &lasts);
while (next_path) {
/* Insert the path into the table */
@@ -274,7 +274,7 @@ H5PL__create_path_table(void)
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't insert path: %s", next_path)
/* Get the next path from the environment string */
- next_path = HDstrtok(NULL, H5PL_PATH_SEPARATOR);
+ next_path = HDstrtok_r(NULL, H5PL_PATH_SEPARATOR, &lasts);
} /* end while */
done:
@@ -689,7 +689,7 @@ H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *fo
continue;
/* attempt to open the dynamic library as a filter library */
- if (H5PL__open(path, search_params->type, &(search_params->key), found, plugin_info) < 0)
+ if (H5PL__open(path, search_params->type, search_params->key, found, plugin_info) < 0)
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTGET, FAIL, "search in directory failed")
if (*found)
HGOTO_DONE(SUCCEED)
@@ -755,7 +755,7 @@ H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *fo
continue;
/* attempt to open the dynamic library as a filter library */
- if (H5PL__open(path, search_params->type, &(search_params->key), found, plugin_info) < 0)
+ if (H5PL__open(path, search_params->type, search_params->key, found, plugin_info) < 0)
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTGET, FAIL, "search in directory failed")
if (*found)
HGOTO_DONE(SUCCEED)
diff --git a/src/H5PLpkg.h b/src/H5PLpkg.h
index d60da82..c3ad8f5 100644
--- a/src/H5PLpkg.h
+++ b/src/H5PLpkg.h
@@ -116,7 +116,7 @@
/* Data used to search for plugins */
typedef struct H5PL_search_params_t {
H5PL_type_t type;
- H5PL_key_t key;
+ const H5PL_key_t *key;
} H5PL_search_params_t;
diff --git a/src/H5PLplugin_cache.c b/src/H5PLplugin_cache.c
index 7fe676d..cd0b4d6 100644
--- a/src/H5PLplugin_cache.c
+++ b/src/H5PLplugin_cache.c
@@ -276,7 +276,7 @@ H5PL__find_plugin_in_cache(const H5PL_search_params_t *search_params, hbool_t *f
for (u = 0; u < H5PL_num_plugins_g; u++) {
/* If the plugin type (filter, etc.) and ID match, query the plugin for its info */
- if ((search_params->type == (H5PL_cache_g[u]).type) && (search_params->key.id == (H5PL_cache_g[u]).key.id)) {
+ if ((search_params->type == (H5PL_cache_g[u]).type) && (search_params->key->id == (H5PL_cache_g[u]).key.id)) {
H5PL_get_plugin_info_t get_plugin_info_function;
const H5Z_class2_t *filter_info;
diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c
index 610c628..712b264 100644
--- a/src/H5Tcommit.c
+++ b/src/H5Tcommit.c
@@ -155,7 +155,7 @@ H5Tcommit2(hid_t loc_id, const char *name, hid_t type_id, hid_t lcpl_id,
/* Set up VOL object */
if(NULL == (new_obj = H5FL_CALLOC(H5VL_object_t)))
- HGOTO_ERROR(H5E_VOL, H5E_NOSPACE, FAIL, "can't allocate top object structure")
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "can't allocate top object structure")
new_obj->connector = vol_obj->connector;
new_obj->connector->nrefs ++;
new_obj->data = data;
@@ -308,7 +308,7 @@ H5Tcommit_anon(hid_t loc_id, hid_t type_id, hid_t tcpl_id, hid_t tapl_id)
/* Setup VOL object */
if(NULL == (new_obj = H5FL_CALLOC(H5VL_object_t)))
- HGOTO_ERROR(H5E_VOL, H5E_NOSPACE, FAIL, "can't allocate top object structure")
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "can't allocate top object structure")
new_obj->connector = vol_obj->connector;
new_obj->connector->nrefs ++;
new_obj->data = dt;
diff --git a/src/H5VLcallback.c b/src/H5VLcallback.c
index 2828262..6e19e07 100644
--- a/src/H5VLcallback.c
+++ b/src/H5VLcallback.c
@@ -1360,7 +1360,7 @@ H5VL_attr_get(const H5VL_object_t *vol_obj, H5VL_attr_get_t get_type,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__attr_get(vol_obj->data, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "attribute get failed")
@@ -1368,7 +1368,7 @@ H5VL_attr_get(const H5VL_object_t *vol_obj, H5VL_attr_get_t get_type,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -1473,7 +1473,7 @@ H5VL_attr_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_pa
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if((ret_value = H5VL__attr_specific(vol_obj->data, loc_params, vol_obj->connector->cls, specific_type, dxpl_id, req, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute attribute specific callback")
@@ -1481,7 +1481,7 @@ H5VL_attr_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_pa
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -1584,7 +1584,7 @@ H5VL_attr_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...)
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if((ret_value = H5VL__attr_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute attribute optional callback")
@@ -1592,7 +1592,7 @@ H5VL_attr_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...)
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -2207,7 +2207,7 @@ H5VL_dataset_get(const H5VL_object_t *vol_obj, H5VL_dataset_get_t get_type,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__dataset_get(vol_obj->data, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "dataset get failed")
@@ -2215,7 +2215,7 @@ H5VL_dataset_get(const H5VL_object_t *vol_obj, H5VL_dataset_get_t get_type,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -2319,7 +2319,7 @@ H5VL_dataset_specific(const H5VL_object_t *vol_obj, H5VL_dataset_specific_t spec
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__dataset_specific(vol_obj->data, vol_obj->connector->cls, specific_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute dataset specific callback")
@@ -2327,7 +2327,7 @@ H5VL_dataset_specific(const H5VL_object_t *vol_obj, H5VL_dataset_specific_t spec
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -2432,7 +2432,7 @@ H5VL_dataset_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__dataset_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute dataset optional callback")
@@ -2440,7 +2440,7 @@ H5VL_dataset_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -2617,7 +2617,7 @@ H5VL__file_cache_connector(void *obj, const H5VL_class_t *cls, hid_t dxpl_id,
FUNC_ENTER_STATIC
/* Re-issue call to internal file specific callback routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__file_specific(obj, cls, H5VL_FILE_CACHE_VOL_CONN, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "file specific failed")
@@ -2625,7 +2625,7 @@ H5VL__file_cache_connector(void *obj, const H5VL_class_t *cls, hid_t dxpl_id,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5VL__file_cache_connector() */
@@ -2914,7 +2914,7 @@ H5VL_file_get(const H5VL_object_t *vol_obj, H5VL_file_get_t get_type,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__file_get(vol_obj->data, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "file get failed")
@@ -2922,7 +2922,7 @@ H5VL_file_get(const H5VL_object_t *vol_obj, H5VL_file_get_t get_type,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -3022,7 +3022,7 @@ H5VL_file_specific(const H5VL_object_t *vol_obj, H5VL_file_specific_t specific_t
FUNC_ENTER_NOAPI(FAIL)
/* Start access to the varargs, so they are available in all situations below */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
/* Special treatment of file access check */
@@ -3033,9 +3033,9 @@ H5VL_file_specific(const H5VL_object_t *vol_obj, H5VL_file_specific_t specific_t
hid_t fapl_id; /* File access property list for accessing the file */
/* Get the file access property list to access the file */
- va_copy(tmp_args, arguments);
+ HDva_copy(tmp_args, arguments);
fapl_id = va_arg(tmp_args, hid_t);
- va_end(tmp_args);
+ HDva_end(tmp_args);
/* Get the VOL info from the FAPL */
if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id)))
@@ -3067,7 +3067,7 @@ H5VL_file_specific(const H5VL_object_t *vol_obj, H5VL_file_specific_t specific_t
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -3170,7 +3170,7 @@ H5VL_file_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...)
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__file_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "file optional failed")
@@ -3178,7 +3178,7 @@ H5VL_file_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...)
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -3593,7 +3593,7 @@ H5VL_group_get(const H5VL_object_t *vol_obj, H5VL_group_get_t get_type,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__group_get(vol_obj->data, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "group get failed")
@@ -3601,7 +3601,7 @@ H5VL_group_get(const H5VL_object_t *vol_obj, H5VL_group_get_t get_type,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -3705,7 +3705,7 @@ H5VL_group_specific(const H5VL_object_t *vol_obj, H5VL_group_specific_t specific
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__group_specific(vol_obj->data, vol_obj->connector->cls, specific_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute group specific callback")
@@ -3713,7 +3713,7 @@ H5VL_group_specific(const H5VL_object_t *vol_obj, H5VL_group_specific_t specific
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -3816,7 +3816,7 @@ H5VL_group_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if((ret_value = H5VL__group_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute group optional callback")
@@ -3824,7 +3824,7 @@ H5VL_group_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -4372,7 +4372,7 @@ H5VL_link_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__link_get(vol_obj->data, loc_params, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "link get failed")
@@ -4380,7 +4380,7 @@ H5VL_link_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -4484,7 +4484,7 @@ H5VL_link_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_pa
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if((ret_value = H5VL__link_specific(vol_obj->data, loc_params, vol_obj->connector->cls, specific_type, dxpl_id, req, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute link specific callback")
@@ -4492,7 +4492,7 @@ H5VL_link_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_pa
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -4595,7 +4595,7 @@ H5VL_link_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...)
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__link_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute link optional callback")
@@ -4603,7 +4603,7 @@ H5VL_link_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ...)
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -4924,7 +4924,7 @@ H5VL_object_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_param
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__object_get(vol_obj->data, loc_params, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "get failed")
@@ -4932,7 +4932,7 @@ H5VL_object_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_param
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -5037,7 +5037,7 @@ H5VL_object_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if((ret_value = H5VL__object_specific(vol_obj->data, loc_params, vol_obj->connector->cls, specific_type, dxpl_id, req, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "object specific failed")
@@ -5045,7 +5045,7 @@ H5VL_object_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -5152,7 +5152,7 @@ H5VL_object_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ..
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__object_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute object optional callback")
@@ -5160,7 +5160,7 @@ H5VL_object_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req, ..
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -5473,7 +5473,7 @@ H5VL_datatype_get(const H5VL_object_t *vol_obj, H5VL_datatype_get_t get_type,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__datatype_get(vol_obj->data, vol_obj->connector->cls, get_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "datatype get failed")
@@ -5481,7 +5481,7 @@ H5VL_datatype_get(const H5VL_object_t *vol_obj, H5VL_datatype_get_t get_type,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -5589,7 +5589,7 @@ H5VL_datatype_specific(const H5VL_object_t *vol_obj, H5VL_datatype_specific_t sp
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__datatype_specific(vol_obj->data, vol_obj->connector->cls, specific_type, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute datatype specific callback")
@@ -5597,7 +5597,7 @@ H5VL_datatype_specific(const H5VL_object_t *vol_obj, H5VL_datatype_specific_t sp
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -5701,7 +5701,7 @@ H5VL_datatype_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, req);
+ HDva_start(arguments, req);
arg_started = TRUE;
if(H5VL__datatype_optional(vol_obj->data, vol_obj->connector->cls, dxpl_id, req, arguments) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute datatype optional callback")
@@ -5709,7 +5709,7 @@ H5VL_datatype_optional(const H5VL_object_t *vol_obj, hid_t dxpl_id,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -6265,7 +6265,7 @@ H5VL_request_specific(const H5VL_object_t *vol_obj,
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, specific_type);
+ HDva_start(arguments, specific_type);
arg_started = TRUE;
if((ret_value = H5VL__request_specific(vol_obj->data, vol_obj->connector->cls, specific_type, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute asynchronous request specific callback")
@@ -6273,7 +6273,7 @@ H5VL_request_specific(const H5VL_object_t *vol_obj,
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
@@ -6379,7 +6379,7 @@ H5VL_request_optional(const H5VL_object_t *vol_obj, ...)
vol_wrapper_set = TRUE;
/* Call the corresponding internal VOL routine */
- va_start(arguments, vol_obj);
+ HDva_start(arguments, vol_obj);
arg_started = TRUE;
if((ret_value = H5VL__request_optional(vol_obj->data, vol_obj->connector->cls, arguments)) < 0)
HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute asynchronous request optional callback")
@@ -6387,7 +6387,7 @@ H5VL_request_optional(const H5VL_object_t *vol_obj, ...)
done:
/* End access to the va_list, if we started it */
if(arg_started)
- va_end(arguments);
+ HDva_end(arguments);
/* Reset object wrapping info in API context */
if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
diff --git a/src/H5VLint.c b/src/H5VLint.c
index 55f51d7..17dfc1f 100644
--- a/src/H5VLint.c
+++ b/src/H5VLint.c
@@ -625,9 +625,12 @@ H5VL_register_connector(const void *_cls, hbool_t app_ref, hid_t vipl_id)
HGOTO_ERROR(H5E_VOL, H5E_CANTREGISTER, H5I_INVALID_HID, "unable to register VOL connector ID")
done:
- if (ret_value < 0)
- if (saved)
- H5FL_FREE(H5VL_class_t, saved);
+ if (ret_value < 0 && saved) {
+ if (saved->name)
+ H5MM_xfree(saved->name);
+
+ H5FL_FREE(H5VL_class_t, saved);
+ }
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5VL_register_connector() */
diff --git a/src/H5VLnative.c b/src/H5VLnative.c
index 3fc1a7c..0339205 100644
--- a/src/H5VLnative.c
+++ b/src/H5VLnative.c
@@ -482,7 +482,7 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
/* H5Aget_space */
case H5VL_ATTR_GET_SPACE:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
H5A_t *attr = (H5A_t *)obj;
if((*ret_id = H5A_get_space(attr)) < 0)
@@ -493,7 +493,7 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
/* H5Aget_type */
case H5VL_ATTR_GET_TYPE:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
H5A_t *attr = (H5A_t *)obj;
if((*ret_id = H5A__get_type(attr)) < 0)
@@ -504,7 +504,7 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
/* H5Aget_create_plist */
case H5VL_ATTR_GET_ACPL:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
H5A_t *attr = (H5A_t *)obj;
if((*ret_id = H5A__get_create_plist(attr)) < 0)
@@ -516,10 +516,10 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
/* H5Aget_name */
case H5VL_ATTR_GET_NAME:
{
- const H5VL_loc_params_t *loc_params = va_arg(arguments, const H5VL_loc_params_t *);
- size_t buf_size = va_arg(arguments, size_t);
- char *buf = va_arg(arguments, char *);
- ssize_t *ret_val = va_arg(arguments, ssize_t *);
+ const H5VL_loc_params_t *loc_params = HDva_arg(arguments, const H5VL_loc_params_t *);
+ size_t buf_size = HDva_arg(arguments, size_t);
+ char *buf = HDva_arg(arguments, char *);
+ ssize_t *ret_val = HDva_arg(arguments, ssize_t *);
H5A_t *attr = NULL;
if(H5VL_OBJECT_BY_SELF == loc_params->type) {
@@ -565,8 +565,8 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
/* H5Aget_info */
case H5VL_ATTR_GET_INFO:
{
- const H5VL_loc_params_t *loc_params = va_arg(arguments, const H5VL_loc_params_t *);
- H5A_info_t *ainfo = va_arg(arguments, H5A_info_t *);
+ const H5VL_loc_params_t *loc_params = HDva_arg(arguments, const H5VL_loc_params_t *);
+ H5A_info_t *ainfo = HDva_arg(arguments, H5A_info_t *);
H5A_t *attr = NULL;
if(H5VL_OBJECT_BY_SELF == loc_params->type) {
@@ -575,7 +575,7 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get attribute info")
}
else if(H5VL_OBJECT_BY_NAME == loc_params->type) {
- char *attr_name = va_arg(arguments, char *);
+ char *attr_name = HDva_arg(arguments, char *);
H5G_loc_t loc;
/* check arguments */
@@ -624,7 +624,7 @@ H5VL__native_attr_get(void *obj, H5VL_attr_get_t get_type,
case H5VL_ATTR_GET_STORAGE_SIZE:
{
- hsize_t *ret = va_arg(arguments, hsize_t *);
+ hsize_t *ret = HDva_arg(arguments, hsize_t *);
H5A_t *attr = (H5A_t *)obj;
/* Set return value */
@@ -670,7 +670,7 @@ H5VL__native_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_
switch(specific_type) {
case H5VL_ATTR_DELETE:
{
- char *attr_name = va_arg(arguments, char *);
+ char *attr_name = HDva_arg(arguments, char *);
if(H5VL_OBJECT_BY_SELF == loc_params->type) {
/* H5Adelete */
@@ -698,8 +698,8 @@ H5VL__native_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_
case H5VL_ATTR_EXISTS:
{
- const char *attr_name = va_arg(arguments, const char *);
- htri_t *ret = va_arg(arguments, htri_t *);
+ const char *attr_name = HDva_arg(arguments, const char *);
+ htri_t *ret = HDva_arg(arguments, htri_t *);
if(loc_params->type == H5VL_OBJECT_BY_SELF) { /* H5Aexists */
/* Check if the attribute exists */
@@ -718,11 +718,11 @@ H5VL__native_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_
case H5VL_ATTR_ITER:
{
- H5_index_t idx_type = va_arg(arguments, H5_index_t);
- H5_iter_order_t order = va_arg(arguments, H5_iter_order_t);
- hsize_t *idx = va_arg(arguments, hsize_t *);
- H5A_operator2_t op = va_arg(arguments, H5A_operator2_t);
- void *op_data = va_arg(arguments, void *);
+ H5_index_t idx_type = HDva_arg(arguments, H5_index_t);
+ H5_iter_order_t order = HDva_arg(arguments, H5_iter_order_t);
+ hsize_t *idx = HDva_arg(arguments, hsize_t *);
+ H5A_operator2_t op = HDva_arg(arguments, H5A_operator2_t);
+ void *op_data = HDva_arg(arguments, void *);
if(loc_params->type == H5VL_OBJECT_BY_SELF) { /* H5Aiterate2 */
/* Iterate over attributes */
@@ -742,8 +742,8 @@ H5VL__native_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_
/* H5Arename/rename_by_name */
case H5VL_ATTR_RENAME:
{
- const char *old_name = va_arg(arguments, const char *);
- const char *new_name = va_arg(arguments, const char *);
+ const char *old_name = HDva_arg(arguments, const char *);
+ const char *new_name = HDva_arg(arguments, const char *);
if(loc_params->type == H5VL_OBJECT_BY_SELF) { /* H5Arename */
/* Call attribute rename routine */
@@ -782,20 +782,20 @@ static herr_t
H5VL__native_attr_optional(void H5_ATTR_UNUSED *obj, hid_t H5_ATTR_UNUSED dxpl_id,
void H5_ATTR_UNUSED **req, va_list arguments)
{
- H5VL_attr_optional_t optional_type;
+ H5VL_native_attr_optional_t optional_type;
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
- optional_type = va_arg(arguments, H5VL_attr_optional_t);
+ optional_type = HDva_arg(arguments, H5VL_native_attr_optional_t);
switch(optional_type) {
#ifndef H5_NO_DEPRECATED_SYMBOLS
- case H5VL_ATTR_ITERATE_OLD:
+ case H5VL_NATIVE_ATTR_ITERATE_OLD:
{
- hid_t loc_id = va_arg(arguments, hid_t);
- unsigned *attr_num = va_arg(arguments, unsigned *);
- H5A_operator1_t op = va_arg(arguments, H5A_operator1_t);
- void *op_data = va_arg(arguments, void *);
+ hid_t loc_id = HDva_arg(arguments, hid_t);
+ unsigned *attr_num = HDva_arg(arguments, unsigned *);
+ H5A_operator1_t op = HDva_arg(arguments, H5A_operator1_t);
+ void *op_data = HDva_arg(arguments, void *);
/* Call the actual iteration routine */
if((ret_value = H5A__iterate_old(loc_id, attr_num, op, op_data)) < 0)
@@ -803,6 +803,13 @@ H5VL__native_attr_optional(void H5_ATTR_UNUSED *obj, hid_t H5_ATTR_UNUSED dxpl_i
break;
}
+#else
+ /* XXX: This case only exists because this is the only attribute optional
+ * value and we can't have empty enums. Delete it when we have another
+ * attribute optional enum value.
+ */
+ case H5VL_NATIVE_ATTR_ITERATE_OLD:
+ HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "H5VL_NATIVE_ATTR_ITERATE_OLD is not a valid value when the library is built without deprecated routines")
#endif /* H5_NO_DEPRECATED_SYMBOLS */
default:
@@ -1059,7 +1066,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_space */
case H5VL_DATASET_GET_SPACE:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
if((*ret_id = H5D__get_space(dset)) < 0)
HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get space ID of dataset")
@@ -1070,7 +1077,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_space_statuc */
case H5VL_DATASET_GET_SPACE_STATUS:
{
- H5D_space_status_t *allocation = va_arg(arguments, H5D_space_status_t *);
+ H5D_space_status_t *allocation = HDva_arg(arguments, H5D_space_status_t *);
/* Read data space address and return */
if(H5D__get_space_status(dset, allocation) < 0)
@@ -1082,7 +1089,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_type */
case H5VL_DATASET_GET_TYPE:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
if((*ret_id = H5D__get_type(dset)) < 0)
HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get datatype ID of dataset")
@@ -1093,7 +1100,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_create_plist */
case H5VL_DATASET_GET_DCPL:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
if((*ret_id = H5D_get_create_plist(dset)) < 0)
HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get creation property list for dataset")
@@ -1104,7 +1111,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_access_plist */
case H5VL_DATASET_GET_DAPL:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
if((*ret_id = H5D_get_access_plist(dset)) < 0)
HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get access property list for dataset")
@@ -1115,7 +1122,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_storage_size */
case H5VL_DATASET_GET_STORAGE_SIZE:
{
- hsize_t *ret = va_arg(arguments, hsize_t *);
+ hsize_t *ret = HDva_arg(arguments, hsize_t *);
/* Set return value */
if(H5D__get_storage_size(dset, ret) < 0)
@@ -1126,7 +1133,7 @@ H5VL__native_dataset_get(void *obj, H5VL_dataset_get_t get_type,
/* H5Dget_offset */
case H5VL_DATASET_GET_OFFSET:
{
- haddr_t *ret = va_arg(arguments, haddr_t *);
+ haddr_t *ret = HDva_arg(arguments, haddr_t *);
/* Set return value */
*ret = H5D__get_offset(dset);
@@ -1166,7 +1173,7 @@ H5VL__native_dataset_specific(void *obj, H5VL_dataset_specific_t specific_type,
/* H5Dspecific_space */
case H5VL_DATASET_SET_EXTENT:
{
- const hsize_t *size = va_arg(arguments, const hsize_t *);
+ const hsize_t *size = HDva_arg(arguments, const hsize_t *);
if(H5D__set_extent(dset, size) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set extent of dataset")
@@ -1175,7 +1182,7 @@ H5VL__native_dataset_specific(void *obj, H5VL_dataset_specific_t specific_type,
case H5VL_DATASET_FLUSH:
{
- hid_t dset_id = va_arg(arguments, hid_t);
+ hid_t dset_id = HDva_arg(arguments, hid_t);
/* Flush the dataset */
if(H5D__flush(dset, dset_id) < 0)
@@ -1186,7 +1193,7 @@ H5VL__native_dataset_specific(void *obj, H5VL_dataset_specific_t specific_type,
case H5VL_DATASET_REFRESH:
{
- hid_t dset_id = va_arg(arguments, hid_t);
+ hid_t dset_id = HDva_arg(arguments, hid_t);
/* Refresh the dataset */
if((H5D__refresh(dset_id, dset)) < 0)
@@ -1218,13 +1225,13 @@ H5VL__native_dataset_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
void H5_ATTR_UNUSED **req, va_list arguments)
{
H5D_t *dset = NULL; /* Dataset */
- H5VL_dataset_optional_t optional_type = va_arg(arguments, H5VL_dataset_optional_t);
+ H5VL_native_dataset_optional_t optional_type = HDva_arg(arguments, H5VL_native_dataset_optional_t);
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
switch(optional_type) {
- case H5VL_DATASET_FORMAT_CONVERT:
+ case H5VL_NATIVE_DATASET_FORMAT_CONVERT:
{
dset = (H5D_t *)obj;
@@ -1259,9 +1266,9 @@ H5VL__native_dataset_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
break;
}
- case H5VL_DATASET_GET_CHUNK_INDEX_TYPE:
+ case H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE:
{
- H5D_chunk_index_t *idx_type = va_arg(arguments, H5D_chunk_index_t *);
+ H5D_chunk_index_t *idx_type = HDva_arg(arguments, H5D_chunk_index_t *);
dset = (H5D_t *)obj;
@@ -1275,10 +1282,10 @@ H5VL__native_dataset_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
break;
}
- case H5VL_DATASET_GET_CHUNK_STORAGE_SIZE:
+ case H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE:
{
- hsize_t *offset = va_arg(arguments, hsize_t *);
- hsize_t *chunk_nbytes = va_arg(arguments, hsize_t *);
+ hsize_t *offset = HDva_arg(arguments, hsize_t *);
+ hsize_t *chunk_nbytes = HDva_arg(arguments, hsize_t *);
dset = (H5D_t *)obj;
@@ -1293,11 +1300,11 @@ H5VL__native_dataset_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
break;
}
- case H5VL_DATASET_CHUNK_READ:
+ case H5VL_NATIVE_DATASET_CHUNK_READ:
{
- const hsize_t *offset = va_arg(arguments, hsize_t *);
- uint32_t *filters = va_arg(arguments, uint32_t *);
- void *buf = va_arg(arguments, void *);
+ const hsize_t *offset = HDva_arg(arguments, hsize_t *);
+ uint32_t *filters = HDva_arg(arguments, uint32_t *);
+ void *buf = HDva_arg(arguments, void *);
hsize_t offset_copy[H5O_LAYOUT_NDIMS]; /* Internal copy of chunk offset */
dset = (H5D_t *)obj;
@@ -1321,12 +1328,12 @@ H5VL__native_dataset_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
break;
}
- case H5VL_DATASET_CHUNK_WRITE:
+ case H5VL_NATIVE_DATASET_CHUNK_WRITE:
{
- uint32_t filters = va_arg(arguments, uint32_t);
- const hsize_t *offset = va_arg(arguments, const hsize_t *);
- uint32_t data_size_32 = va_arg(arguments, uint32_t);
- const void *buf = va_arg(arguments, const void *);
+ uint32_t filters = HDva_arg(arguments, uint32_t);
+ const hsize_t *offset = HDva_arg(arguments, const hsize_t *);
+ uint32_t data_size_32 = HDva_arg(arguments, uint32_t);
+ const void *buf = HDva_arg(arguments, const void *);
hsize_t offset_copy[H5O_LAYOUT_NDIMS]; /* Internal copy of chunk offset */
dset = (H5D_t *)obj;
@@ -1487,7 +1494,7 @@ H5VL__native_file_get(void *obj, H5VL_file_get_t get_type,
case H5VL_FILE_GET_FAPL:
{
H5P_genplist_t *new_plist; /* New property list */
- hid_t *plist_id = va_arg(arguments, hid_t *);
+ hid_t *plist_id = HDva_arg(arguments, hid_t *);
f = (H5F_t *)obj;
@@ -1504,7 +1511,7 @@ H5VL__native_file_get(void *obj, H5VL_file_get_t get_type,
case H5VL_FILE_GET_FCPL:
{
H5P_genplist_t *plist; /* Property list */
- hid_t *plist_id = va_arg(arguments, hid_t *);
+ hid_t *plist_id = HDva_arg(arguments, hid_t *);
f = (H5F_t *)obj;
if(NULL == (plist = (H5P_genplist_t *)H5I_object(f->shared->fcpl_id)))
@@ -1520,8 +1527,8 @@ H5VL__native_file_get(void *obj, H5VL_file_get_t get_type,
/* H5Fget_obj_count */
case H5VL_FILE_GET_OBJ_COUNT:
{
- unsigned types = va_arg(arguments, unsigned);
- ssize_t *ret = va_arg(arguments, ssize_t *);
+ unsigned types = HDva_arg(arguments, unsigned);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
size_t obj_count = 0; /* Number of opened objects */
f = (H5F_t *)obj;
@@ -1537,10 +1544,10 @@ H5VL__native_file_get(void *obj, H5VL_file_get_t get_type,
/* H5Fget_obj_ids */
case H5VL_FILE_GET_OBJ_IDS:
{
- unsigned types = va_arg(arguments, unsigned);
- size_t max_objs = va_arg(arguments, size_t);
- hid_t *oid_list = va_arg(arguments, hid_t *);
- ssize_t *ret = va_arg(arguments, ssize_t *);
+ unsigned types = HDva_arg(arguments, unsigned);
+ size_t max_objs = HDva_arg(arguments, size_t);
+ hid_t *oid_list = HDva_arg(arguments, hid_t *);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
size_t obj_count = 0; /* Number of opened objects */
f = (H5F_t *)obj;
@@ -1556,7 +1563,7 @@ H5VL__native_file_get(void *obj, H5VL_file_get_t get_type,
/* H5Fget_intent */
case H5VL_FILE_GET_INTENT:
{
- unsigned *intent_flags = va_arg(arguments, unsigned *);
+ unsigned *intent_flags = HDva_arg(arguments, unsigned *);
f = (H5F_t *)obj;
@@ -1585,10 +1592,10 @@ H5VL__native_file_get(void *obj, H5VL_file_get_t get_type,
/* H5Fget_name */
case H5VL_FILE_GET_NAME:
{
- H5I_type_t type = va_arg(arguments, H5I_type_t);
- size_t size = va_arg(arguments, size_t);
- char *name = va_arg(arguments, char *);
- ssize_t *ret = va_arg(arguments, ssize_t *);
+ H5I_type_t type = HDva_arg(arguments, H5I_type_t);
+ size_t size = HDva_arg(arguments, size_t);
+ char *name = HDva_arg(arguments, char *);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
size_t len;
if(NULL == (f = H5F__get_file(obj, type)))
@@ -1637,8 +1644,8 @@ H5VL__native_file_specific(void *obj, H5VL_file_specific_t specific_type,
/* H5Fflush */
case H5VL_FILE_FLUSH:
{
- H5I_type_t type = va_arg(arguments, H5I_type_t);
- H5F_scope_t scope = va_arg(arguments, H5F_scope_t);
+ H5I_type_t type = HDva_arg(arguments, H5I_type_t);
+ H5F_scope_t scope = HDva_arg(arguments, H5F_scope_t);
H5F_t *f = NULL; /* File to flush */
/* Get the file for the object */
@@ -1670,7 +1677,7 @@ H5VL__native_file_specific(void *obj, H5VL_file_specific_t specific_type,
/* H5Freopen */
case H5VL_FILE_REOPEN:
{
- void **ret = va_arg(arguments, void **);
+ void **ret = HDva_arg(arguments, void **);
H5F_t *new_file = NULL;
/* Reopen the file through the VOL connector */
@@ -1685,10 +1692,10 @@ H5VL__native_file_specific(void *obj, H5VL_file_specific_t specific_type,
/* H5Fmount */
case H5VL_FILE_MOUNT:
{
- H5I_type_t type = va_arg(arguments, H5I_type_t);
- const char *name = va_arg(arguments, const char *);
- H5F_t *child = va_arg(arguments, H5F_t *);
- hid_t plist_id = va_arg(arguments, hid_t);
+ H5I_type_t type = HDva_arg(arguments, H5I_type_t);
+ const char *name = HDva_arg(arguments, const char *);
+ H5F_t *child = HDva_arg(arguments, H5F_t *);
+ hid_t plist_id = HDva_arg(arguments, hid_t);
H5G_loc_t loc;
if(H5G_loc_real(obj, type, &loc) < 0)
@@ -1704,8 +1711,8 @@ H5VL__native_file_specific(void *obj, H5VL_file_specific_t specific_type,
/* H5Funmount */
case H5VL_FILE_UNMOUNT:
{
- H5I_type_t type = va_arg(arguments, H5I_type_t);
- const char *name = va_arg(arguments, const char *);
+ H5I_type_t type = HDva_arg(arguments, H5I_type_t);
+ const char *name = HDva_arg(arguments, const char *);
H5G_loc_t loc;
if(H5G_loc_real(obj, type, &loc) < 0)
@@ -1721,9 +1728,9 @@ H5VL__native_file_specific(void *obj, H5VL_file_specific_t specific_type,
/* H5Fis_accessible */
case H5VL_FILE_IS_ACCESSIBLE:
{
- hid_t fapl_id = va_arg(arguments, hid_t);
- const char *name = va_arg(arguments, const char *);
- htri_t *ret = va_arg(arguments, htri_t *);
+ hid_t fapl_id = HDva_arg(arguments, hid_t);
+ const char *name = HDva_arg(arguments, const char *);
+ htri_t *ret = HDva_arg(arguments, htri_t *);
/* Call private routine */
if((*ret = H5F__is_hdf5(name, fapl_id)) < 0)
@@ -1734,8 +1741,8 @@ H5VL__native_file_specific(void *obj, H5VL_file_specific_t specific_type,
/* H5Fcreate / H5Fopen */
case H5VL_FILE_CACHE_VOL_CONN:
{
- hid_t vol_id = va_arg(arguments, hid_t);
- void *vol_info = va_arg(arguments, void *);
+ hid_t vol_id = HDva_arg(arguments, hid_t);
+ void *vol_info = HDva_arg(arguments, void *);
/* Call private routine */
if(H5F__set_vol_conn((H5F_t *)obj, vol_id, vol_info) < 0)
@@ -1765,7 +1772,7 @@ static herr_t
H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR_UNUSED **req, va_list arguments)
{
H5F_t *f = NULL; /* File */
- H5VL_file_optional_t optional_type = va_arg(arguments, H5VL_file_optional_t);
+ H5VL_native_file_optional_t optional_type = HDva_arg(arguments, H5VL_native_file_optional_t);
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1773,11 +1780,11 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
f = (H5F_t *)obj;
switch(optional_type) {
/* H5Fget_filesize */
- case H5VL_FILE_GET_SIZE:
+ case H5VL_NATIVE_FILE_GET_SIZE:
{
haddr_t max_eof_eoa; /* Maximum of the EOA & EOF */
haddr_t base_addr; /* Base address for the file */
- hsize_t *size = va_arg(arguments, hsize_t *);
+ hsize_t *size = HDva_arg(arguments, hsize_t *);
/* Go get the actual file size */
if(H5F__get_max_eof_eoa(f, &max_eof_eoa) < 0)
@@ -1792,11 +1799,11 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fget_file_image */
- case H5VL_FILE_GET_FILE_IMAGE:
+ case H5VL_NATIVE_FILE_GET_FILE_IMAGE:
{
- void *buf_ptr = va_arg(arguments, void *);
- ssize_t *ret = va_arg(arguments, ssize_t *);
- size_t buf_len = va_arg(arguments, size_t );
+ void *buf_ptr = HDva_arg(arguments, void *);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
+ size_t buf_len = HDva_arg(arguments, size_t );
/* Do the actual work */
if((*ret = H5F__get_file_image(f, buf_ptr, buf_len)) < 0)
@@ -1805,10 +1812,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fget_freespace */
- case H5VL_FILE_GET_FREE_SPACE:
+ case H5VL_NATIVE_FILE_GET_FREE_SPACE:
{
hsize_t tot_space; /* Amount of free space in the file */
- hssize_t *ret = va_arg(arguments, hssize_t *);
+ hssize_t *ret = HDva_arg(arguments, hssize_t *);
/* Go get the actual amount of free space in the file */
if(H5MF_get_freespace(f, &tot_space, NULL) < 0)
@@ -1817,12 +1824,13 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_GET_FREE_SECTIONS:
+ /* H5Fget_free_sections */
+ case H5VL_NATIVE_FILE_GET_FREE_SECTIONS:
{
- H5F_sect_info_t *sect_info = va_arg(arguments, H5F_sect_info_t *);
- ssize_t *ret = va_arg(arguments, ssize_t *);
- H5F_mem_t type = va_arg(arguments, H5F_mem_t);
- size_t nsects = va_arg(arguments, size_t);
+ H5F_sect_info_t *sect_info = HDva_arg(arguments, H5F_sect_info_t *);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
+ H5F_mem_t type = HDva_arg(arguments, H5F_mem_t);
+ size_t nsects = HDva_arg(arguments, size_t);
/* Go get the free-space section information in the file */
if((*ret = H5MF_get_free_sections(f, type, nsects, sect_info)) < 0)
@@ -1830,11 +1838,11 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- /* H5Fget_info2 */
- case H5VL_FILE_GET_INFO:
+ /* H5Fget_info1/2 */
+ case H5VL_NATIVE_FILE_GET_INFO:
{
- H5I_type_t type = va_arg(arguments, H5I_type_t);
- H5F_info2_t *finfo = va_arg(arguments, H5F_info2_t *);
+ H5I_type_t type = HDva_arg(arguments, H5I_type_t);
+ H5F_info2_t *finfo = HDva_arg(arguments, H5F_info2_t *);
/* Get the file struct. This call is careful to not return the file pointer
* for the top file in a mount hierarchy.
@@ -1850,9 +1858,9 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fget_mdc_config */
- case H5VL_FILE_GET_MDC_CONF:
+ case H5VL_NATIVE_FILE_GET_MDC_CONF:
{
- H5AC_cache_config_t *config_ptr = va_arg(arguments, H5AC_cache_config_t *);
+ H5AC_cache_config_t *config_ptr = HDva_arg(arguments, H5AC_cache_config_t *);
/* Go get the resize configuration */
if(H5AC_get_cache_auto_resize_config(f->shared->cache, config_ptr) < 0)
@@ -1861,9 +1869,9 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fget_mdc_hit_rate */
- case H5VL_FILE_GET_MDC_HR:
+ case H5VL_NATIVE_FILE_GET_MDC_HR:
{
- double *hit_rate_ptr = va_arg(arguments, double *);
+ double *hit_rate_ptr = HDva_arg(arguments, double *);
/* Go get the current hit rate */
if(H5AC_get_cache_hit_rate(f->shared->cache, hit_rate_ptr) < 0)
@@ -1872,12 +1880,12 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fget_mdc_size */
- case H5VL_FILE_GET_MDC_SIZE:
+ case H5VL_NATIVE_FILE_GET_MDC_SIZE:
{
- size_t *max_size_ptr = va_arg(arguments, size_t *);
- size_t *min_clean_size_ptr = va_arg(arguments, size_t *);
- size_t *cur_size_ptr = va_arg(arguments, size_t *);
- int *cur_num_entries_ptr = va_arg(arguments, int *);
+ size_t *max_size_ptr = HDva_arg(arguments, size_t *);
+ size_t *min_clean_size_ptr = HDva_arg(arguments, size_t *);
+ size_t *cur_size_ptr = HDva_arg(arguments, size_t *);
+ int *cur_num_entries_ptr = HDva_arg(arguments, int *);
uint32_t cur_num_entries;
/* Go get the size data */
@@ -1891,10 +1899,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fget_vfd_handle */
- case H5VL_FILE_GET_VFD_HANDLE:
+ case H5VL_NATIVE_FILE_GET_VFD_HANDLE:
{
- void **file_handle = va_arg(arguments, void **);
- hid_t fapl_id = va_arg(arguments, hid_t);
+ void **file_handle = HDva_arg(arguments, void **);
+ hid_t fapl_id = HDva_arg(arguments, hid_t);
/* Retrieve the VFD handle for the file */
if(H5F_get_vfd_handle(f, fapl_id, file_handle) < 0)
@@ -1903,10 +1911,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Iget_file_id */
- case H5VL_FILE_GET_FILE_ID:
+ case H5VL_NATIVE_FILE_GET_FILE_ID:
{
- H5I_type_t type = va_arg(arguments, H5I_type_t);
- hid_t *file_id = va_arg(arguments, hid_t *);
+ H5I_type_t type = HDva_arg(arguments, H5I_type_t);
+ hid_t *file_id = HDva_arg(arguments, hid_t *);
if(NULL == (f = H5F__get_file(obj, type)))
HGOTO_ERROR(H5E_FILE, H5E_BADTYPE, FAIL, "not a file or file object")
@@ -1916,7 +1924,7 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Fclear_elink_file_cache */
- case H5VL_FILE_CLEAR_ELINK_CACHE:
+ case H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE:
{
/* Release the EFC */
if(f->shared->efc)
@@ -1926,7 +1934,7 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
}
/* H5Freset_mdc_hit_rate_stats */
- case H5VL_FILE_RESET_MDC_HIT_RATE:
+ case H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE:
{
/* Reset the hit rate statistic */
if(H5AC_reset_cache_hit_rate_stats(f->shared->cache) < 0)
@@ -1934,9 +1942,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_SET_MDC_CONFIG:
+ /* H5Fset_mdc_config */
+ case H5VL_NATIVE_FILE_SET_MDC_CONFIG:
{
- H5AC_cache_config_t *config_ptr = va_arg(arguments, H5AC_cache_config_t *);
+ H5AC_cache_config_t *config_ptr = HDva_arg(arguments, H5AC_cache_config_t *);
/* set the resize configuration */
if(H5AC_set_cache_auto_resize_config(f->shared->cache, config_ptr) < 0)
@@ -1944,9 +1953,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_GET_METADATA_READ_RETRY_INFO:
+ /* H5Fget_metadata_read_retry_info */
+ case H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO:
{
- H5F_retry_info_t *info = va_arg(arguments, H5F_retry_info_t *);
+ H5F_retry_info_t *info = HDva_arg(arguments, H5F_retry_info_t *);
if(H5F_get_metadata_read_retry_info(f, info) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "can't get metadata read retry info")
@@ -1954,7 +1964,8 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_START_SWMR_WRITE:
+ /* H5Fstart_swmr_write */
+ case H5VL_NATIVE_FILE_START_SWMR_WRITE:
{
if(H5F__start_swmr_write(f) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "can't start SWMR write")
@@ -1962,7 +1973,8 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_START_MDC_LOGGING:
+ /* H5Fstart_mdc_logging */
+ case H5VL_NATIVE_FILE_START_MDC_LOGGING:
{
/* Call mdc logging function */
if(H5C_start_logging(f->shared->cache) < 0)
@@ -1971,7 +1983,8 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_STOP_MDC_LOGGING:
+ /* H5Fstop_mdc_logging */
+ case H5VL_NATIVE_FILE_STOP_MDC_LOGGING:
{
/* Call mdc logging function */
if(H5C_stop_logging(f->shared->cache) < 0)
@@ -1980,10 +1993,11 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_GET_MDC_LOGGING_STATUS:
+ /* H5Fget_mdc_logging_status */
+ case H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS:
{
- hbool_t *is_enabled = va_arg(arguments, hbool_t *);
- hbool_t *is_currently_logging = va_arg(arguments, hbool_t *);
+ hbool_t *is_enabled = HDva_arg(arguments, hbool_t *);
+ hbool_t *is_currently_logging = HDva_arg(arguments, hbool_t *);
/* Call mdc logging function */
if(H5C_get_logging_status(f->shared->cache, is_enabled, is_currently_logging) < 0)
@@ -1992,7 +2006,8 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_FORMAT_CONVERT:
+ /* H5Fformat_convert */
+ case H5VL_NATIVE_FILE_FORMAT_CONVERT:
{
/* Convert the format */
if(H5F__format_convert(f) < 0)
@@ -2001,7 +2016,8 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_RESET_PAGE_BUFFERING_STATS:
+ /* H5Freset_page_buffering_stats */
+ case H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS:
{
/* Sanity check */
if(NULL == f->shared->page_buf)
@@ -2014,13 +2030,14 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_GET_PAGE_BUFFERING_STATS:
+ /* H5Fget_page_buffering_stats */
+ case H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS:
{
- unsigned *accesses = va_arg(arguments, unsigned *);
- unsigned *hits = va_arg(arguments, unsigned *);
- unsigned *misses = va_arg(arguments, unsigned *);
- unsigned *evictions = va_arg(arguments, unsigned *);
- unsigned *bypasses = va_arg(arguments, unsigned *);
+ unsigned *accesses = HDva_arg(arguments, unsigned *);
+ unsigned *hits = HDva_arg(arguments, unsigned *);
+ unsigned *misses = HDva_arg(arguments, unsigned *);
+ unsigned *evictions = HDva_arg(arguments, unsigned *);
+ unsigned *bypasses = HDva_arg(arguments, unsigned *);
/* Sanity check */
if(NULL == f->shared->page_buf)
@@ -2033,10 +2050,11 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_GET_MDC_IMAGE_INFO:
+ /* H5Fget_mdc_image_info */
+ case H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO:
{
- haddr_t *image_addr = va_arg(arguments, haddr_t *);
- hsize_t *image_len = va_arg(arguments, hsize_t *);
+ haddr_t *image_addr = HDva_arg(arguments, haddr_t *);
+ hsize_t *image_len = HDva_arg(arguments, hsize_t *);
/* Go get the address and size of the cache image */
if(H5AC_get_mdc_image_info(f->shared->cache, image_addr, image_len) < 0)
@@ -2045,9 +2063,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_GET_EOA:
+ /* H5Fget_eoa */
+ case H5VL_NATIVE_FILE_GET_EOA:
{
- haddr_t *eoa = va_arg(arguments, haddr_t *);
+ haddr_t *eoa = HDva_arg(arguments, haddr_t *);
haddr_t rel_eoa; /* Relative address of EOA */
/* Sanity check */
@@ -2069,9 +2088,10 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_INCR_FILESIZE:
+ /* H5Fincrement_filesize */
+ case H5VL_NATIVE_FILE_INCR_FILESIZE:
{
- hsize_t increment = va_arg(arguments, hsize_t);
+ hsize_t increment = HDva_arg(arguments, hsize_t);
haddr_t max_eof_eoa; /* Maximum of the relative EOA & EOF */
/* This public routine will work only for drivers with this feature enabled.*/
@@ -2090,10 +2110,11 @@ H5VL__native_file_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR
break;
}
- case H5VL_FILE_SET_LIBVER_BOUNDS:
+ /* H5Fset_latest_format, H5Fset_libver_bounds */
+ case H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS:
{
- H5F_libver_t low = va_arg(arguments, H5F_libver_t);
- H5F_libver_t high = va_arg(arguments, H5F_libver_t);
+ H5F_libver_t low = HDva_arg(arguments, H5F_libver_t);
+ H5F_libver_t high = HDva_arg(arguments, H5F_libver_t);
/* Call internal set_libver_bounds function */
if(H5F__set_libver_bounds(f, low, high) < 0)
@@ -2296,7 +2317,7 @@ H5VL__native_group_get(void *obj, H5VL_group_get_t get_type,
/* H5Gget_create_plist */
case H5VL_GROUP_GET_GCPL:
{
- hid_t *new_gcpl_id = va_arg(arguments, hid_t *);
+ hid_t *new_gcpl_id = HDva_arg(arguments, hid_t *);
H5G_t *grp = (H5G_t *)obj;
if((*new_gcpl_id = H5G_get_create_plist(grp)) < 0)
@@ -2307,8 +2328,8 @@ H5VL__native_group_get(void *obj, H5VL_group_get_t get_type,
/* H5Gget_info */
case H5VL_GROUP_GET_INFO:
{
- const H5VL_loc_params_t *loc_params = va_arg(arguments, const H5VL_loc_params_t *);
- H5G_info_t *group_info = va_arg(arguments, H5G_info_t *);
+ const H5VL_loc_params_t *loc_params = HDva_arg(arguments, const H5VL_loc_params_t *);
+ H5G_info_t *group_info = HDva_arg(arguments, H5G_info_t *);
H5G_loc_t loc;
if(H5G_loc_real(obj, loc_params->obj_type, &loc) < 0)
@@ -2371,7 +2392,7 @@ H5VL__native_group_specific(void *obj, H5VL_group_specific_t specific_type,
switch(specific_type) {
case H5VL_GROUP_FLUSH:
{
- hid_t group_id = va_arg(arguments, hid_t);
+ hid_t group_id = HDva_arg(arguments, hid_t);
/* Flush object's metadata to file */
if(H5O_flush_common(&grp->oloc, group_id) < 0)
@@ -2382,7 +2403,7 @@ H5VL__native_group_specific(void *obj, H5VL_group_specific_t specific_type,
case H5VL_GROUP_REFRESH:
{
- hid_t group_id = va_arg(arguments, hid_t);
+ hid_t group_id = HDva_arg(arguments, hid_t);
/* Call private function to refresh group object */
if((H5O_refresh_metadata(group_id, grp->oloc)) < 0)
@@ -2413,22 +2434,22 @@ static herr_t
H5VL__native_group_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
void H5_ATTR_UNUSED **req, va_list arguments)
{
- H5VL_group_optional_t optional_type;
+ H5VL_native_group_optional_t optional_type;
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
- optional_type = va_arg(arguments, H5VL_group_optional_t);
+ optional_type = HDva_arg(arguments, H5VL_native_group_optional_t);
switch(optional_type) {
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* H5Giterate (deprecated) */
- case H5VL_GROUP_ITERATE_OLD:
+ case H5VL_NATIVE_GROUP_ITERATE_OLD:
{
- const H5VL_loc_params_t *loc_params = va_arg(arguments, const H5VL_loc_params_t *);
- hsize_t idx = va_arg(arguments, hsize_t);
- hsize_t *last_obj = va_arg(arguments, hsize_t *);
- const H5G_link_iterate_t *lnk_op = va_arg(arguments, const H5G_link_iterate_t *);
- void *op_data = va_arg(arguments, void *);
+ const H5VL_loc_params_t *loc_params = HDva_arg(arguments, const H5VL_loc_params_t *);
+ hsize_t idx = HDva_arg(arguments, hsize_t);
+ hsize_t *last_obj = HDva_arg(arguments, hsize_t *);
+ const H5G_link_iterate_t *lnk_op = HDva_arg(arguments, const H5G_link_iterate_t *);
+ void *op_data = HDva_arg(arguments, void *);
H5G_loc_t grp_loc;
/* Get the location struct for the object */
@@ -2443,11 +2464,11 @@ H5VL__native_group_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
}
/* H5Gget_objinfo (deprecated) */
- case H5VL_GROUP_GET_OBJINFO:
+ case H5VL_NATIVE_GROUP_GET_OBJINFO:
{
- const H5VL_loc_params_t *loc_params = va_arg(arguments, const H5VL_loc_params_t *);
- hbool_t follow_link = va_arg(arguments, unsigned);
- H5G_stat_t *statbuf = va_arg(arguments, H5G_stat_t *);
+ const H5VL_loc_params_t *loc_params = HDva_arg(arguments, const H5VL_loc_params_t *);
+ hbool_t follow_link = HDva_arg(arguments, unsigned);
+ H5G_stat_t *statbuf = HDva_arg(arguments, H5G_stat_t *);
H5G_loc_t grp_loc;
/* Get the location struct for the object */
@@ -2460,6 +2481,15 @@ H5VL__native_group_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
break;
}
+#else
+ /* XXX: These cases only exist because they are the only group optional
+ * values and we can't have empty enums. Delete them when we have
+ * non-deprecated group optional enum values.
+ */
+ case H5VL_NATIVE_GROUP_ITERATE_OLD:
+ HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "H5VL_NATIVE_GROUP_ITERATE_OLD is not a valid value when the library is built without deprecated routines")
+ case H5VL_NATIVE_GROUP_GET_OBJINFO:
+ HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "H5VL_NATIVE_GROUP_GET_OBJINFO is not a valid value when the library is built without deprecated routines")
#endif /* H5_NO_DEPRECATED_SYMBOLS */
default:
@@ -2751,7 +2781,7 @@ H5VL__native_link_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_link_
/* H5Lget_info/H5Lget_info_by_idx */
case H5VL_LINK_GET_INFO:
{
- H5L_info_t *linfo = va_arg(arguments, H5L_info_t *);
+ H5L_info_t *linfo = HDva_arg(arguments, H5L_info_t *);
/* Get the link information */
if(loc_params->type == H5VL_OBJECT_BY_NAME) { /* H5Lget_info */
@@ -2771,9 +2801,9 @@ H5VL__native_link_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_link_
/* H5Lget_name_by_idx */
case H5VL_LINK_GET_NAME:
{
- char *name = va_arg(arguments, char *);
- size_t size = va_arg(arguments, size_t);
- ssize_t *ret = va_arg(arguments, ssize_t *);
+ char *name = HDva_arg(arguments, char *);
+ size_t size = HDva_arg(arguments, size_t);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
/* Get the link name */
if((*ret = H5L_get_name_by_idx(&loc, loc_params->loc_data.loc_by_idx.name, loc_params->loc_data.loc_by_idx.idx_type,
@@ -2786,8 +2816,8 @@ H5VL__native_link_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_link_
/* H5Lget_val/H5Lget_val_by_idx */
case H5VL_LINK_GET_VAL:
{
- void *buf = va_arg(arguments, void *);
- size_t size = va_arg(arguments, size_t);
+ void *buf = HDva_arg(arguments, void *);
+ size_t size = HDva_arg(arguments, size_t);
/* Get the link information */
if(loc_params->type == H5VL_OBJECT_BY_NAME) { /* H5Lget_val */
@@ -2839,7 +2869,7 @@ H5VL__native_link_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_
switch(specific_type) {
case H5VL_LINK_EXISTS:
{
- htri_t *ret = va_arg(arguments, htri_t *);
+ htri_t *ret = HDva_arg(arguments, htri_t *);
H5G_loc_t loc;
if(H5G_loc_real(obj, loc_params->obj_type, &loc) < 0)
@@ -2854,12 +2884,12 @@ H5VL__native_link_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_
case H5VL_LINK_ITER:
{
H5G_loc_t loc;
- hbool_t recursive = va_arg(arguments, int);
- H5_index_t idx_type = va_arg(arguments, H5_index_t);
- H5_iter_order_t order = va_arg(arguments, H5_iter_order_t);
- hsize_t *idx_p = va_arg(arguments, hsize_t *);
- H5L_iterate_t op = va_arg(arguments, H5L_iterate_t);
- void *op_data = va_arg(arguments, void *);
+ hbool_t recursive = HDva_arg(arguments, int);
+ H5_index_t idx_type = HDva_arg(arguments, H5_index_t);
+ H5_iter_order_t order = HDva_arg(arguments, H5_iter_order_t);
+ hsize_t *idx_p = HDva_arg(arguments, hsize_t *);
+ H5L_iterate_t op = HDva_arg(arguments, H5L_iterate_t);
+ void *op_data = HDva_arg(arguments, void *);
/* Get the location */
if(H5G_loc_real(obj, loc_params->obj_type, &loc) < 0)
@@ -3075,9 +3105,9 @@ H5VL__native_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_obj
/* H5Rget_region */
case H5VL_REF_GET_REGION:
{
- hid_t *ret = va_arg(arguments, hid_t *);
- H5R_type_t H5_ATTR_UNUSED ref_type = va_arg(arguments, H5R_type_t);
- void *ref = va_arg(arguments, void *);
+ hid_t *ret = HDva_arg(arguments, hid_t *);
+ H5R_type_t H5_ATTR_UNUSED ref_type = HDva_arg(arguments, H5R_type_t);
+ void *ref = HDva_arg(arguments, void *);
H5S_t *space = NULL; /* Dataspace object */
/* Get the dataspace with the correct region selected */
@@ -3094,9 +3124,9 @@ H5VL__native_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_obj
/* H5Rget_obj_type2 */
case H5VL_REF_GET_TYPE:
{
- H5O_type_t *obj_type = va_arg(arguments, H5O_type_t *);
- H5R_type_t ref_type = va_arg(arguments, H5R_type_t);
- void *ref = va_arg(arguments, void *);
+ H5O_type_t *obj_type = HDva_arg(arguments, H5O_type_t *);
+ H5R_type_t ref_type = HDva_arg(arguments, H5R_type_t);
+ void *ref = HDva_arg(arguments, void *);
/* Get the object information */
if(H5R__get_obj_type(loc.oloc->file, ref_type, ref, obj_type) < 0)
@@ -3107,11 +3137,11 @@ H5VL__native_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_obj
/* H5Rget_name */
case H5VL_REF_GET_NAME:
{
- ssize_t *ret = va_arg(arguments, ssize_t *);
- char *name = va_arg(arguments, char *);
- size_t size = va_arg(arguments, size_t);
- H5R_type_t ref_type = va_arg(arguments, H5R_type_t);
- void *ref = va_arg(arguments, void *);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
+ char *name = HDva_arg(arguments, char *);
+ size_t size = HDva_arg(arguments, size_t);
+ H5R_type_t ref_type = HDva_arg(arguments, H5R_type_t);
+ void *ref = HDva_arg(arguments, void *);
/* Get name */
if((*ret = H5R__get_name(loc.oloc->file, ref_type, ref, name, size)) < 0)
@@ -3122,9 +3152,9 @@ H5VL__native_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_obj
/* H5Iget_name */
case H5VL_ID_GET_NAME:
{
- ssize_t *ret = va_arg(arguments, ssize_t *);
- char *name = va_arg(arguments, char *);
- size_t size = va_arg(arguments, size_t);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
+ char *name = HDva_arg(arguments, char *);
+ size_t size = HDva_arg(arguments, size_t);
/* Retrieve object's name */
if((*ret = H5G_get_name(&loc, name, size, NULL)) < 0)
@@ -3167,7 +3197,7 @@ H5VL__native_object_specific(void *obj, const H5VL_loc_params_t *loc_params, H5V
/* H5Oincr_refcount / H5Odecr_refcount */
case H5VL_OBJECT_CHANGE_REF_COUNT:
{
- int update_ref = va_arg(arguments, int);
+ int update_ref = HDva_arg(arguments, int);
H5O_loc_t *oloc = loc.oloc;
if(H5O_link(oloc, update_ref) < 0)
@@ -3179,7 +3209,7 @@ H5VL__native_object_specific(void *obj, const H5VL_loc_params_t *loc_params, H5V
/* H5Oexists_by_name */
case H5VL_OBJECT_EXISTS:
{
- htri_t *ret = va_arg(arguments, htri_t *);
+ htri_t *ret = HDva_arg(arguments, htri_t *);
if(loc_params->type == H5VL_OBJECT_BY_NAME) {
/* Check if the object exists */
@@ -3193,11 +3223,11 @@ H5VL__native_object_specific(void *obj, const H5VL_loc_params_t *loc_params, H5V
case H5VL_OBJECT_VISIT:
{
- H5_index_t idx_type = va_arg(arguments, H5_index_t);
- H5_iter_order_t order = va_arg(arguments, H5_iter_order_t);
- H5O_iterate_t op = va_arg(arguments, H5O_iterate_t);
- void *op_data = va_arg(arguments, void *);
- unsigned fields = va_arg(arguments, unsigned);
+ H5_index_t idx_type = HDva_arg(arguments, H5_index_t);
+ H5_iter_order_t order = HDva_arg(arguments, H5_iter_order_t);
+ H5O_iterate_t op = HDva_arg(arguments, H5O_iterate_t);
+ void *op_data = HDva_arg(arguments, void *);
+ unsigned fields = HDva_arg(arguments, unsigned);
/* Call internal object visitation routine */
if(loc_params->type == H5VL_OBJECT_BY_SELF) {
@@ -3217,7 +3247,7 @@ H5VL__native_object_specific(void *obj, const H5VL_loc_params_t *loc_params, H5V
case H5VL_OBJECT_FLUSH:
{
- hid_t oid = va_arg(arguments, hid_t);
+ hid_t oid = HDva_arg(arguments, hid_t);
/* Flush the object's metadata */
if(H5O_flush(loc.oloc, oid) < 0)
@@ -3228,7 +3258,7 @@ H5VL__native_object_specific(void *obj, const H5VL_loc_params_t *loc_params, H5V
case H5VL_OBJECT_REFRESH:
{
- hid_t oid = va_arg(arguments, hid_t);
+ hid_t oid = HDva_arg(arguments, hid_t);
H5O_loc_t *oloc = loc.oloc;
/* Refresh the metadata */
@@ -3240,10 +3270,10 @@ H5VL__native_object_specific(void *obj, const H5VL_loc_params_t *loc_params, H5V
case H5VL_REF_CREATE:
{
- void *ref = va_arg(arguments, void *);
- const char *name = va_arg(arguments, char *);
- H5R_type_t ref_type = va_arg(arguments, H5R_type_t);
- hid_t space_id = va_arg(arguments, hid_t);
+ void *ref = HDva_arg(arguments, void *);
+ const char *name = HDva_arg(arguments, char *);
+ H5R_type_t ref_type = HDva_arg(arguments, H5R_type_t);
+ hid_t space_id = HDva_arg(arguments, hid_t);
H5S_t *space = NULL; /* Pointer to dataspace containing region */
if(space_id != (-1) && (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE))))
@@ -3282,8 +3312,8 @@ static herr_t
H5VL__native_object_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
void H5_ATTR_UNUSED **req, va_list arguments)
{
- H5VL_object_optional_t optional_type = va_arg(arguments, H5VL_object_optional_t);
- H5VL_loc_params_t *loc_params = va_arg(arguments, H5VL_loc_params_t *);
+ H5VL_native_object_optional_t optional_type = HDva_arg(arguments, H5VL_native_object_optional_t);
+ H5VL_loc_params_t *loc_params = HDva_arg(arguments, H5VL_loc_params_t *);
H5G_loc_t loc; /* Location of group */
herr_t ret_value = SUCCEED; /* Return value */
@@ -3294,10 +3324,10 @@ H5VL__native_object_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
switch(optional_type) {
/* H5Oget_info / H5Oget_info_by_name / H5Oget_info_by_idx */
- case H5VL_OBJECT_GET_INFO:
+ case H5VL_NATIVE_OBJECT_GET_INFO:
{
- H5O_info_t *obj_info = va_arg(arguments, H5O_info_t *);
- unsigned fields = va_arg(arguments, unsigned);
+ H5O_info_t *obj_info = HDva_arg(arguments, H5O_info_t *);
+ unsigned fields = HDva_arg(arguments, unsigned);
if(loc_params->type == H5VL_OBJECT_BY_SELF) { /* H5Oget_info */
/* Retrieve the object's information */
@@ -3342,11 +3372,11 @@ H5VL__native_object_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
}
/* H5Oget_comment / H5Oget_comment_by_name */
- case H5VL_OBJECT_GET_COMMENT:
+ case H5VL_NATIVE_OBJECT_GET_COMMENT:
{
- char *comment = va_arg(arguments, char *);
- size_t bufsize = va_arg(arguments, size_t);
- ssize_t *ret = va_arg(arguments, ssize_t *);
+ char *comment = HDva_arg(arguments, char *);
+ size_t bufsize = HDva_arg(arguments, size_t);
+ ssize_t *ret = HDva_arg(arguments, ssize_t *);
/* Retrieve the object's comment */
if(loc_params->type == H5VL_OBJECT_BY_SELF) { /* H5Oget_comment */
@@ -3363,9 +3393,9 @@ H5VL__native_object_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id,
}
/* H5Oset_comment */
- case H5VL_OBJECT_SET_COMMENT:
+ case H5VL_NATIVE_OBJECT_SET_COMMENT:
{
- const char *comment = va_arg(arguments, char *);
+ const char *comment = HDva_arg(arguments, char *);
if(loc_params->type == H5VL_OBJECT_BY_SELF) { /* H5Oset_comment */
/* (Re)set the object's comment */
@@ -3526,9 +3556,9 @@ H5VL__native_datatype_get(void *obj, H5VL_datatype_get_t get_type,
switch (get_type) {
case H5VL_DATATYPE_GET_BINARY:
{
- ssize_t *nalloc = va_arg(arguments, ssize_t *);
- void *buf = va_arg(arguments, void *);
- size_t size = va_arg(arguments, size_t);
+ ssize_t *nalloc = HDva_arg(arguments, ssize_t *);
+ void *buf = HDva_arg(arguments, void *);
+ size_t size = HDva_arg(arguments, size_t);
if(H5T_encode(dt, (unsigned char *)buf, &size) < 0)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't determine serialized length of datatype")
@@ -3540,7 +3570,7 @@ H5VL__native_datatype_get(void *obj, H5VL_datatype_get_t get_type,
/* H5Tget_create_plist */
case H5VL_DATATYPE_GET_TCPL:
{
- hid_t *ret_id = va_arg(arguments, hid_t *);
+ hid_t *ret_id = HDva_arg(arguments, hid_t *);
if(H5I_INVALID_HID == (*ret_id = H5T__get_create_plist(dt)))
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get object creation info");
@@ -3578,7 +3608,7 @@ H5VL__native_datatype_specific(void *obj, H5VL_datatype_specific_t specific_type
switch(specific_type) {
case H5VL_DATATYPE_FLUSH:
{
- hid_t type_id = va_arg(arguments, hid_t);
+ hid_t type_id = HDva_arg(arguments, hid_t);
/* To flush metadata and invoke flush callback if there is */
if (H5O_flush_common(&dt->oloc, type_id) < 0)
@@ -3589,7 +3619,7 @@ H5VL__native_datatype_specific(void *obj, H5VL_datatype_specific_t specific_type
case H5VL_DATATYPE_REFRESH:
{
- hid_t type_id = va_arg(arguments, hid_t);
+ hid_t type_id = HDva_arg(arguments, hid_t);
/* Call private function to refresh datatype object */
if ((H5O_refresh_metadata(type_id, dt->oloc)) < 0)
diff --git a/src/H5VLpassthru.c b/src/H5VLpassthru.c
index a93ac9a..49102d7 100644
--- a/src/H5VLpassthru.c
+++ b/src/H5VLpassthru.c
@@ -11,14 +11,14 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Purpose: This is a "pass through" VOL connector, which forwards each
- * VOL callback to an underlying connector.
- *
- * It is designed as an example VOL connector for developers to
- * use when creating new connectors, especially connectors that
- * are outside of the HDF5 library. As such, it should _NOT_
- * include _any_ private HDF5 header files. This connector should
- * therefore only make public HDF5 API calls and use standard C /
+ * Purpose: This is a "pass through" VOL connector, which forwards each
+ * VOL callback to an underlying connector.
+ *
+ * It is designed as an example VOL connector for developers to
+ * use when creating new connectors, especially connectors that
+ * are outside of the HDF5 library. As such, it should _NOT_
+ * include _any_ private HDF5 header files. This connector should
+ * therefore only make public HDF5 API calls and use standard C /
* POSIX calls.
*/
@@ -39,8 +39,14 @@
/* Whether to display log messge when callback is invoked */
/* (Uncomment to enable) */
-/* #define ENABLE_LOGGING */
+/* #define ENABLE_PASSTHRU_LOGGING */
+/* Hack for missing va_copy() in old Visual Studio editions
+ * (from H5win2_defs.h - used on VS2012 and earlier)
+ */
+#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER < 1800)
+#define va_copy(D,S) ((D) = (S))
+#endif
/************/
/* Typedefs */
@@ -161,7 +167,7 @@ static herr_t H5VL_pass_through_request_free(void *req);
static const H5VL_class_t H5VL_pass_through_g = {
H5VL_PASSTHRU_VERSION, /* version */
(H5VL_class_value_t)H5VL_PASSTHRU_VALUE, /* value */
- H5VL_PASSTHRU_NAME, /* name */
+ H5VL_PASSTHRU_NAME, /* name */
0, /* capability flags */
H5VL_pass_through_init, /* initialize */
H5VL_pass_through_term, /* terminate */
@@ -252,10 +258,10 @@ static hid_t H5VL_PASSTHRU_g = H5I_INVALID_HID;
/*-------------------------------------------------------------------------
* Function: H5VL__pass_through_new_obj
*
- * Purpose: Create a new pass through object for an underlying object
+ * Purpose: Create a new pass through object for an underlying object
*
- * Return: Success: Pointer to the new pass through object
- * Failure: NULL
+ * Return: Success: Pointer to the new pass through object
+ * Failure: NULL
*
* Programmer: Quincey Koziol
* Monday, December 3, 2018
@@ -272,17 +278,17 @@ H5VL_pass_through_new_obj(void *under_obj, hid_t under_vol_id)
new_obj->under_vol_id = under_vol_id;
H5Iinc_ref(new_obj->under_vol_id);
- return(new_obj);
+ return new_obj;
} /* end H5VL__pass_through_new_obj() */
/*-------------------------------------------------------------------------
* Function: H5VL__pass_through_free_obj
*
- * Purpose: Release a pass through object
+ * Purpose: Release a pass through object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
* Programmer: Quincey Koziol
* Monday, December 3, 2018
@@ -295,18 +301,18 @@ H5VL_pass_through_free_obj(H5VL_pass_through_t *obj)
H5Idec_ref(obj->under_vol_id);
free(obj);
- return(0);
+ return 0;
} /* end H5VL__pass_through_free_obj() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_register
*
- * Purpose: Register the pass-through VOL connector and retrieve an ID
- * for it.
+ * Purpose: Register the pass-through VOL connector and retrieve an ID
+ * for it.
*
- * Return: Success: The ID for the pass-through VOL connector
- * Failure: -1
+ * Return: Success: The ID for the pass-through VOL connector
+ * Failure: -1
*
* Programmer: Quincey Koziol
* Wednesday, November 28, 2018
@@ -323,7 +329,7 @@ H5VL_pass_through_register(void)
if(H5I_VOL != H5Iget_type(H5VL_PASSTHRU_g))
H5VL_PASSTHRU_g = H5VLregister_connector(&H5VL_pass_through_g, H5P_DEFAULT);
- return(H5VL_PASSTHRU_g);
+ return H5VL_PASSTHRU_g;
} /* end H5VL_pass_through_register() */
@@ -331,25 +337,25 @@ H5VL_pass_through_register(void)
* Function: H5VL_pass_through_init
*
* Purpose: Initialize this VOL connector, performing any necessary
- * operations for the connector that will apply to all containers
+ * operations for the connector that will apply to all containers
* accessed with the connector.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
static herr_t
H5VL_pass_through_init(hid_t vipl_id)
{
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL INIT\n");
#endif
/* Shut compiler up about unused parameter */
vipl_id = vipl_id;
- return(0);
+ return 0;
} /* end H5VL_pass_through_init() */
@@ -357,26 +363,26 @@ H5VL_pass_through_init(hid_t vipl_id)
* Function: H5VL_pass_through_term
*
* Purpose: Terminate this VOL connector, performing any necessary
- * operations for the connector that release connector-wide
- * resources (usually created / initialized with the 'init'
- * callback).
+ * operations for the connector that release connector-wide
+ * resources (usually created / initialized with the 'init'
+ * callback).
*
- * Return: Success: 0
- * Failure: (Can't fail)
+ * Return: Success: 0
+ * Failure: (Can't fail)
*
*---------------------------------------------------------------------------
*/
static herr_t
H5VL_pass_through_term(void)
{
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL TERM\n");
#endif
/* Reset VOL ID */
H5VL_PASSTHRU_g = H5I_INVALID_HID;
- return(0);
+ return 0;
} /* end H5VL_pass_through_term() */
@@ -385,8 +391,8 @@ H5VL_pass_through_term(void)
*
* Purpose: Duplicate the connector's info object.
*
- * Returns: Success: New connector info object
- * Failure: NULL
+ * Returns: Success: New connector info object
+ * Failure: NULL
*
*---------------------------------------------------------------------------
*/
@@ -396,7 +402,7 @@ H5VL_pass_through_info_copy(const void *_info)
const H5VL_pass_through_info_t *info = (const H5VL_pass_through_info_t *)_info;
H5VL_pass_through_info_t *new_info;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL INFO Copy\n");
#endif
@@ -409,7 +415,7 @@ H5VL_pass_through_info_copy(const void *_info)
if(info->under_vol_info)
H5VLcopy_connector_info(new_info->under_vol_id, &(new_info->under_vol_info), info->under_vol_info);
- return(new_info);
+ return new_info;
} /* end H5VL_pass_through_info_copy() */
@@ -417,10 +423,10 @@ H5VL_pass_through_info_copy(const void *_info)
* Function: H5VL_pass_through_info_cmp
*
* Purpose: Compare two of the connector's info objects, setting *cmp_value,
- * following the same rules as strcmp().
+ * following the same rules as strcmp().
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -430,7 +436,7 @@ H5VL_pass_through_info_cmp(int *cmp_value, const void *_info1, const void *_info
const H5VL_pass_through_info_t *info1 = (const H5VL_pass_through_info_t *)_info1;
const H5VL_pass_through_info_t *info2 = (const H5VL_pass_through_info_t *)_info2;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL INFO Compare\n");
#endif
@@ -444,14 +450,14 @@ H5VL_pass_through_info_cmp(int *cmp_value, const void *_info1, const void *_info
/* Compare under VOL connector classes */
H5VLcmp_connector_cls(cmp_value, info1->under_vol_id, info2->under_vol_id);
if(*cmp_value != 0)
- return(0);
+ return 0;
/* Compare under VOL connector info objects */
H5VLcmp_connector_info(cmp_value, info1->under_vol_id, info1->under_vol_info, info2->under_vol_info);
if(*cmp_value != 0)
- return(0);
+ return 0;
- return(0);
+ return 0;
} /* end H5VL_pass_through_info_cmp() */
@@ -460,8 +466,8 @@ H5VL_pass_through_info_cmp(int *cmp_value, const void *_info1, const void *_info
*
* Purpose: Release an info object for the connector.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -470,7 +476,7 @@ H5VL_pass_through_info_free(void *_info)
{
H5VL_pass_through_info_t *info = (H5VL_pass_through_info_t *)_info;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL INFO Free\n");
#endif
@@ -482,7 +488,7 @@ H5VL_pass_through_info_free(void *_info)
/* Free pass through info object itself */
free(info);
- return(0);
+ return 0;
} /* end H5VL_pass_through_info_free() */
@@ -491,8 +497,8 @@ H5VL_pass_through_info_free(void *_info)
*
* Purpose: Serialize an info object for this connector into a string
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -504,7 +510,7 @@ H5VL_pass_through_info_to_str(const void *_info, char **str)
char *under_vol_string = NULL;
size_t under_vol_str_len = 0;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL INFO To String\n");
#endif
@@ -520,10 +526,14 @@ H5VL_pass_through_info_to_str(const void *_info, char **str)
*str = (char *)H5allocate_memory(32 + under_vol_str_len, (hbool_t)0);
assert(*str);
- /* Encode our info */
- snprintf(*str, 32 + under_vol_str_len, "under_vol=%u;under_info={%s}", (unsigned)under_value, (under_vol_string ? under_vol_string : ""));
+ /* Encode our info
+ * Normally we'd use snprintf() here for a little extra safety, but that
+ * call had problems on Windows until recently. So, to be as platform-independent
+ * as we can, we're using sprintf() instead.
+ */
+ sprintf(*str, "under_vol=%u;under_info={%s}", (unsigned)under_value, (under_vol_string ? under_vol_string : ""));
- return(0);
+ return 0;
} /* end H5VL_pass_through_info_to_str() */
@@ -532,8 +542,8 @@ H5VL_pass_through_info_to_str(const void *_info, char **str)
*
* Purpose: Deserialize a string into an info object for this connector.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -546,7 +556,7 @@ H5VL_pass_through_str_to_info(const char *str, void **_info)
hid_t under_vol_id;
void *under_vol_info = NULL;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL INFO String To Info\n");
#endif
@@ -576,7 +586,7 @@ H5VL_pass_through_str_to_info(const char *str, void **_info)
/* Set return value */
*_info = info;
- return(0);
+ return 0;
} /* end H5VL_pass_through_str_to_info() */
@@ -585,8 +595,8 @@ H5VL_pass_through_str_to_info(const char *str, void **_info)
*
* Purpose: Retrieve the 'data' for a VOL object.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -595,11 +605,11 @@ H5VL_pass_through_get_object(const void *obj)
{
const H5VL_pass_through_t *o = (const H5VL_pass_through_t *)obj;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL Get object\n");
#endif
- return(H5VLget_object(o->under_object, o->under_vol_id));
+ return H5VLget_object(o->under_object, o->under_vol_id);
} /* end H5VL_pass_through_get_object() */
@@ -608,8 +618,8 @@ H5VL_pass_through_get_object(const void *obj)
*
* Purpose: Retrieve a "wrapper context" for an object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -619,7 +629,7 @@ H5VL_pass_through_get_wrap_ctx(const void *obj, void **wrap_ctx)
const H5VL_pass_through_t *o = (const H5VL_pass_through_t *)obj;
H5VL_pass_through_wrap_ctx_t *new_wrap_ctx;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL WRAP CTX Get\n");
#endif
@@ -634,7 +644,7 @@ H5VL_pass_through_get_wrap_ctx(const void *obj, void **wrap_ctx)
/* Set wrap context to return */
*wrap_ctx = new_wrap_ctx;
- return(0);
+ return 0;
} /* end H5VL_pass_through_get_wrap_ctx() */
@@ -643,8 +653,8 @@ H5VL_pass_through_get_wrap_ctx(const void *obj, void **wrap_ctx)
*
* Purpose: Use a "wrapper context" to wrap a data object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -655,7 +665,7 @@ H5VL_pass_through_wrap_object(void *obj, void *_wrap_ctx)
H5VL_pass_through_t *new_obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL WRAP Object\n");
#endif
@@ -666,7 +676,7 @@ H5VL_pass_through_wrap_object(void *obj, void *_wrap_ctx)
else
new_obj = NULL;
- return(new_obj);
+ return new_obj;
} /* end H5VL_pass_through_wrap_object() */
@@ -675,8 +685,8 @@ H5VL_pass_through_wrap_object(void *obj, void *_wrap_ctx)
*
* Purpose: Release a "wrapper context" for an object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*---------------------------------------------------------------------------
*/
@@ -685,7 +695,7 @@ H5VL_pass_through_free_wrap_ctx(void *_wrap_ctx)
{
H5VL_pass_through_wrap_ctx_t *wrap_ctx = (H5VL_pass_through_wrap_ctx_t *)_wrap_ctx;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL WRAP CTX Free\n");
#endif
@@ -697,17 +707,17 @@ H5VL_pass_through_free_wrap_ctx(void *_wrap_ctx)
/* Free pass through wrap context object itself */
free(wrap_ctx);
- return(0);
+ return 0;
} /* end H5VL_pass_through_free_wrap_ctx() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_create
+ * Function: H5VL_pass_through_attr_create
*
- * Purpose: Creates an attribute on an object.
+ * Purpose: Creates an attribute on an object.
*
- * Return: Success: Pointer to attribute object
- * Failure: NULL
+ * Return: Success: Pointer to attribute object
+ * Failure: NULL
*
*-------------------------------------------------------------------------
*/
@@ -719,7 +729,7 @@ H5VL_pass_through_attr_create(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Create\n");
#endif
@@ -734,17 +744,17 @@ H5VL_pass_through_attr_create(void *obj, const H5VL_loc_params_t *loc_params,
else
attr = NULL;
- return((void*)attr);
+ return (void*)attr;
} /* end H5VL_pass_through_attr_create() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_open
+ * Function: H5VL_pass_through_attr_open
*
- * Purpose: Opens an attribute on an object.
+ * Purpose: Opens an attribute on an object.
*
- * Return: Success: Pointer to attribute object
- * Failure: NULL
+ * Return: Success: Pointer to attribute object
+ * Failure: NULL
*
*-------------------------------------------------------------------------
*/
@@ -756,7 +766,7 @@ H5VL_pass_through_attr_open(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Open\n");
#endif
@@ -771,17 +781,17 @@ H5VL_pass_through_attr_open(void *obj, const H5VL_loc_params_t *loc_params,
else
attr = NULL;
- return((void *)attr);
+ return (void *)attr;
} /* end H5VL_pass_through_attr_open() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_read
+ * Function: H5VL_pass_through_attr_read
*
- * Purpose: Reads data from attribute.
+ * Purpose: Reads data from attribute.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -792,7 +802,7 @@ H5VL_pass_through_attr_read(void *attr, hid_t mem_type_id, void *buf,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)attr;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Read\n");
#endif
@@ -802,17 +812,17 @@ H5VL_pass_through_attr_read(void *attr, hid_t mem_type_id, void *buf,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_attr_read() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_write
+ * Function: H5VL_pass_through_attr_write
*
- * Purpose: Writes data to attribute.
+ * Purpose: Writes data to attribute.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -823,7 +833,7 @@ H5VL_pass_through_attr_write(void *attr, hid_t mem_type_id, const void *buf,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)attr;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Write\n");
#endif
@@ -833,17 +843,17 @@ H5VL_pass_through_attr_write(void *attr, hid_t mem_type_id, const void *buf,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_attr_write() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_get
+ * Function: H5VL_pass_through_attr_get
*
- * Purpose: Gets information about an attribute
+ * Purpose: Gets information about an attribute
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -854,7 +864,7 @@ H5VL_pass_through_attr_get(void *obj, H5VL_attr_get_t get_type, hid_t dxpl_id,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Get\n");
#endif
@@ -864,17 +874,17 @@ H5VL_pass_through_attr_get(void *obj, H5VL_attr_get_t get_type, hid_t dxpl_id,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_attr_get() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_specific
+ * Function: H5VL_pass_through_attr_specific
*
- * Purpose: Specific operation on attribute
+ * Purpose: Specific operation on attribute
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -885,7 +895,7 @@ H5VL_pass_through_attr_specific(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Specific\n");
#endif
@@ -895,7 +905,7 @@ H5VL_pass_through_attr_specific(void *obj, const H5VL_loc_params_t *loc_params,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_attr_specific() */
@@ -904,8 +914,8 @@ H5VL_pass_through_attr_specific(void *obj, const H5VL_loc_params_t *loc_params,
*
* Purpose: Perform a connector-specific operation on an attribute
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -916,7 +926,7 @@ H5VL_pass_through_attr_optional(void *obj, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Optional\n");
#endif
@@ -926,17 +936,17 @@ H5VL_pass_through_attr_optional(void *obj, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_attr_optional() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_attr_close
+ * Function: H5VL_pass_through_attr_close
*
- * Purpose: Closes an attribute.
+ * Purpose: Closes an attribute.
*
- * Return: Success: 0
- * Failure: -1, attr not closed.
+ * Return: Success: 0
+ * Failure: -1, attr not closed.
*
*-------------------------------------------------------------------------
*/
@@ -946,7 +956,7 @@ H5VL_pass_through_attr_close(void *attr, hid_t dxpl_id, void **req)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)attr;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL ATTRIBUTE Close\n");
#endif
@@ -960,7 +970,7 @@ H5VL_pass_through_attr_close(void *attr, hid_t dxpl_id, void **req)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_attr_close() */
@@ -982,7 +992,7 @@ H5VL_pass_through_dataset_create(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Create\n");
#endif
@@ -997,7 +1007,7 @@ H5VL_pass_through_dataset_create(void *obj, const H5VL_loc_params_t *loc_params,
else
dset = NULL;
- return((void *)dset);
+ return (void *)dset;
} /* end H5VL_pass_through_dataset_create() */
@@ -1019,7 +1029,7 @@ H5VL_pass_through_dataset_open(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Open\n");
#endif
@@ -1034,7 +1044,7 @@ H5VL_pass_through_dataset_open(void *obj, const H5VL_loc_params_t *loc_params,
else
dset = NULL;
- return((void *)dset);
+ return (void *)dset;
} /* end H5VL_pass_through_dataset_open() */
@@ -1043,8 +1053,8 @@ H5VL_pass_through_dataset_open(void *obj, const H5VL_loc_params_t *loc_params,
*
* Purpose: Reads data elements from a dataset into a buffer.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1055,7 +1065,7 @@ H5VL_pass_through_dataset_read(void *dset, hid_t mem_type_id, hid_t mem_space_id
H5VL_pass_through_t *o = (H5VL_pass_through_t *)dset;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Read\n");
#endif
@@ -1065,7 +1075,7 @@ H5VL_pass_through_dataset_read(void *dset, hid_t mem_type_id, hid_t mem_space_id
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_dataset_read() */
@@ -1074,8 +1084,8 @@ H5VL_pass_through_dataset_read(void *dset, hid_t mem_type_id, hid_t mem_space_id
*
* Purpose: Writes data elements from a buffer into a dataset.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1086,7 +1096,7 @@ H5VL_pass_through_dataset_write(void *dset, hid_t mem_type_id, hid_t mem_space_i
H5VL_pass_through_t *o = (H5VL_pass_through_t *)dset;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Write\n");
#endif
@@ -1096,7 +1106,7 @@ H5VL_pass_through_dataset_write(void *dset, hid_t mem_type_id, hid_t mem_space_i
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_dataset_write() */
@@ -1105,8 +1115,8 @@ H5VL_pass_through_dataset_write(void *dset, hid_t mem_type_id, hid_t mem_space_i
*
* Purpose: Gets information about a dataset
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1117,7 +1127,7 @@ H5VL_pass_through_dataset_get(void *dset, H5VL_dataset_get_t get_type,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)dset;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Get\n");
#endif
@@ -1127,17 +1137,17 @@ H5VL_pass_through_dataset_get(void *dset, H5VL_dataset_get_t get_type,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_dataset_get() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_dataset_specific
*
- * Purpose: Specific operation on a dataset
+ * Purpose: Specific operation on a dataset
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1148,7 +1158,7 @@ H5VL_pass_through_dataset_specific(void *obj, H5VL_dataset_specific_t specific_t
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL H5Dspecific\n");
#endif
@@ -1158,7 +1168,7 @@ H5VL_pass_through_dataset_specific(void *obj, H5VL_dataset_specific_t specific_t
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_dataset_specific() */
@@ -1167,8 +1177,8 @@ H5VL_pass_through_dataset_specific(void *obj, H5VL_dataset_specific_t specific_t
*
* Purpose: Perform a connector-specific operation on a dataset
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1179,7 +1189,7 @@ H5VL_pass_through_dataset_optional(void *obj, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Optional\n");
#endif
@@ -1189,7 +1199,7 @@ H5VL_pass_through_dataset_optional(void *obj, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_dataset_optional() */
@@ -1198,8 +1208,8 @@ H5VL_pass_through_dataset_optional(void *obj, hid_t dxpl_id, void **req,
*
* Purpose: Closes a dataset.
*
- * Return: Success: 0
- * Failure: -1, dataset not closed.
+ * Return: Success: 0
+ * Failure: -1, dataset not closed.
*
*-------------------------------------------------------------------------
*/
@@ -1209,7 +1219,7 @@ H5VL_pass_through_dataset_close(void *dset, hid_t dxpl_id, void **req)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)dset;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATASET Close\n");
#endif
@@ -1223,17 +1233,17 @@ H5VL_pass_through_dataset_close(void *dset, hid_t dxpl_id, void **req)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_dataset_close() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_datatype_commit
+ * Function: H5VL_pass_through_datatype_commit
*
- * Purpose: Commits a datatype inside a container.
+ * Purpose: Commits a datatype inside a container.
*
- * Return: Success: Pointer to datatype object
- * Failure: NULL
+ * Return: Success: Pointer to datatype object
+ * Failure: NULL
*
*-------------------------------------------------------------------------
*/
@@ -1246,7 +1256,7 @@ H5VL_pass_through_datatype_commit(void *obj, const H5VL_loc_params_t *loc_params
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATATYPE Commit\n");
#endif
@@ -1261,7 +1271,7 @@ H5VL_pass_through_datatype_commit(void *obj, const H5VL_loc_params_t *loc_params
else
dt = NULL;
- return((void *)dt);
+ return (void *)dt;
} /* end H5VL_pass_through_datatype_commit() */
@@ -1283,7 +1293,7 @@ H5VL_pass_through_datatype_open(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATATYPE Open\n");
#endif
@@ -1298,17 +1308,17 @@ H5VL_pass_through_datatype_open(void *obj, const H5VL_loc_params_t *loc_params,
else
dt = NULL;
- return((void *)dt);
+ return (void *)dt;
} /* end H5VL_pass_through_datatype_open() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_datatype_get
+ * Function: H5VL_pass_through_datatype_get
*
- * Purpose: Get information about a datatype
+ * Purpose: Get information about a datatype
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1319,7 +1329,7 @@ H5VL_pass_through_datatype_get(void *dt, H5VL_datatype_get_t get_type,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)dt;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATATYPE Get\n");
#endif
@@ -1329,7 +1339,7 @@ H5VL_pass_through_datatype_get(void *dt, H5VL_datatype_get_t get_type,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_datatype_get() */
@@ -1338,8 +1348,8 @@ H5VL_pass_through_datatype_get(void *dt, H5VL_datatype_get_t get_type,
*
* Purpose: Specific operations for datatypes
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1350,7 +1360,7 @@ H5VL_pass_through_datatype_specific(void *obj, H5VL_datatype_specific_t specific
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATATYPE Specific\n");
#endif
@@ -1360,7 +1370,7 @@ H5VL_pass_through_datatype_specific(void *obj, H5VL_datatype_specific_t specific
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_datatype_specific() */
@@ -1369,8 +1379,8 @@ H5VL_pass_through_datatype_specific(void *obj, H5VL_datatype_specific_t specific
*
* Purpose: Perform a connector-specific operation on a datatype
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1381,7 +1391,7 @@ H5VL_pass_through_datatype_optional(void *obj, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATATYPE Optional\n");
#endif
@@ -1391,17 +1401,17 @@ H5VL_pass_through_datatype_optional(void *obj, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_datatype_optional() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_datatype_close
+ * Function: H5VL_pass_through_datatype_close
*
- * Purpose: Closes a datatype.
+ * Purpose: Closes a datatype.
*
- * Return: Success: 0
- * Failure: -1, datatype not closed.
+ * Return: Success: 0
+ * Failure: -1, datatype not closed.
*
*-------------------------------------------------------------------------
*/
@@ -1411,7 +1421,7 @@ H5VL_pass_through_datatype_close(void *dt, hid_t dxpl_id, void **req)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)dt;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL DATATYPE Close\n");
#endif
@@ -1427,7 +1437,7 @@ H5VL_pass_through_datatype_close(void *dt, hid_t dxpl_id, void **req)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_datatype_close() */
@@ -1450,7 +1460,7 @@ H5VL_pass_through_file_create(const char *name, unsigned flags, hid_t fcpl_id,
hid_t under_fapl_id;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL FILE Create\n");
#endif
@@ -1481,7 +1491,7 @@ H5VL_pass_through_file_create(const char *name, unsigned flags, hid_t fcpl_id,
/* Release copy of our VOL info */
H5VL_pass_through_info_free(info);
- return((void *)file);
+ return (void *)file;
} /* end H5VL_pass_through_file_create() */
@@ -1504,7 +1514,7 @@ H5VL_pass_through_file_open(const char *name, unsigned flags, hid_t fapl_id,
hid_t under_fapl_id;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL FILE Open\n");
#endif
@@ -1535,7 +1545,7 @@ H5VL_pass_through_file_open(const char *name, unsigned flags, hid_t fapl_id,
/* Release copy of our VOL info */
H5VL_pass_through_info_free(info);
- return((void *)file);
+ return (void *)file;
} /* end H5VL_pass_through_file_open() */
@@ -1544,8 +1554,8 @@ H5VL_pass_through_file_open(const char *name, unsigned flags, hid_t fapl_id,
*
* Purpose: Get info about a file
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1556,7 +1566,7 @@ H5VL_pass_through_file_get(void *file, H5VL_file_get_t get_type, hid_t dxpl_id,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)file;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL FILE Get\n");
#endif
@@ -1566,18 +1576,18 @@ H5VL_pass_through_file_get(void *file, H5VL_file_get_t get_type, hid_t dxpl_id,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_file_get() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_file_specific_reissue
*
- * Purpose: Re-wrap vararg arguments into a va_list and reissue the
- * file specific callback to the underlying VOL connector.
+ * Purpose: Re-wrap vararg arguments into a va_list and reissue the
+ * file specific callback to the underlying VOL connector.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1592,17 +1602,17 @@ H5VL_pass_through_file_specific_reissue(void *obj, hid_t connector_id,
ret_value = H5VLfile_specific(obj, connector_id, specific_type, dxpl_id, req, arguments);
va_end(arguments);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_file_specific_reissue() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_file_specific
*
- * Purpose: Specific operation on file
+ * Purpose: Specific operation on file
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1614,7 +1624,7 @@ H5VL_pass_through_file_specific(void *file, H5VL_file_specific_t specific_type,
hid_t under_vol_id = -1;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL FILE Specific\n");
#endif
@@ -1699,7 +1709,7 @@ H5VL_pass_through_file_specific(void *file, H5VL_file_specific_t specific_type,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_file_specific() */
@@ -1708,8 +1718,8 @@ H5VL_pass_through_file_specific(void *file, H5VL_file_specific_t specific_type,
*
* Purpose: Perform a connector-specific operation on a file
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1720,7 +1730,7 @@ H5VL_pass_through_file_optional(void *file, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)file;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL File Optional\n");
#endif
@@ -1730,7 +1740,7 @@ H5VL_pass_through_file_optional(void *file, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_file_optional() */
@@ -1739,8 +1749,8 @@ H5VL_pass_through_file_optional(void *file, hid_t dxpl_id, void **req,
*
* Purpose: Closes a file.
*
- * Return: Success: 0
- * Failure: -1, file not closed.
+ * Return: Success: 0
+ * Failure: -1, file not closed.
*
*-------------------------------------------------------------------------
*/
@@ -1750,7 +1760,7 @@ H5VL_pass_through_file_close(void *file, hid_t dxpl_id, void **req)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)file;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL FILE Close\n");
#endif
@@ -1764,7 +1774,7 @@ H5VL_pass_through_file_close(void *file, hid_t dxpl_id, void **req)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_file_close() */
@@ -1786,7 +1796,7 @@ H5VL_pass_through_group_create(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL GROUP Create\n");
#endif
@@ -1801,7 +1811,7 @@ H5VL_pass_through_group_create(void *obj, const H5VL_loc_params_t *loc_params,
else
group = NULL;
- return((void *)group);
+ return (void *)group;
} /* end H5VL_pass_through_group_create() */
@@ -1823,7 +1833,7 @@ H5VL_pass_through_group_open(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL GROUP Open\n");
#endif
@@ -1838,7 +1848,7 @@ H5VL_pass_through_group_open(void *obj, const H5VL_loc_params_t *loc_params,
else
group = NULL;
- return((void *)group);
+ return (void *)group;
} /* end H5VL_pass_through_group_open() */
@@ -1847,8 +1857,8 @@ H5VL_pass_through_group_open(void *obj, const H5VL_loc_params_t *loc_params,
*
* Purpose: Get info about a group
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1859,7 +1869,7 @@ H5VL_pass_through_group_get(void *obj, H5VL_group_get_t get_type, hid_t dxpl_id,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL GROUP Get\n");
#endif
@@ -1869,17 +1879,17 @@ H5VL_pass_through_group_get(void *obj, H5VL_group_get_t get_type, hid_t dxpl_id,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_group_get() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_group_specific
*
- * Purpose: Specific operation on a group
+ * Purpose: Specific operation on a group
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1890,7 +1900,7 @@ H5VL_pass_through_group_specific(void *obj, H5VL_group_specific_t specific_type,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL GROUP Specific\n");
#endif
@@ -1900,7 +1910,7 @@ H5VL_pass_through_group_specific(void *obj, H5VL_group_specific_t specific_type,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_group_specific() */
@@ -1909,8 +1919,8 @@ H5VL_pass_through_group_specific(void *obj, H5VL_group_specific_t specific_type,
*
* Purpose: Perform a connector-specific operation on a group
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1921,7 +1931,7 @@ H5VL_pass_through_group_optional(void *obj, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL GROUP Optional\n");
#endif
@@ -1931,7 +1941,7 @@ H5VL_pass_through_group_optional(void *obj, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_group_optional() */
@@ -1940,8 +1950,8 @@ H5VL_pass_through_group_optional(void *obj, hid_t dxpl_id, void **req,
*
* Purpose: Closes a group.
*
- * Return: Success: 0
- * Failure: -1, group not closed.
+ * Return: Success: 0
+ * Failure: -1, group not closed.
*
*-------------------------------------------------------------------------
*/
@@ -1951,7 +1961,7 @@ H5VL_pass_through_group_close(void *grp, hid_t dxpl_id, void **req)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)grp;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL H5Gclose\n");
#endif
@@ -1965,17 +1975,17 @@ H5VL_pass_through_group_close(void *grp, hid_t dxpl_id, void **req)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_group_close() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_link_create
+ * Function: H5VL_pass_through_link_create
*
- * Purpose: Creates a hard / soft / UD / external link.
+ * Purpose: Creates a hard / soft / UD / external link.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -1986,7 +1996,7 @@ H5VL_pass_through_link_create(H5VL_link_create_type_t create_type, void *obj, co
hid_t under_vol_id = -1;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL LINK Create\n");
#endif
@@ -2018,22 +2028,22 @@ H5VL_pass_through_link_create(H5VL_link_create_type_t create_type, void *obj, co
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_link_create() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_link_copy
+ * Function: H5VL_pass_through_link_copy
*
- * Purpose: Renames an object within an HDF5 container and copies it to a new
+ * Purpose: Renames an object within an HDF5 container and copies it to a new
* group. The original name SRC is unlinked from the group graph
* and then inserted with the new name DST (which can specify a
* new path for the object) as an atomic operation. The names
* are interpreted relative to SRC_LOC_ID and
* DST_LOC_ID, which are either file IDs or group ID.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2047,7 +2057,7 @@ H5VL_pass_through_link_copy(void *src_obj, const H5VL_loc_params_t *loc_params1,
hid_t under_vol_id = -1;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL LINK Copy\n");
#endif
@@ -2064,23 +2074,22 @@ H5VL_pass_through_link_copy(void *src_obj, const H5VL_loc_params_t *loc_params1,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_link_copy() */
/*-------------------------------------------------------------------------
- * Function:
-H5VL_pass_through_link_move(void *src_obj, const H5VL_loc_params_t *loc_params1,
+ * Function: H5VL_pass_through_link_move
*
- * Purpose: Moves a link within an HDF5 file to a new group. The original
- * name SRC is unlinked from the group graph
+ * Purpose: Moves a link within an HDF5 file to a new group. The original
+ * name SRC is unlinked from the group graph
* and then inserted with the new name DST (which can specify a
* new path for the object) as an atomic operation. The names
* are interpreted relative to SRC_LOC_ID and
* DST_LOC_ID, which are either file IDs or group ID.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2094,7 +2103,7 @@ H5VL_pass_through_link_move(void *src_obj, const H5VL_loc_params_t *loc_params1,
hid_t under_vol_id = -1;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL LINK Move\n");
#endif
@@ -2111,17 +2120,17 @@ H5VL_pass_through_link_move(void *src_obj, const H5VL_loc_params_t *loc_params1,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_link_move() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_link_get
+ * Function: H5VL_pass_through_link_get
*
- * Purpose: Get info about a link
+ * Purpose: Get info about a link
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2132,7 +2141,7 @@ H5VL_pass_through_link_get(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL LINK Get\n");
#endif
@@ -2142,17 +2151,17 @@ H5VL_pass_through_link_get(void *obj, const H5VL_loc_params_t *loc_params,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_link_get() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_link_specific
+ * Function: H5VL_pass_through_link_specific
*
- * Purpose: Specific operation on a link
+ * Purpose: Specific operation on a link
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2163,7 +2172,7 @@ H5VL_pass_through_link_specific(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL LINK Specific\n");
#endif
@@ -2173,7 +2182,7 @@ H5VL_pass_through_link_specific(void *obj, const H5VL_loc_params_t *loc_params,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_link_specific() */
@@ -2182,8 +2191,8 @@ H5VL_pass_through_link_specific(void *obj, const H5VL_loc_params_t *loc_params,
*
* Purpose: Perform a connector-specific operation on a link
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2194,7 +2203,7 @@ H5VL_pass_through_link_optional(void *obj, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL LINK Optional\n");
#endif
@@ -2204,17 +2213,17 @@ H5VL_pass_through_link_optional(void *obj, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_link_optional() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_object_open
+ * Function: H5VL_pass_through_object_open
*
- * Purpose: Opens an object inside a container.
+ * Purpose: Opens an object inside a container.
*
- * Return: Success: Pointer to object
- * Failure: NULL
+ * Return: Success: Pointer to object
+ * Failure: NULL
*
*-------------------------------------------------------------------------
*/
@@ -2226,7 +2235,7 @@ H5VL_pass_through_object_open(void *obj, const H5VL_loc_params_t *loc_params,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
void *under;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL OBJECT Open\n");
#endif
@@ -2241,17 +2250,17 @@ H5VL_pass_through_object_open(void *obj, const H5VL_loc_params_t *loc_params,
else
new_obj = NULL;
- return((void *)new_obj);
+ return (void *)new_obj;
} /* end H5VL_pass_through_object_open() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_object_copy
+ * Function: H5VL_pass_through_object_copy
*
- * Purpose: Copies an object inside a container.
+ * Purpose: Copies an object inside a container.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2265,7 +2274,7 @@ H5VL_pass_through_object_copy(void *src_obj, const H5VL_loc_params_t *src_loc_pa
H5VL_pass_through_t *o_dst = (H5VL_pass_through_t *)dst_obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL OBJECT Copy\n");
#endif
@@ -2275,17 +2284,17 @@ H5VL_pass_through_object_copy(void *src_obj, const H5VL_loc_params_t *src_loc_pa
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o_src->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_object_copy() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_object_get
+ * Function: H5VL_pass_through_object_get
*
- * Purpose: Get info about an object
+ * Purpose: Get info about an object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2295,7 +2304,7 @@ H5VL_pass_through_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5V
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL OBJECT Get\n");
#endif
@@ -2305,17 +2314,17 @@ H5VL_pass_through_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5V
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_object_get() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_object_specific
*
- * Purpose: Specific operation on an object
+ * Purpose: Specific operation on an object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2327,7 +2336,7 @@ H5VL_pass_through_object_specific(void *obj, const H5VL_loc_params_t *loc_params
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL OBJECT Specific\n");
#endif
@@ -2337,17 +2346,17 @@ H5VL_pass_through_object_specific(void *obj, const H5VL_loc_params_t *loc_params
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_object_specific() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_object_optional
+ * Function: H5VL_pass_through_object_optional
*
- * Purpose: Perform a connector-specific operation for an object
+ * Purpose: Perform a connector-specific operation for an object
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2358,7 +2367,7 @@ H5VL_pass_through_object_optional(void *obj, hid_t dxpl_id, void **req,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL OBJECT Optional\n");
#endif
@@ -2368,20 +2377,20 @@ H5VL_pass_through_object_optional(void *obj, hid_t dxpl_id, void **req,
if(req && *req)
*req = H5VL_pass_through_new_obj(*req, o->under_vol_id);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_object_optional() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_request_wait
+ * Function: H5VL_pass_through_request_wait
*
- * Purpose: Wait (with a timeout) for an async operation to complete
+ * Purpose: Wait (with a timeout) for an async operation to complete
*
- * Note: Releases the request if the operation has completed and the
- * connector callback succeeds
+ * Note: Releases the request if the operation has completed and the
+ * connector callback succeeds
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2392,7 +2401,7 @@ H5VL_pass_through_request_wait(void *obj, uint64_t timeout,
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL REQUEST Wait\n");
#endif
@@ -2401,20 +2410,20 @@ H5VL_pass_through_request_wait(void *obj, uint64_t timeout,
if(ret_value >= 0 && *status != H5ES_STATUS_IN_PROGRESS)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_wait() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_request_notify
+ * Function: H5VL_pass_through_request_notify
*
* Purpose: Registers a user callback to be invoked when an asynchronous
- * operation completes
+ * operation completes
*
- * Note: Releases the request, if connector callback succeeds
+ * Note: Releases the request, if connector callback succeeds
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2424,7 +2433,7 @@ H5VL_pass_through_request_notify(void *obj, H5VL_request_notify_t cb, void *ctx)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL REQUEST Wait\n");
#endif
@@ -2433,19 +2442,19 @@ H5VL_pass_through_request_notify(void *obj, H5VL_request_notify_t cb, void *ctx)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_notify() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_request_cancel
+ * Function: H5VL_pass_through_request_cancel
*
* Purpose: Cancels an asynchronous operation
*
- * Note: Releases the request, if connector callback succeeds
+ * Note: Releases the request, if connector callback succeeds
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2455,7 +2464,7 @@ H5VL_pass_through_request_cancel(void *obj)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL REQUEST Cancel\n");
#endif
@@ -2464,18 +2473,18 @@ H5VL_pass_through_request_cancel(void *obj)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_cancel() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_request_specific_reissue
*
- * Purpose: Re-wrap vararg arguments into a va_list and reissue the
- * request specific callback to the underlying VOL connector.
+ * Purpose: Re-wrap vararg arguments into a va_list and reissue the
+ * request specific callback to the underlying VOL connector.
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2490,17 +2499,17 @@ H5VL_pass_through_request_specific_reissue(void *obj, hid_t connector_id,
ret_value = H5VLrequest_specific(obj, connector_id, specific_type, arguments);
va_end(arguments);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_specific_reissue() */
/*-------------------------------------------------------------------------
* Function: H5VL_pass_through_request_specific
*
- * Purpose: Specific operation on a request
+ * Purpose: Specific operation on a request
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2510,7 +2519,7 @@ H5VL_pass_through_request_specific(void *obj, H5VL_request_specific_t specific_t
{
herr_t ret_value = -1;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL REQUEST Specific\n");
#endif
@@ -2632,17 +2641,17 @@ H5VL_pass_through_request_specific(void *obj, H5VL_request_specific_t specific_t
else
assert(0 && "Unknown 'specific' operation");
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_specific() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_request_optional
+ * Function: H5VL_pass_through_request_optional
*
- * Purpose: Perform a connector-specific operation for a request
+ * Purpose: Perform a connector-specific operation for a request
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2652,24 +2661,24 @@ H5VL_pass_through_request_optional(void *obj, va_list arguments)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL REQUEST Optional\n");
#endif
ret_value = H5VLrequest_optional(o->under_object, o->under_vol_id, arguments);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_optional() */
/*-------------------------------------------------------------------------
- * Function: H5VL_pass_through_request_free
+ * Function: H5VL_pass_through_request_free
*
* Purpose: Releases a request, allowing the operation to complete without
- * application tracking
+ * application tracking
*
- * Return: Success: 0
- * Failure: -1
+ * Return: Success: 0
+ * Failure: -1
*
*-------------------------------------------------------------------------
*/
@@ -2679,7 +2688,7 @@ H5VL_pass_through_request_free(void *obj)
H5VL_pass_through_t *o = (H5VL_pass_through_t *)obj;
herr_t ret_value;
-#ifdef ENABLE_LOGGING
+#ifdef ENABLE_PASSTHRU_LOGGING
printf("------- PASS THROUGH VOL REQUEST Free\n");
#endif
@@ -2688,6 +2697,6 @@ H5VL_pass_through_request_free(void *obj)
if(ret_value >= 0)
H5VL_pass_through_free_obj(o);
- return(ret_value);
+ return ret_value;
} /* end H5VL_pass_through_request_free() */
diff --git a/src/H5private.h b/src/H5private.h
index b654bae..f58faec 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -1393,6 +1393,9 @@ typedef off_t h5_stat_size_t;
#ifndef HDstrtok
#define HDstrtok(X,Y) strtok(X,Y)
#endif /* HDstrtok */
+#ifndef HDstrtok_r
+ #define HDstrtok_r(X,Y,Z) strtok_r(X,Y,Z)
+#endif /* HDstrtok */
#ifndef HDstrtol
#define HDstrtol(S,R,N) strtol(S,R,N)
#endif /* HDstrtol */
@@ -1495,6 +1498,9 @@ typedef off_t h5_stat_size_t;
#ifndef HDva_arg
#define HDva_arg(A,T) va_arg(A,T)
#endif /* HDva_arg */
+#ifndef HDva_copy
+#define HDva_copy(D,S) va_copy(D,S)
+#endif /* HDva_copy */
#ifndef HDva_end
#define HDva_end(A) va_end(A)
#endif /* HDva_end */
diff --git a/src/H5system.c b/src/H5system.c
index 2d29650..f47d057 100644
--- a/src/H5system.c
+++ b/src/H5system.c
@@ -121,7 +121,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
HDassert(stream);
HDassert(fmt);
- va_start (ap, fmt);
+ HDva_start (ap, fmt);
while (*fmt) {
fwidth = prec = 0;
zerofill = 0;
@@ -170,7 +170,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
s = rest;
} /* end if */
else if ('*'==*s) {
- fwidth = va_arg(ap, int);
+ fwidth = HDva_arg(ap, int);
if(fwidth < 0) {
leftjust = 1;
fwidth = -fwidth;
@@ -185,7 +185,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
prec = (int)HDstrtol(s, &rest, 10);
s = rest;
} else if('*'==*s) {
- prec = va_arg(ap, int);
+ prec = HDva_arg(ap, int);
s++;
}
if(prec < 1)
@@ -272,16 +272,16 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 'd':
case 'i':
if(!HDstrcmp(modifier, "h")) {
- short x = (short)va_arg(ap, int);
+ short x = (short)HDva_arg(ap, int);
n = fprintf(stream, format_templ, x);
} else if(!*modifier) {
- int x = va_arg(ap, int);
+ int x = HDva_arg(ap, int);
n = fprintf(stream, format_templ, x);
} else if(!HDstrcmp(modifier, "l")) {
- long x = va_arg(ap, long);
+ long x = HDva_arg(ap, long);
n = fprintf(stream, format_templ, x);
} else {
- int64_t x = va_arg(ap, int64_t);
+ int64_t x = HDva_arg(ap, int64_t);
n = fprintf(stream, format_templ, x);
}
break;
@@ -291,16 +291,16 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 'x':
case 'X':
if(!HDstrcmp(modifier, "h")) {
- unsigned short x = (unsigned short)va_arg(ap, unsigned int);
+ unsigned short x = (unsigned short)HDva_arg(ap, unsigned int);
n = fprintf(stream, format_templ, x);
} else if(!*modifier) {
- unsigned int x = va_arg(ap, unsigned int);
+ unsigned int x = HDva_arg(ap, unsigned int);
n = fprintf(stream, format_templ, x);
} else if(!HDstrcmp(modifier, "l")) {
- unsigned long x = va_arg(ap, unsigned long);
+ unsigned long x = HDva_arg(ap, unsigned long);
n = fprintf(stream, format_templ, x);
} else {
- uint64_t x = va_arg(ap, uint64_t);
+ uint64_t x = HDva_arg(ap, uint64_t);
n = fprintf(stream, format_templ, x);
}
break;
@@ -311,10 +311,10 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 'g':
case 'G':
if(!HDstrcmp(modifier, "h")) {
- float x = (float)va_arg(ap, double);
+ float x = (float)HDva_arg(ap, double);
n = fprintf(stream, format_templ, (double)x);
} else if(!*modifier || !HDstrcmp(modifier, "l")) {
- double x = va_arg(ap, double);
+ double x = HDva_arg(ap, double);
n = fprintf(stream, format_templ, x);
} else {
/*
@@ -322,10 +322,10 @@ HDfprintf(FILE *stream, const char *fmt, ...)
* `double' are the same thing.
*/
#if H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE
- long double x = va_arg(ap, long double);
+ long double x = HDva_arg(ap, long double);
n = fprintf(stream, format_templ, x);
#else
- double x = va_arg(ap, double);
+ double x = HDva_arg(ap, double);
n = fprintf(stream, format_templ, x);
#endif
}
@@ -333,7 +333,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 'a':
{
- haddr_t x = va_arg(ap, haddr_t);
+ haddr_t x = HDva_arg(ap, haddr_t);
if(H5F_addr_defined(x)) {
len = 0;
@@ -379,7 +379,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 'c':
{
- char x = (char)va_arg(ap, int);
+ char x = (char)HDva_arg(ap, int);
n = fprintf(stream, format_templ, x);
}
break;
@@ -387,7 +387,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 's':
case 'p':
{
- char *x = va_arg(ap, char*);
+ char *x = HDva_arg(ap, char*);
n = fprintf(stream, format_templ, x);
}
break;
@@ -399,7 +399,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
case 't':
{
- htri_t tri_var = va_arg(ap, htri_t);
+ htri_t tri_var = HDva_arg(ap, htri_t);
if(tri_var > 0)
fprintf(stream, "TRUE");
@@ -423,7 +423,7 @@ HDfprintf(FILE *stream, const char *fmt, ...)
nout++;
}
}
- va_end(ap);
+ HDva_end(ap);
return nout;
} /* end HDfprintf() */
@@ -492,7 +492,8 @@ HDstrtoll(const char *s, const char **rest, int base)
/* Optional minus or plus sign */
if ('+'==*s) {
s++;
- } else if ('-'==*s) {
+ }
+ else if ('-'==*s) {
sign = -1;
s++;
}
@@ -501,10 +502,12 @@ HDstrtoll(const char *s, const char **rest, int base)
if (0==base && '0'==*s && ('x'==s[1] || 'X'==s[1])) {
base = 16;
s += 2;
- } else if (0==base && '0'==*s) {
+ }
+ else if (0==base && '0'==*s) {
base = 8;
s++;
- } else if (0==base) {
+ }
+ else if (0==base) {
base = 10;
}
@@ -525,7 +528,8 @@ HDstrtoll(const char *s, const char **rest, int base)
if (acc*base+digit < acc) {
overflow = TRUE;
- } else {
+ }
+ else {
acc = acc*base + digit;
}
}
@@ -536,7 +540,8 @@ HDstrtoll(const char *s, const char **rest, int base)
if (overflow) {
if (sign>0) {
acc = ((uint64_t)1<<(8*sizeof(int64_t)-1))-1;
- } else {
+ }
+ else {
acc = (int64_t)((uint64_t)1<<(8*sizeof(int64_t)-1));
}
errno = ERANGE;
@@ -843,9 +848,9 @@ int c99_snprintf(char* str, size_t size, const char* format, ...)
int count;
va_list ap;
- va_start(ap, format);
+ HDva_start(ap, format);
count = c99_vsnprintf(str, size, format, ap);
- va_end(ap);
+ HDva_end(ap);
return count;
}
diff --git a/src/H5trace.c b/src/H5trace.c
index f6740f4..b94245c 100644
--- a/src/H5trace.c
+++ b/src/H5trace.c
@@ -135,7 +135,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
if(!out)
return 0.0F; /*tracing is off*/
- va_start(ap, type);
+ HDva_start(ap, type);
if(H5_debug_g.ttop) {
if(returning) {
@@ -227,7 +227,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
* name is the null pointer then don't print the argument or the
* following `='. This is used for return values.
*/
- argname = va_arg(ap, char *);
+ argname = HDva_arg(ap, char *);
if(argname) {
unsigned n = (unsigned)MAX (0, (int)HDstrlen(argname) - 3);
@@ -243,7 +243,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
/* The value */
if(ptr)
- vp = va_arg(ap, void *);
+ vp = HDva_arg(ap, void *);
switch(type[0]) {
case 'a':
if(ptr) {
@@ -253,7 +253,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- haddr_t addr = va_arg(ap, haddr_t);
+ haddr_t addr = HDva_arg(ap, haddr_t);
HDfprintf(out, "%a", addr);
} /* end else */
@@ -267,8 +267,8 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- /* Can't pass hbool_t to va_arg() */
- hbool_t bool_var = (hbool_t)va_arg(ap, int);
+ /* Can't pass hbool_t to HDva_arg() */
+ hbool_t bool_var = (hbool_t)HDva_arg(ap, int);
if(TRUE == bool_var)
HDfprintf(out, "TRUE");
else if(!bool_var)
@@ -286,7 +286,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- double dbl = va_arg(ap, double);
+ double dbl = HDva_arg(ap, double);
HDfprintf(out, "%g", dbl);
} /* end else */
@@ -302,7 +302,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_alloc_time_t alloc_time = (H5D_alloc_time_t)va_arg(ap, int);
+ H5D_alloc_time_t alloc_time = (H5D_alloc_time_t)HDva_arg(ap, int);
switch(alloc_time) {
case H5D_ALLOC_TIME_ERROR:
@@ -340,7 +340,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5FD_mpio_collective_opt_t opt = (H5FD_mpio_collective_opt_t)va_arg(ap, int);
+ H5FD_mpio_collective_opt_t opt = (H5FD_mpio_collective_opt_t)HDva_arg(ap, int);
switch(opt) {
case H5FD_MPIO_COLLECTIVE_IO:
@@ -366,7 +366,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_fill_time_t fill_time = (H5D_fill_time_t)va_arg(ap, int);
+ H5D_fill_time_t fill_time = (H5D_fill_time_t)HDva_arg(ap, int);
switch(fill_time) {
case H5D_FILL_TIME_ERROR:
@@ -400,7 +400,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_fill_value_t fill_value = (H5D_fill_value_t)va_arg(ap, int);
+ H5D_fill_value_t fill_value = (H5D_fill_value_t)HDva_arg(ap, int);
switch(fill_value) {
case H5D_FILL_VALUE_ERROR:
@@ -434,7 +434,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5FD_mpio_chunk_opt_t opt = (H5FD_mpio_chunk_opt_t)va_arg(ap, int);
+ H5FD_mpio_chunk_opt_t opt = (H5FD_mpio_chunk_opt_t)HDva_arg(ap, int);
switch(opt) {
case H5FD_MPIO_CHUNK_DEFAULT:
@@ -464,7 +464,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_mpio_actual_io_mode_t actual_io_mode = (H5D_mpio_actual_io_mode_t)va_arg(ap, int);
+ H5D_mpio_actual_io_mode_t actual_io_mode = (H5D_mpio_actual_io_mode_t)HDva_arg(ap, int);
switch(actual_io_mode) {
case H5D_MPIO_NO_COLLECTIVE:
@@ -502,7 +502,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_chunk_index_t idx = (H5D_chunk_index_t)va_arg(ap, int);
+ H5D_chunk_index_t idx = (H5D_chunk_index_t)HDva_arg(ap, int);
switch(idx) {
case H5D_CHUNK_IDX_BTREE:
@@ -548,7 +548,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_layout_t layout = (H5D_layout_t)va_arg(ap, int);
+ H5D_layout_t layout = (H5D_layout_t)HDva_arg(ap, int);
switch(layout) {
case H5D_LAYOUT_ERROR:
@@ -590,7 +590,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_mpio_no_collective_cause_t nocol_cause_mode = (H5D_mpio_no_collective_cause_t)va_arg(ap, int);
+ H5D_mpio_no_collective_cause_t nocol_cause_mode = (H5D_mpio_no_collective_cause_t)HDva_arg(ap, int);
hbool_t flag_already_displayed = FALSE;
/* Check for all bit-flags which might be set */
@@ -637,7 +637,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_mpio_actual_chunk_opt_mode_t chunk_opt_mode = (H5D_mpio_actual_chunk_opt_mode_t)va_arg(ap, int);
+ H5D_mpio_actual_chunk_opt_mode_t chunk_opt_mode = (H5D_mpio_actual_chunk_opt_mode_t)HDva_arg(ap, int);
switch(chunk_opt_mode) {
case H5D_MPIO_NO_CHUNK_OPTIMIZATION:
@@ -667,7 +667,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_space_status_t space_status = (H5D_space_status_t)va_arg(ap, int);
+ H5D_space_status_t space_status = (H5D_space_status_t)HDva_arg(ap, int);
switch(space_status) {
case H5D_SPACE_STATUS_NOT_ALLOCATED:
@@ -701,7 +701,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5FD_mpio_xfer_t transfer = (H5FD_mpio_xfer_t)va_arg(ap, int);
+ H5FD_mpio_xfer_t transfer = (H5FD_mpio_xfer_t)HDva_arg(ap, int);
switch(transfer) {
case H5FD_MPIO_INDEPENDENT:
@@ -727,7 +727,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5D_vds_view_t view = (H5D_vds_view_t)va_arg(ap, int);
+ H5D_vds_view_t view = (H5D_vds_view_t)HDva_arg(ap, int);
switch(view) {
case H5D_VDS_ERROR:
@@ -763,7 +763,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- herr_t status = va_arg(ap, herr_t);
+ herr_t status = HDva_arg(ap, herr_t);
if(status >= 0)
HDfprintf(out, "SUCCEED");
@@ -782,7 +782,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5E_direction_t direction = (H5E_direction_t)va_arg(ap, int);
+ H5E_direction_t direction = (H5E_direction_t)HDva_arg(ap, int);
switch(direction) {
case H5E_WALK_UPWARD:
@@ -808,7 +808,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5E_error2_t *error = va_arg(ap, H5E_error2_t *);
+ H5E_error2_t *error = HDva_arg(ap, H5E_error2_t *);
HDfprintf(out, "0x%lx", (unsigned long)error);
} /* end else */
@@ -822,7 +822,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5ES_status_t status = (H5ES_status_t)va_arg(ap, int);
+ H5ES_status_t status = (H5ES_status_t)HDva_arg(ap, int);
switch(status) {
case H5ES_STATUS_IN_PROGRESS:
@@ -853,7 +853,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5E_type_t etype = (H5E_type_t)va_arg(ap, int);
+ H5E_type_t etype = (H5E_type_t)HDva_arg(ap, int);
switch(etype) {
case H5E_MAJOR:
@@ -887,7 +887,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5F_close_degree_t degree = (H5F_close_degree_t)va_arg(ap, int);
+ H5F_close_degree_t degree = (H5F_close_degree_t)HDva_arg(ap, int);
switch(degree) {
case H5F_CLOSE_DEFAULT:
@@ -921,7 +921,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5F_fspace_strategy_t fs_strategy = (H5F_fspace_strategy_t)va_arg(ap, int);
+ H5F_fspace_strategy_t fs_strategy = (H5F_fspace_strategy_t)HDva_arg(ap, int);
switch(fs_strategy) {
case H5F_FSPACE_STRATEGY_FSM_AGGR:
@@ -956,7 +956,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5F_mem_t mem_type = (H5F_mem_t)va_arg(ap, int);
+ H5F_mem_t mem_type = (H5F_mem_t)HDva_arg(ap, int);
switch(mem_type) {
case H5FD_MEM_NOLIST:
@@ -1007,7 +1007,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5F_scope_t scope = (H5F_scope_t)va_arg(ap, int);
+ H5F_scope_t scope = (H5F_scope_t)HDva_arg(ap, int);
switch(scope) {
case H5F_SCOPE_LOCAL:
@@ -1042,7 +1042,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5F_libver_t libver_vers = (H5F_libver_t)va_arg(ap, int);
+ H5F_libver_t libver_vers = (H5F_libver_t)HDva_arg(ap, int);
switch(libver_vers) {
case H5F_LIBVER_EARLIEST:
@@ -1084,7 +1084,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5G_obj_t obj_type = (H5G_obj_t)va_arg(ap, int);
+ H5G_obj_t obj_type = (H5G_obj_t)HDva_arg(ap, int);
switch(obj_type) {
case H5G_UNKNOWN:
@@ -1132,7 +1132,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5G_stat_t *statbuf = va_arg(ap, H5G_stat_t*);
+ H5G_stat_t *statbuf = HDva_arg(ap, H5G_stat_t*);
HDfprintf(out, "0x%lx", (unsigned long)statbuf);
}
@@ -1166,7 +1166,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- hsize_t hsize = va_arg(ap, hsize_t);
+ hsize_t hsize = HDva_arg(ap, hsize_t);
if(H5S_UNLIMITED == hsize)
HDfprintf(out, "H5S_UNLIMITED");
@@ -1196,7 +1196,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- hssize_t hssize = va_arg(ap, hssize_t);
+ hssize_t hssize = HDva_arg(ap, hssize_t);
HDfprintf(out, "%Hd", hssize);
asize[argno] = (hssize_t)hssize;
@@ -1217,7 +1217,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- hid_t obj = va_arg(ap, hid_t);
+ hid_t obj = HDva_arg(ap, hid_t);
if(H5P_DEFAULT == obj)
HDfprintf(out, "H5P_DEFAULT");
@@ -1405,7 +1405,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5_index_t idx_type = (H5_index_t)va_arg(ap, int);
+ H5_index_t idx_type = (H5_index_t)HDva_arg(ap, int);
switch(idx_type) {
case H5_INDEX_UNKNOWN:
@@ -1439,7 +1439,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5_iter_order_t order = (H5_iter_order_t)va_arg(ap, int);
+ H5_iter_order_t order = (H5_iter_order_t)HDva_arg(ap, int);
switch(order) {
case H5_ITER_UNKNOWN:
@@ -1486,7 +1486,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- int is = va_arg(ap, int);
+ int is = HDva_arg(ap, int);
HDfprintf (out, "%d", is);
asize[argno] = is;
@@ -1501,7 +1501,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5I_type_t id_type = (H5I_type_t)va_arg(ap, int);
+ H5I_type_t id_type = (H5I_type_t)HDva_arg(ap, int);
switch (id_type) {
case H5I_UNINIT:
@@ -1592,7 +1592,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- unsigned iu = va_arg(ap, unsigned);
+ unsigned iu = HDva_arg(ap, unsigned);
HDfprintf(out, "%u", iu);
asize[argno] = iu;
@@ -1615,7 +1615,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5L_type_t link_type = (H5L_type_t)va_arg(ap, int);
+ H5L_type_t link_type = (H5L_type_t)HDva_arg(ap, int);
switch(link_type) {
case H5L_TYPE_ERROR:
@@ -1662,7 +1662,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
} /* end if */
#ifdef H5_HAVE_PARALLEL
else {
- MPI_Comm comm = va_arg(ap, MPI_Comm);
+ MPI_Comm comm = HDva_arg(ap, MPI_Comm);
HDfprintf(out, "%ld", (long)comm);
} /* end else */
@@ -1678,7 +1678,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
} /* end if */
#ifdef H5_HAVE_PARALLEL
else {
- MPI_Info info = va_arg(ap, MPI_Info);
+ MPI_Info info = HDva_arg(ap, MPI_Info);
HDfprintf(out, "%ld", (long)info);
} /* end else */
@@ -1693,7 +1693,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5FD_mem_t mt = (H5FD_mem_t)va_arg(ap, int);
+ H5FD_mem_t mt = (H5FD_mem_t)HDva_arg(ap, int);
switch(mt) {
case H5FD_MEM_NOLIST:
@@ -1752,7 +1752,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- off_t offset = va_arg(ap, off_t);
+ off_t offset = HDva_arg(ap, off_t);
HDfprintf (out, "%ld", (long)offset);
} /* end else */
@@ -1768,7 +1768,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5O_type_t objtype = (H5O_type_t)va_arg(ap, int);
+ H5O_type_t objtype = (H5O_type_t)HDva_arg(ap, int);
switch(objtype) {
case H5O_TYPE_UNKNOWN:
@@ -1812,7 +1812,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- hid_t pclass_id = va_arg(ap, hid_t);
+ hid_t pclass_id = HDva_arg(ap, hid_t);
char *class_name = NULL;
H5P_genclass_t *pclass;
@@ -1836,7 +1836,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- hobj_ref_t ref = va_arg(ap, hobj_ref_t);
+ hobj_ref_t ref = HDva_arg(ap, hobj_ref_t);
HDfprintf(out, "Reference Object=%a", ref);
} /* end else */
@@ -1852,7 +1852,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5R_type_t reftype = (H5R_type_t)va_arg(ap, int);
+ H5R_type_t reftype = (H5R_type_t)HDva_arg(ap, int);
switch(reftype) {
case H5R_BADTYPE:
@@ -1894,7 +1894,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5S_class_t cls = (H5S_class_t)va_arg(ap, int);
+ H5S_class_t cls = (H5S_class_t)HDva_arg(ap, int);
switch(cls) {
case H5S_NO_CLASS:
@@ -1928,7 +1928,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5S_seloper_t so = (H5S_seloper_t)va_arg(ap, int);
+ H5S_seloper_t so = (H5S_seloper_t)HDva_arg(ap, int);
switch(so) {
case H5S_SELECT_NOOP:
@@ -1986,7 +1986,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5S_sel_type st = (H5S_sel_type)va_arg(ap, int);
+ H5S_sel_type st = (H5S_sel_type)HDva_arg(ap, int);
switch(st) {
case H5S_SEL_ERROR:
@@ -2034,7 +2034,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- const char *str = va_arg(ap, const char *);
+ const char *str = HDva_arg(ap, const char *);
HDfprintf(out, "\"%s\"", str);
} /* end else */
@@ -2050,7 +2050,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_cset_t cset = (H5T_cset_t)va_arg(ap, int);
+ H5T_cset_t cset = (H5T_cset_t)HDva_arg(ap, int);
switch(cset) {
case H5T_CSET_ERROR:
@@ -2097,7 +2097,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_direction_t direct = (H5T_direction_t)va_arg(ap, int);
+ H5T_direction_t direct = (H5T_direction_t)HDva_arg(ap, int);
switch(direct) {
case H5T_DIR_DEFAULT:
@@ -2127,7 +2127,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_pers_t pers = (H5T_pers_t)va_arg(ap, int);
+ H5T_pers_t pers = (H5T_pers_t)HDva_arg(ap, int);
switch(pers) {
case H5T_PERS_DONTCARE:
@@ -2157,7 +2157,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_norm_t norm = (H5T_norm_t)va_arg(ap, int);
+ H5T_norm_t norm = (H5T_norm_t)HDva_arg(ap, int);
switch(norm) {
case H5T_NORM_ERROR:
@@ -2191,7 +2191,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_order_t order = (H5T_order_t)va_arg(ap, int);
+ H5T_order_t order = (H5T_order_t)HDva_arg(ap, int);
switch(order) {
case H5T_ORDER_ERROR:
@@ -2233,7 +2233,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_pad_t pad = (H5T_pad_t)va_arg(ap, int);
+ H5T_pad_t pad = (H5T_pad_t)HDva_arg(ap, int);
switch(pad) {
case H5T_PAD_ERROR:
@@ -2271,7 +2271,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_sign_t sign = (H5T_sign_t)va_arg(ap, int);
+ H5T_sign_t sign = (H5T_sign_t)HDva_arg(ap, int);
switch(sign) {
case H5T_SGN_ERROR:
@@ -2305,7 +2305,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_class_t type_class = (H5T_class_t)va_arg(ap, int);
+ H5T_class_t type_class = (H5T_class_t)HDva_arg(ap, int);
switch(type_class) {
case H5T_NO_CLASS:
@@ -2375,7 +2375,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5T_str_t str = (H5T_str_t)va_arg(ap, int);
+ H5T_str_t str = (H5T_str_t)HDva_arg(ap, int);
switch(str) {
case H5T_STR_ERROR:
@@ -2431,7 +2431,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- htri_t tri_var = va_arg (ap, htri_t);
+ htri_t tri_var = HDva_arg (ap, htri_t);
if(tri_var>0)
HDfprintf (out, "TRUE");
@@ -2461,7 +2461,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- unsigned long iul = va_arg(ap, unsigned long);
+ unsigned long iul = HDva_arg(ap, unsigned long);
HDfprintf(out, "%lu", iul);
asize[argno] = (hssize_t)iul;
@@ -2485,7 +2485,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- unsigned long long iull = va_arg(ap, unsigned long long);
+ unsigned long long iull = HDva_arg(ap, unsigned long long);
HDfprintf(out, "%llu", iull);
asize[argno] = (hssize_t)iull;
@@ -2508,7 +2508,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_attr_get_t get = (H5VL_attr_get_t)va_arg(ap, int);
+ H5VL_attr_get_t get = (H5VL_attr_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_ATTR_GET_SPACE:
@@ -2543,7 +2543,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_attr_specific_t specific = (H5VL_attr_specific_t)va_arg(ap, int);
+ H5VL_attr_specific_t specific = (H5VL_attr_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_ATTR_DELETE:
@@ -2572,7 +2572,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_class_value_t class_val = (H5VL_class_value_t)va_arg(ap, H5VL_class_value_t);
+ H5VL_class_value_t class_val = (H5VL_class_value_t)HDva_arg(ap, H5VL_class_value_t);
if(H5_VOL_NATIVE == class_val)
HDfprintf(out, "H5_VOL_NATIVE");
@@ -2588,7 +2588,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_dataset_get_t get = (H5VL_dataset_get_t)va_arg(ap, int);
+ H5VL_dataset_get_t get = (H5VL_dataset_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_DATASET_GET_SPACE:
@@ -2626,7 +2626,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_dataset_specific_t specific = (H5VL_dataset_specific_t)va_arg(ap, int);
+ H5VL_dataset_specific_t specific = (H5VL_dataset_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_DATASET_SET_EXTENT:
@@ -2652,7 +2652,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_datatype_get_t get = (H5VL_datatype_get_t)va_arg(ap, int);
+ H5VL_datatype_get_t get = (H5VL_datatype_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_DATATYPE_GET_BINARY:
@@ -2675,7 +2675,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_datatype_specific_t specific = (H5VL_datatype_specific_t)va_arg(ap, int);
+ H5VL_datatype_specific_t specific = (H5VL_datatype_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_DATATYPE_FLUSH:
@@ -2698,7 +2698,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_file_get_t get = (H5VL_file_get_t)va_arg(ap, int);
+ H5VL_file_get_t get = (H5VL_file_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_FILE_GET_FAPL:
@@ -2733,7 +2733,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_file_specific_t specific = (H5VL_file_specific_t)va_arg(ap, int);
+ H5VL_file_specific_t specific = (H5VL_file_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_FILE_FLUSH:
@@ -2768,7 +2768,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_group_get_t get = (H5VL_group_get_t)va_arg(ap, int);
+ H5VL_group_get_t get = (H5VL_group_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_GROUP_GET_GCPL:
@@ -2791,7 +2791,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_group_specific_t specific = (H5VL_group_specific_t)va_arg(ap, int);
+ H5VL_group_specific_t specific = (H5VL_group_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_GROUP_FLUSH:
@@ -2814,7 +2814,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_link_create_type_t create = (H5VL_link_create_type_t)va_arg(ap, int);
+ H5VL_link_create_type_t create = (H5VL_link_create_type_t)HDva_arg(ap, int);
switch(create) {
case H5VL_LINK_CREATE_HARD:
@@ -2840,7 +2840,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_link_get_t get = (H5VL_link_get_t)va_arg(ap, int);
+ H5VL_link_get_t get = (H5VL_link_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_LINK_GET_INFO:
@@ -2866,7 +2866,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_link_specific_t specific = (H5VL_link_specific_t)va_arg(ap, int);
+ H5VL_link_specific_t specific = (H5VL_link_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_LINK_DELETE:
@@ -2892,7 +2892,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_object_get_t get = (H5VL_object_get_t)va_arg(ap, int);
+ H5VL_object_get_t get = (H5VL_object_get_t)HDva_arg(ap, int);
switch(get) {
case H5VL_REF_GET_REGION:
@@ -2921,7 +2921,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_object_specific_t specific = (H5VL_object_specific_t)va_arg(ap, int);
+ H5VL_object_specific_t specific = (H5VL_object_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_OBJECT_CHANGE_REF_COUNT:
@@ -2956,7 +2956,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5VL_request_specific_t specific = (H5VL_request_specific_t)va_arg(ap, int);
+ H5VL_request_specific_t specific = (H5VL_request_specific_t)HDva_arg(ap, int);
switch(specific) {
case H5VL_REQUEST_WAITANY:
@@ -3001,7 +3001,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- vp = va_arg (ap, void *);
+ vp = HDva_arg (ap, void *);
if(vp)
HDfprintf(out, "0x%lx", (unsigned long)vp);
@@ -3027,7 +3027,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- size_t size = va_arg(ap, size_t);
+ size_t size = HDva_arg(ap, size_t);
HDfprintf(out, "%Zu", size);
asize[argno] = (hssize_t)size;
@@ -3044,7 +3044,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5Z_SO_scale_type_t scale_type = (H5Z_SO_scale_type_t)va_arg(ap, int);
+ H5Z_SO_scale_type_t scale_type = (H5Z_SO_scale_type_t)HDva_arg(ap, int);
switch(scale_type) {
case H5Z_SO_FLOAT_DSCALE:
@@ -3074,7 +3074,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5Z_class2_t *filter = va_arg(ap, H5Z_class2_t*);
+ H5Z_class2_t *filter = HDva_arg(ap, H5Z_class2_t*);
HDfprintf(out, "0x%lx", (unsigned long)filter);
} /* end else */
@@ -3088,7 +3088,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5Z_EDC_t edc = (H5Z_EDC_t)va_arg(ap, int);
+ H5Z_EDC_t edc = (H5Z_EDC_t)HDva_arg(ap, int);
if(H5Z_DISABLE_EDC == edc)
HDfprintf(out, "H5Z_DISABLE_EDC");
@@ -3107,7 +3107,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- H5Z_filter_t id = va_arg(ap, H5Z_filter_t);
+ H5Z_filter_t id = HDva_arg(ap, H5Z_filter_t);
if(H5Z_FILTER_DEFLATE == id)
HDfprintf(out, "H5Z_FILTER_DEFLATE");
@@ -3133,7 +3133,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
HDfprintf(out, "NULL");
} /* end if */
else {
- ssize_t ssize = va_arg(ap, ssize_t);
+ ssize_t ssize = HDva_arg(ap, ssize_t);
HDfprintf(out, "%Zd", ssize);
asize[argno] = (hssize_t)ssize;
@@ -3161,7 +3161,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
(event_time.etime - *returning));
error:
- va_end(ap);
+ HDva_end(ap);
if(returning)
HDfprintf(out, ";\n");
else {
diff --git a/src/H5win32defs.h b/src/H5win32defs.h
index 4522228..140afc3 100644
--- a/src/H5win32defs.h
+++ b/src/H5win32defs.h
@@ -62,9 +62,17 @@ typedef __int64 h5_stat_size_t;
#define HDstat(S,B) _stati64(S,B)
#define HDstrcasecmp(A,B) _stricmp(A,B)
#define HDstrdup(S) _strdup(S)
+#define HDstrtok_r(X,Y,Z) strtok_s(X,Y,Z)
#define HDtzset() _tzset()
#define HDunlink(S) _unlink(S)
#define HDwrite(F,M,Z) _write(F,M,Z)
+#if (_MSC_VER < 1800)
+/* va_copy() does not exist on pre-2013 Visual Studio. Since va_lists are
+ * just pointers into the stack in those CRTs, the usual work-around
+ * is to just define the operation as a pointer copy.
+ */
+#define HDva_copy(D,S) ((D) = (S))
+#endif /* MSC_VER < 1800 */
#ifdef H5_HAVE_VISUAL_STUDIO
diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake
index 3ad9de7..1c26def 100644
--- a/test/CMakeTests.cmake
+++ b/test/CMakeTests.cmake
@@ -843,6 +843,7 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
+ -D "ERROR_APPEND=1"
-D "TEST_OUTPUT=err_compat.txt"
-D "TEST_REFERENCE=err_compat_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
@@ -877,6 +878,7 @@ else ()
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
+ -D "ERROR_APPEND=1"
-D "TEST_OUTPUT=error_test.txt"
-D "TEST_REFERENCE=error_test_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
@@ -943,6 +945,7 @@ if (BUILD_SHARED_LIBS)
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
+ -D "ERROR_APPEND=1"
-D "TEST_OUTPUT=err_compat.txt"
-D "TEST_REFERENCE=err_compat_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"
@@ -977,6 +980,7 @@ if (BUILD_SHARED_LIBS)
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
+ -D "ERROR_APPEND=1"
-D "TEST_OUTPUT=error_test.txt"
-D "TEST_REFERENCE=error_test_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"
diff --git a/test/h5test.c b/test/h5test.c
index 0805f06..6aad76a 100644
--- a/test/h5test.c
+++ b/test/h5test.c
@@ -855,6 +855,7 @@ h5_get_vfd_fapl(hid_t fapl)
{
const char *env = NULL; /* HDF5_DRIVER environment variable */
const char *tok = NULL; /* strtok pointer */
+ char *lasts = NULL; /* Context pointer for strtok_r() call */
char buf[1024]; /* buffer for tokenizing HDF5_DRIVER */
/* Get the environment variable, if it exists */
@@ -877,7 +878,7 @@ h5_get_vfd_fapl(hid_t fapl)
*/
HDstrncpy(buf, env, sizeof(buf));
buf[sizeof(buf) - 1] = '\0';
- if(NULL == (tok = HDstrtok(buf, " \t\n\r")))
+ if(NULL == (tok = HDstrtok_r(buf, " \t\n\r", &lasts)))
goto done;
if(!HDstrcmp(tok, "sec2")) {
@@ -936,7 +937,7 @@ h5_get_vfd_fapl(hid_t fapl)
hsize_t fam_size = 100 * 1024 * 1024; /* 100 MB */
/* Was a family size specified in the environment variable? */
- if((tok = HDstrtok(NULL, " \t\n\r")))
+ if((tok = HDstrtok_r(NULL, " \t\n\r", &lasts)))
fam_size = (hsize_t)(HDstrtod(tok, NULL) * 1024 * 1024);
if(H5Pset_fapl_family(fapl, fam_size, H5P_DEFAULT) < 0)
goto error;
@@ -945,7 +946,7 @@ h5_get_vfd_fapl(hid_t fapl)
unsigned log_flags = H5FD_LOG_LOC_IO | H5FD_LOG_ALLOC;
/* Were special log file flags specified in the environment variable? */
- if((tok = HDstrtok(NULL, " \t\n\r")))
+ if((tok = HDstrtok_r(NULL, " \t\n\r", &lasts)))
log_flags = (unsigned)HDstrtol(tok, NULL, 0);
if(H5Pset_fapl_log(fapl, NULL, log_flags, (size_t)0) < 0)
@@ -990,6 +991,7 @@ h5_get_libver_fapl(hid_t fapl)
{
const char *env = NULL; /* HDF5_DRIVER environment variable */
const char *tok = NULL; /* strtok pointer */
+ char *lasts = NULL; /* Context pointer for strtok_r() call */
char buf[1024]; /* buffer for tokenizing HDF5_DRIVER */
/* Get the environment variable, if it exists */
@@ -1012,7 +1014,7 @@ h5_get_libver_fapl(hid_t fapl)
*/
HDstrncpy(buf, env, sizeof(buf));
buf[sizeof(buf) - 1] = '\0';
- if(NULL == (tok = HDstrtok(buf, " \t\n\r")))
+ if(NULL == (tok = HDstrtok_r(buf, " \t\n\r", &lasts)))
goto done;
if(!HDstrcmp(tok, "latest")) {
@@ -1053,6 +1055,7 @@ h5_get_vol_fapl(hid_t fapl)
{
const char *env = NULL;
const char *tok = NULL;
+ char *lasts = NULL; /* Context pointer for strtok_r() call */
htri_t connector_is_registered;
char buf[1024]; /* Buffer for tokenizing HDF5_VOL_CONNECTOR */
void *vol_info = NULL; /* VOL connector info */
@@ -1075,7 +1078,7 @@ h5_get_vol_fapl(hid_t fapl)
*/
HDstrncpy(buf, env, sizeof(buf));
buf[sizeof(buf) - 1] = '\0';
- if(NULL == (tok = HDstrtok(buf, " \t\n\r")))
+ if(NULL == (tok = HDstrtok_r(buf, " \t\n\r", &lasts)))
goto done;
/* First, check to see if the connector is already registered */
@@ -1105,7 +1108,7 @@ h5_get_vol_fapl(hid_t fapl)
} /* end else */
/* Was there any connector info specified in the environment variable? */
- if(NULL != (tok = HDstrtok(NULL, " \t\n\r")))
+ if(NULL != (tok = HDstrtok_r(NULL, " \t\n\r", &lasts)))
if(H5VLconnector_str_to_info(tok, connector_id, &vol_info) < 0)
goto error;
diff --git a/test/tattr.c b/test/tattr.c
index 3a7cf2c..63a0580 100644
--- a/test/tattr.c
+++ b/test/tattr.c
@@ -143,6 +143,10 @@ float attr_data5=-5.123F; /* Test data for 5th attribute */
#define DIM1 100
#define RANK 2
+/* Used by test_attr_info_null_info_pointer() */
+#define GET_INFO_NULL_POINTER_ATTR_NAME "NullInfoPointerAttr"
+
+
/* Attribute iteration struct */
typedef struct {
H5_iter_order_t order; /* Direction of iteration */
@@ -5875,6 +5879,65 @@ test_attr_info_by_idx(hbool_t new_format, hid_t fcpl, hid_t fapl)
} /* test_attr_info_by_idx() */
+/***************************************************************
+**
+** test_attr_info_null_info_pointer(): A test to ensure that
+** passing a NULL attribute info pointer to H5Aget_info
+** (_by_name/_by_idx) doesn't cause bad behavior.
+**
+****************************************************************/
+static void
+test_attr_info_null_info_pointer(hid_t fcpl, hid_t fapl)
+{
+ herr_t err_ret = -1;
+ hid_t fid;
+ hid_t attr;
+ hid_t sid;
+
+ /* Create dataspace for dataset & attributes */
+ sid = H5Screate(H5S_SCALAR);
+ CHECK(sid, FAIL, "H5Screate");
+
+ /* Create file */
+ fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl);
+ CHECK(fid, FAIL, "H5Fcreate");
+
+ /* Create attribute */
+ attr = H5Acreate2(fid, GET_INFO_NULL_POINTER_ATTR_NAME, H5T_NATIVE_UINT, sid, H5P_DEFAULT, H5P_DEFAULT);
+ CHECK(attr, FAIL, "H5Acreate2");
+
+ H5E_BEGIN_TRY {
+ err_ret = H5Aget_info(attr, NULL);
+ } H5E_END_TRY;
+
+ CHECK(err_ret, SUCCEED, "H5Aget_info");
+
+ H5E_BEGIN_TRY {
+ err_ret = H5Aget_info_by_name(fid, ".", GET_INFO_NULL_POINTER_ATTR_NAME, NULL, H5P_DEFAULT);
+ } H5E_END_TRY;
+
+ CHECK(err_ret, SUCCEED, "H5Aget_info_by_name");
+
+ H5E_BEGIN_TRY {
+ err_ret = H5Aget_info_by_idx(fid, ".", H5_INDEX_NAME, H5_ITER_INC, 0, NULL, H5P_DEFAULT);
+ } H5E_END_TRY;
+
+ CHECK(err_ret, SUCCEED, "H5Aget_info_by_idx");
+
+ /* Close dataspace */
+ err_ret = H5Sclose(sid);
+ CHECK(err_ret, FAIL, "H5Sclose");
+
+ /* Close attribute */
+ err_ret = H5Aclose(attr);
+ CHECK(err_ret, FAIL, "H5Aclose");
+
+ /* Close file */
+ err_ret = H5Fclose(fid);
+ CHECK(err_ret, FAIL, "H5Fclose");
+}
+
+
/****************************************************************
**
** test_attr_delete_by_idx(): Test basic H5A (attribute) code.
@@ -10875,6 +10938,7 @@ test_attr(void)
test_attr_null_space(my_fcpl, my_fapl); /* Test storing attribute with NULL dataspace */
test_attr_deprec(fcpl, my_fapl); /* Test deprecated API routines */
test_attr_many(new_format, my_fcpl, my_fapl); /* Test storing lots of attributes */
+ test_attr_info_null_info_pointer(my_fcpl, my_fapl); /* Test passing a NULL attribute info pointer to H5Aget_info(_by_name/_by_idx) */
/* Attribute creation order tests */
test_attr_corder_create_basic(my_fcpl, my_fapl);/* Test creating an object w/attribute creation order info */
@@ -10919,6 +10983,7 @@ test_attr(void)
test_attr_null_space(fcpl, my_fapl); /* Test storing attribute with NULL dataspace */
test_attr_deprec(fcpl, my_fapl); /* Test deprecated API routines */
test_attr_many(new_format, fcpl, my_fapl); /* Test storing lots of attributes */
+ test_attr_info_null_info_pointer(fcpl, my_fapl); /* Test passing a NULL attribute info pointer to H5Aget_info(_by_name/_by_idx) */
/* New attribute API routine tests, on old-format storage */
test_attr_info_by_idx(new_format, fcpl, my_fapl); /* Test querying attribute info by index */
diff --git a/test/tvlstr.c b/test/tvlstr.c
index 68d1070..da6195c 100644
--- a/test/tvlstr.c
+++ b/test/tvlstr.c
@@ -880,7 +880,7 @@ static void test_write_same_element(void)
fspace = H5Screate_simple(SPACE1_RANK, fdim, NULL);
CHECK(fspace, FAIL, "H5Screate_simple");
- dataset1 = H5Dcreate(file1, DATASET, dtype, fspace, H5P_DEFAULT,
+ dataset1 = H5Dcreate2(file1, DATASET, dtype, fspace, H5P_DEFAULT,
H5P_DEFAULT, H5P_DEFAULT);
CHECK(dataset1, FAIL, "H5Dcreate");
@@ -905,7 +905,7 @@ static void test_write_same_element(void)
file1 = H5Fopen(DATAFILE3, H5F_ACC_RDWR, H5P_DEFAULT);
CHECK(file1, FAIL, "H5Fopen");
- dataset1 = H5Dopen(file1, DATASET, H5P_DEFAULT);
+ dataset1 = H5Dopen2(file1, DATASET, H5P_DEFAULT);
CHECK(dataset1, FAIL, "H5Dopen");
fspace = H5Dget_space(dataset1);
diff --git a/tools/test/h5copy/CMakeTests.cmake b/tools/test/h5copy/CMakeTests.cmake
index 924ade1..f31068b 100644
--- a/tools/test/h5copy/CMakeTests.cmake
+++ b/tools/test/h5copy/CMakeTests.cmake
@@ -30,6 +30,7 @@
set (LIST_OTHER_TEST_FILES
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_misc1.out
+ ${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_misc1.err
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5.txt
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5_ERR.txt
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_plugin_fail_ERR.out.h5.txt
@@ -250,6 +251,7 @@
-D "TEST_OUTPUT=./testfiles/${testname}.out.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=./testfiles/${testname}.out"
+ -D "TEST_ERRREF=./testfiles/${testname}.err"
-D "TEST_MASK=true"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
diff --git a/tools/test/h5copy/testfiles/h5copy_misc1.err b/tools/test/h5copy/testfiles/h5copy_misc1.err
new file mode 100644
index 0000000..2c2c867
--- /dev/null
+++ b/tools/test/h5copy/testfiles/h5copy_misc1.err
@@ -0,0 +1 @@
+h5copy error: group </g1> doesn't exist. Use -p to create parent groups.
diff --git a/tools/test/h5copy/testfiles/h5copy_misc1.out b/tools/test/h5copy/testfiles/h5copy_misc1.out
index 1624f2b..1c7181b 100644
--- a/tools/test/h5copy/testfiles/h5copy_misc1.out
+++ b/tools/test/h5copy/testfiles/h5copy_misc1.out
@@ -1,3 +1,2 @@
Copying file <./testfiles/h5copytst.h5> and object </simple> to file <./testfiles/h5copy_misc1.out.h5> and object </g1/g2/simple>
Error in copy...Exiting
-h5copy error: group </g1> doesn't exist. Use -p to create parent groups.
diff --git a/tools/test/h5copy/testh5copy.sh.in b/tools/test/h5copy/testh5copy.sh.in
index 203bfef..50758b5 100644
--- a/tools/test/h5copy/testh5copy.sh.in
+++ b/tools/test/h5copy/testh5copy.sh.in
@@ -60,6 +60,7 @@ $SRC_H5COPY_TESTFILES/h5copy_extlinks_trg.h5
# List of expect files that will be copied over to local test dir
LIST_OTHER_TEST_FILES="
$SRC_H5COPY_TESTFILES/h5copy_misc1.out
+$SRC_H5COPY_TESTFILES/h5copy_misc1.err
"
H5COPY=../../src/h5copy/h5copy # The tool name
@@ -396,6 +397,7 @@ CMP_OUTPUT()
TOOLTEST_FAIL()
{
expectout="$TESTDIR/$1"
+ expecterr="$TESTDIR/`basename $1 .out`.err"
actualout="$TESTDIR/$1.actualout"
actualerr="$TESTDIR/$1.actualerr"
actualout_sav=${actualout}-sav
@@ -426,10 +428,7 @@ TOOLTEST_FAIL()
echo " PASSED"
# Verifying output text from h5copy
if [ "$expectout" != "SKIP" ]; then
- # combine stderr to stdout to compare the output at once.
- # We may seperate stdout and stderr later.
- cat $actualerr >> $actualout
- CMP_OUTPUT $expectout $actualout
+ CMP_OUTPUT $expecterr $actualerr
fi
else
echo "*FAILED*"
diff --git a/tools/test/h5diff/CMakeTests.cmake b/tools/test/h5diff/CMakeTests.cmake
index e06f069..24646b0 100644
--- a/tools/test/h5diff/CMakeTests.cmake
+++ b/tools/test/h5diff/CMakeTests.cmake
@@ -168,21 +168,12 @@
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_452.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_453.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_454.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_454_ERR.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_454_ERR.err
+ ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/dangling_link.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_455.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_455_ERR.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_455_ERR.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_456.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_457.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_457_ERR.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_457_ERR.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_458.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_458_ERR.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_458_ERR.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_459.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_459_ERR.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_459_ERR.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_465.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_466.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_467.txt
@@ -238,7 +229,6 @@
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_63.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_600.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_601.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_601_ERR.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_601_ERR.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_603.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_604.txt
@@ -293,6 +283,7 @@
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_8625.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_8639.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_ud.txt
+ ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_udfail.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_udfail.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_v1.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_v2.txt
@@ -400,47 +391,6 @@
endif ()
endmacro ()
- macro (ADD_H5_ERR_TEST resultfile resultcode)
- # If using memchecker add tests without using scripts
- if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DIFF_ERR-${resultfile} COMMAND $<TARGET_FILE:h5diff> --enable-error-stack ${ARGN})
- set_tests_properties (H5DIFF_ERR-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- if (NOT "${resultcode}" STREQUAL "0")
- set_tests_properties (H5DIFF_ERR-${resultfile} PROPERTIES WILL_FAIL "true")
- endif ()
- if (NOT "${last_test}" STREQUAL "")
- set_tests_properties (H5DIFF_ERR-${resultfile} PROPERTIES DEPENDS ${last_test})
- endif ()
- else ()
- # Remove any output file left over from previous test run
- add_test (
- NAME H5DIFF_ERR-${resultfile}-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- testfiles/${resultfile}_ERR.out
- testfiles/${resultfile}_ERR.out.err
- )
- if (NOT "${last_test}" STREQUAL "")
- set_tests_properties (H5DIFF_ERR-${resultfile}-clear-objects PROPERTIES DEPENDS ${last_test})
- endif ()
- add_test (
- NAME H5DIFF_ERR-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
- -D "TEST_ARGS:STRING=--enable-error-stack;${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
- -D "TEST_OUTPUT=${resultfile}_ERR.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}_ERR.txt"
- -D "TEST_MASK_ERROR=true"
- -D "TEST_APPEND=EXIT CODE:"
- -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
- )
- set_tests_properties (H5DIFF_ERR-${resultfile} PROPERTIES DEPENDS H5DIFF_ERR-${resultfile}-clear-objects)
- endif ()
- set (last_test "H5DIFF_ERR-${resultfile}")
- endmacro ()
-
macro (ADD_PH5_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
@@ -529,53 +479,6 @@
endif ()
endmacro ()
- macro (ADD_H5_UD_ERR_TEST testname resultcode resultfile)
- if (NOT HDF5_ENABLE_USING_MEMCHECKER)
- # Remove any output file left over from previous test run
- add_test (
- NAME H5DIFF_UD_ERR-${testname}-clearall-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- testfiles/${resultfile}_ERR.out
- testfiles/${resultfile}_ERR.out.err
- )
- if ("${resultcode}" STREQUAL "2")
- add_test (
- NAME H5DIFF_UD_ERR-${testname}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
- -D "TEST_ARGS:STRING=--enable-error-stack;${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
- -D "TEST_OUTPUT=${resultfile}_ERR.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}_ERR.txt"
- -D "TEST_MASK_ERROR=true"
- -D "TEST_APPEND=EXIT CODE:"
- -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
- -D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}"
- -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
- )
- else ()
- add_test (
- NAME H5DIFF_UD_ERR-${testname}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
- -D "TEST_ARGS:STRING=--enable-error-stack;${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
- -D "TEST_OUTPUT=${resultfile}_ERR.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}_ERR.txt"
- -D "TEST_MASK_ERROR=true"
- -D "TEST_APPEND=EXIT CODE:"
- -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
- -D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins"
- -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
- )
- endif ()
- set_tests_properties (H5DIFF_UD_ERR-${testname} PROPERTIES DEPENDS H5DIFF_UD_ERR-${testname}-clearall-objects)
- endif ()
- endmacro ()
-
##############################################################################
##############################################################################
### T H E T E S T S ###
@@ -798,26 +701,16 @@
h5diff_453.out.err
h5diff_454.out
h5diff_454.out.err
- h5diff_454_ERR.out
- h5diff_454_ERR.out.err
h5diff_455.out
h5diff_455.out.err
- h5diff_455_ERR.out
- h5diff_455_ERR.out.err
h5diff_456.out
h5diff_456.out.err
h5diff_457.out
h5diff_457.out.err
- h5diff_457_ERR.out
- h5diff_457_ERR.out.err
h5diff_458.out
h5diff_458.out.err
- h5diff_458_ERR.out
- h5diff_458_ERR.out.err
h5diff_459.out
h5diff_459.out.err
- h5diff_459_ERR.out
- h5diff_459_ERR.out.err
h5diff_465.out
h5diff_465.out.err
h5diff_466.out
@@ -922,8 +815,6 @@
h5diff_600.out.err
h5diff_601.out
h5diff_601.out.err
- h5diff_601_ERR.out
- h5diff_601_ERR.out.err
h5diff_603.out
h5diff_603.out.err
h5diff_604.out
@@ -1181,7 +1072,6 @@ ADD_H5_TEST (h5diff_600 1 ${FILE1})
# 6.1: Check if non-exist object name is specified
ADD_H5_TEST (h5diff_601 2 ${FILE1} ${FILE1} nono_obj)
-ADD_H5_ERR_TEST (h5diff_601 2 ${FILE1} ${FILE1} nono_obj)
# ##############################################################################
# # -d
@@ -1481,26 +1371,21 @@ ADD_H5_TEST (h5diff_453 2 --follow-symlinks -v --no-dangling-links ${FILE13} $
# dangling link found for soft links (obj to obj)
ADD_H5_TEST (h5diff_454 2 --follow-symlinks -v --no-dangling-links ${FILE13} ${FILE13} /softlink_dset2 /softlink_noexist)
-ADD_H5_ERR_TEST (h5diff_454 2 --follow-symlinks -v --no-dangling-links ${FILE13} ${FILE13} /softlink_dset2 /softlink_noexist)
# dangling link found for soft links (obj to obj) Both dangle links
ADD_H5_TEST (h5diff_455 2 --follow-symlinks -v --no-dangling-links ${FILE13} ${FILE13} /softlink_noexist /softlink_noexist)
-ADD_H5_ERR_TEST (h5diff_455 2 --follow-symlinks -v --no-dangling-links ${FILE13} ${FILE13} /softlink_noexist /softlink_noexist)
# dangling link found for ext links (FILE to FILE)
ADD_H5_TEST (h5diff_456 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15})
# dangling link found for ext links (obj to obj). target file exist
ADD_H5_TEST (h5diff_457 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist1)
-ADD_H5_ERR_TEST (h5diff_457 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist1)
# dangling link found for ext links (obj to obj). target file NOT exist
ADD_H5_TEST (h5diff_458 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist2)
-ADD_H5_ERR_TEST (h5diff_458 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist2)
# dangling link found for ext links (obj to obj). Both dangle links
ADD_H5_TEST (h5diff_459 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_noexist1 /ext_link_noexist2)
-ADD_H5_ERR_TEST (h5diff_459 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_noexist1 /ext_link_noexist2)
# dangling link --follow-symlinks (obj vs obj)
# (HDFFV-7836)
diff --git a/tools/test/h5diff/h5diff_plugin.sh.in b/tools/test/h5diff/h5diff_plugin.sh.in
index 212f5d6..341cba5 100644
--- a/tools/test/h5diff/h5diff_plugin.sh.in
+++ b/tools/test/h5diff/h5diff_plugin.sh.in
@@ -62,6 +62,7 @@ LIST_HDF5_TEST_FILES="
$SRC_H5DIFF_TESTFILES/tudfilter.h5
$SRC_H5DIFF_TESTFILES/tudfilter2.h5
$SRC_H5DIFF_TESTFILES/h5diff_ud.txt
+$SRC_H5DIFF_TESTFILES/h5diff_udfail.err
$SRC_H5DIFF_TESTFILES/h5diff_udfail.txt
"
@@ -204,7 +205,7 @@ VERIFY() {
TOOLTEST() {
expect="$TESTDIR/$1"
actual="$TESTDIR/`basename $1 .txt`.out"
- actual_err="$TESTDIR/`basename $1 .txt`.err"
+ actual_err="$TESTDIR/`basename $1 .txt`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
shift
@@ -287,6 +288,90 @@ TOOLTEST() {
rm -f $actual_sorted $expect_sorted
fi
}
+# Same as TOOLSET except only err file checked
+TOOLTEST_ERR() {
+ expect="$TESTDIR/$1"
+ expect_err="$TESTDIR/`basename $1 .txt`.err"
+ actual="$TESTDIR/`basename $1 .txt`.out"
+ actual_err="$TESTDIR/`basename $1 .txt`.out.err"
+ actual_sav=${actual}-sav
+ actual_err_sav=${actual_err}-sav
+ shift
+ if test -n "$pmode"; then
+ RUNCMD=$RUNPARALLEL
+ else
+ RUNCMD=$RUNSERIAL
+ fi
+
+ # Run test.
+ TESTING $H5DIFF $@
+ (
+ #echo "#############################"
+ #echo "Expected output for '$H5DIFF $@'"
+ #echo "#############################"
+ cd $TESTDIR
+ eval $ENVCMD $RUNCMD $H5DIFF_BIN "$@"
+ ) >$actual 2>$actual_err
+ EXIT_CODE=$?
+ # save actual and actual_err in case they are needed later.
+ cp $actual $actual_sav
+ STDOUT_FILTER $actual
+ cp $actual_err $actual_err_sav
+ STDERR_FILTER $actual_err
+ # don't add exit code check in pmode, as it causes failure. (exit code
+ # is from mpirun not tool)
+ # if any problem occurs relate to an exit code, it will be caught in
+ # serial mode, so the test is fullfilled.
+ if test $h5haveexitcode = 'yes' -a -z "$pmode"; then
+ echo "EXIT CODE: $EXIT_CODE" >> $actual
+ fi
+
+ if [ ! -f $expect ]; then
+ # Create the expect file if it doesn't yet exist.
+ echo " CREATED"
+ cp $actual $expect
+ echo " Expected result (*.ddl) missing"
+ nerrors="`expr $nerrors + 1`"
+ elif $CMP $expect_err $actual_err; then
+ echo " PASSED"
+ elif test $h5haveexitcode = 'yes' -a -z "$pmode"; then
+ echo "*FAILED*"
+ echo " Expected result ($expect_err) differs from actual result ($actual_err)"
+ nerrors="`expr $nerrors + 1`"
+ test yes = "$verbose" && $DIFF $expect_err $actual_err |sed 's/^/ /'
+ else
+ # parallel mode output are often of different ordering from serial
+ # output. If the sorted expect_err and actual_err files compare the same,
+ # it is safe to assume the actual output match the expected file.
+ expect_sorted=expect_sorted
+ actual_sorted=actual_sorted
+ sort $expect_err -o $expect_sorted
+ sort $actual_err -o $actual_sorted
+ mv $expect_sorted.noexit $expect_sorted
+ if $CMP $expect_sorted $actual_sorted; then
+ echo " PASSED"
+ else
+ echo "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
+ if test yes = "$verbose"; then
+ echo "====Expected result ($expect_sorted) differs from actual result ($actual_sorted)"
+ $DIFF $expect_sorted $actual_sorted |sed 's/^/ /'
+ echo "====The actual output ($actual_sav)"
+ sed 's/^/ /' < $actual_sav
+ echo "====The actual stderr ($actual_err_sav)"
+ sed 's/^/ /' < $actual_err_sav
+ echo "====End of actual stderr ($actual_err_sav)"
+ echo ""
+ fi
+ fi
+ fi
+
+ # Clean up output file
+ if test -z "$HDF5_NOCLEANUP"; then
+ rm -f $actual $actual_err $actual_sav $actual_err_sav
+ rm -f $actual_sorted $expect_sorted
+ fi
+}
##############################################################################
### T H E T E S T S
diff --git a/tools/test/h5diff/testfiles/h5diff_459_ERR.err b/tools/test/h5diff/testfiles/dangling_link.err
index 82802a1..82802a1 100644
--- a/tools/test/h5diff/testfiles/h5diff_459_ERR.err
+++ b/tools/test/h5diff/testfiles/dangling_link.err
diff --git a/tools/test/h5diff/testfiles/h5diff_454_ERR.err b/tools/test/h5diff/testfiles/h5diff_454_ERR.err
deleted file mode 100644
index 82802a1..0000000
--- a/tools/test/h5diff/testfiles/h5diff_454_ERR.err
+++ /dev/null
@@ -1,4 +0,0 @@
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
diff --git a/tools/test/h5diff/testfiles/h5diff_454_ERR.txt b/tools/test/h5diff/testfiles/h5diff_454_ERR.txt
deleted file mode 100644
index 4501071..0000000
--- a/tools/test/h5diff/testfiles/h5diff_454_ERR.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Warning: </softlink_noexist> is a dangling link.
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
-EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_455_ERR.err b/tools/test/h5diff/testfiles/h5diff_455_ERR.err
deleted file mode 100644
index 82802a1..0000000
--- a/tools/test/h5diff/testfiles/h5diff_455_ERR.err
+++ /dev/null
@@ -1,4 +0,0 @@
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
diff --git a/tools/test/h5diff/testfiles/h5diff_455_ERR.txt b/tools/test/h5diff/testfiles/h5diff_455_ERR.txt
deleted file mode 100644
index 4501071..0000000
--- a/tools/test/h5diff/testfiles/h5diff_455_ERR.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Warning: </softlink_noexist> is a dangling link.
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
-EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_457_ERR.err b/tools/test/h5diff/testfiles/h5diff_457_ERR.err
deleted file mode 100644
index 82802a1..0000000
--- a/tools/test/h5diff/testfiles/h5diff_457_ERR.err
+++ /dev/null
@@ -1,4 +0,0 @@
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
diff --git a/tools/test/h5diff/testfiles/h5diff_457_ERR.txt b/tools/test/h5diff/testfiles/h5diff_457_ERR.txt
deleted file mode 100644
index 9d73750..0000000
--- a/tools/test/h5diff/testfiles/h5diff_457_ERR.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Warning: </ext_link_noexist1> is a dangling link.
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
-EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_458_ERR.err b/tools/test/h5diff/testfiles/h5diff_458_ERR.err
deleted file mode 100644
index 82802a1..0000000
--- a/tools/test/h5diff/testfiles/h5diff_458_ERR.err
+++ /dev/null
@@ -1,4 +0,0 @@
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
diff --git a/tools/test/h5diff/testfiles/h5diff_458_ERR.txt b/tools/test/h5diff/testfiles/h5diff_458_ERR.txt
deleted file mode 100644
index b084914..0000000
--- a/tools/test/h5diff/testfiles/h5diff_458_ERR.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Warning: </ext_link_noexist2> is a dangling link.
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
-EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_459_ERR.txt b/tools/test/h5diff/testfiles/h5diff_459_ERR.txt
deleted file mode 100644
index 9d73750..0000000
--- a/tools/test/h5diff/testfiles/h5diff_459_ERR.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Warning: </ext_link_noexist1> is a dangling link.
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): treat dangling link as error
- major: Failure in tools library
- minor: error in function
-EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_600.txt b/tools/test/h5diff/testfiles/h5diff_600.txt
index f3b346a..13d627c 100644
--- a/tools/test/h5diff/testfiles/h5diff_600.txt
+++ b/tools/test/h5diff/testfiles/h5diff_600.txt
@@ -142,5 +142,4 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
Use h5diff file1 file1 /g1/dset1 /g1/dset2 to compare
'/g1/dset1' and '/g1/dset2' in the same file
-h5diff error: missing file names
EXIT CODE: 1
diff --git a/tools/test/h5diff/testfiles/h5diff_601_ERR.txt b/tools/test/h5diff/testfiles/h5diff_601_ERR.txt
deleted file mode 100644
index b58124a..0000000
--- a/tools/test/h5diff/testfiles/h5diff_601_ERR.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Object </nono_obj> could not be found in <h5diff_basic1.h5>
-H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
- #000: (file name) line (number) in h5diff(): Error: Object could not be found
- major: Failure in tools library
- minor: error in function
-EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_udfail.err b/tools/test/h5diff/testfiles/h5diff_udfail.err
new file mode 100644
index 0000000..d51de38
--- /dev/null
+++ b/tools/test/h5diff/testfiles/h5diff_udfail.err
@@ -0,0 +1,12 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x x /dynlibud
+
+group : </> and </>
+0 differences found
+dataset: </dynlibud> and </dynlibud>
+0 differences found
+Warning: dataset </dynlibud> cannot be read, user defined filter is not available
+EXIT CODE: 2
diff --git a/tools/test/h5diff/testfiles/h5diff_udfail.txt b/tools/test/h5diff/testfiles/h5diff_udfail.txt
index d51de38..e6000fc 100644
--- a/tools/test/h5diff/testfiles/h5diff_udfail.txt
+++ b/tools/test/h5diff/testfiles/h5diff_udfail.txt
@@ -8,5 +8,4 @@ group : </> and </>
0 differences found
dataset: </dynlibud> and </dynlibud>
0 differences found
-Warning: dataset </dynlibud> cannot be read, user defined filter is not available
EXIT CODE: 2
diff --git a/tools/test/h5diff/testh5diff.sh.in b/tools/test/h5diff/testh5diff.sh.in
index c464f94..557d2ff 100644
--- a/tools/test/h5diff/testh5diff.sh.in
+++ b/tools/test/h5diff/testh5diff.sh.in
@@ -226,6 +226,7 @@ $SRC_H5DIFF_TESTFILES/h5diff_451.txt
$SRC_H5DIFF_TESTFILES/h5diff_452.txt
$SRC_H5DIFF_TESTFILES/h5diff_453.txt
$SRC_H5DIFF_TESTFILES/h5diff_454.txt
+$SRC_H5DIFF_TESTFILES/dangling_link.err
$SRC_H5DIFF_TESTFILES/h5diff_455.txt
$SRC_H5DIFF_TESTFILES/h5diff_456.txt
$SRC_H5DIFF_TESTFILES/h5diff_457.txt
@@ -286,6 +287,7 @@ $SRC_H5DIFF_TESTFILES/h5diff_62.txt
$SRC_H5DIFF_TESTFILES/h5diff_63.txt
$SRC_H5DIFF_TESTFILES/h5diff_600.txt
$SRC_H5DIFF_TESTFILES/h5diff_601.txt
+$SRC_H5DIFF_TESTFILES/h5diff_601_ERR.err
$SRC_H5DIFF_TESTFILES/h5diff_603.txt
$SRC_H5DIFF_TESTFILES/h5diff_604.txt
$SRC_H5DIFF_TESTFILES/h5diff_605.txt
@@ -462,8 +464,9 @@ TESTING() {
#
TOOLTEST() {
expect="$TESTDIR/$1"
+ expect_err="$TESTDIR/`basename $1 .txt`.err"
actual="$TESTDIR/`basename $1 .txt`.out"
- actual_err="$TESTDIR/`basename $1 .txt`.err"
+ actual_err="$TESTDIR/`basename $1 .txt`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
shift
@@ -488,7 +491,6 @@ TOOLTEST() {
STDOUT_FILTER $actual
cp $actual_err $actual_err_sav
STDERR_FILTER $actual_err
- cat $actual_err >> $actual
# don't add exit code check in pmode, as it causes failure. (exit code
# is from mpirun not tool)
# if any problem occurs relate to an exit code, it will be caught in
diff --git a/tools/test/h5dump/testh5dump.sh.in b/tools/test/h5dump/testh5dump.sh.in
index 42e4b07..af5d547 100644
--- a/tools/test/h5dump/testh5dump.sh.in
+++ b/tools/test/h5dump/testh5dump.sh.in
@@ -490,7 +490,6 @@ TOOLTEST() {
STDOUT_FILTER $actual
cp $actual_err $actual_err_sav
STDERR_FILTER $actual_err
- cat $actual_err >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -534,7 +533,6 @@ TOOLTEST2() {
cd $TESTDIR
$RUNSERIAL $DUMPER_BIN "$@"
) >$actual 2>$actual_err
- cat $actual_err >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -593,7 +591,6 @@ TOOLTEST2A() {
cd $TESTDIR
$RUNSERIAL $DUMPER_BIN "$@"
) >$actual 2>$actual_err
- cat $actual_err >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -660,7 +657,6 @@ TOOLTEST2B() {
cd $TESTDIR
$RUNSERIAL $DUMPER_BIN "$@"
) >$actual 2>$actual_err
- cat $actual_err >> $actual
if [ ! -f $expectdata ]; then
# Create the expect data file if it doesn't yet exist.
@@ -717,7 +713,6 @@ TOOLTEST3() {
-e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \
-e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \
$actual_err > $actual_ext
- cat $actual_ext >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -776,7 +771,6 @@ TOOLTEST4() {
-e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \
-e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \
$actual_err > $actual_ext
- #cat $actual_ext >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -842,7 +836,6 @@ TOOLTEST5() {
-e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \
-e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \
$actual_err > $actual_ext
- #cat $actual_ext >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -886,7 +879,6 @@ TOOLTEST_HELP() {
cd $TESTDIR
$RUNSERIAL $DUMPER_BIN "$@"
) >$actual 2>$actual_err
- cat $actual_err >> $actual
if [ ! -f $expectdata ]; then
# Create the expect data file if it doesn't yet exist.
diff --git a/tools/test/h5dump/testh5dumppbits.sh.in b/tools/test/h5dump/testh5dumppbits.sh.in
index 9cf5c99..febce2c 100644
--- a/tools/test/h5dump/testh5dumppbits.sh.in
+++ b/tools/test/h5dump/testh5dumppbits.sh.in
@@ -235,7 +235,6 @@ TOOLTEST() {
STDOUT_FILTER $actual
cp $actual_err $actual_err_sav
STDERR_FILTER $actual_err
- cat $actual_err >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -278,7 +277,6 @@ TOOLTEST2() {
cd $TESTDIR
$RUNSERIAL $DUMPER_BIN "$@"
) >$actual 2>$actual_err
- cat $actual_err >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -348,7 +346,6 @@ TOOLTEST3() {
-e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \
-e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \
$actual_err > $actual_ext
- cat $actual_ext >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
@@ -406,7 +403,6 @@ TOOLTEST4() {
-e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \
-e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \
$actual_err > $actual_ext
- #cat $actual_ext >> $actual
if [ ! -f $expect ]; then
# Create the expect file if it doesn't yet exist.
diff --git a/tools/test/h5format_convert/CMakeTests.cmake b/tools/test/h5format_convert/CMakeTests.cmake
index 2240813..5792d40 100644
--- a/tools/test/h5format_convert/CMakeTests.cmake
+++ b/tools/test/h5format_convert/CMakeTests.cmake
@@ -22,10 +22,8 @@
set (HDF5_REFERENCE_FILES
h5fc_help.ddl
h5fc_nooption.ddl
- h5fc_nonexistfile.ddl
h5fc_d_file.ddl
h5fc_dname.ddl
- h5fc_nonexistdset_file.ddl
h5fc_v_non_chunked.ddl
h5fc_v_bt1.ddl
h5fc_v_ndata_bt1.ddl
@@ -49,6 +47,12 @@
h5fc_v_err.ddl
h5fc_v_err.ddl.err
)
+ set (HDF5_REFERENCE_ERR_FILES
+ h5fc_d_file.ddl.err
+ h5fc_dname.err
+ h5fc_nonexistfile.ddl.err
+ h5fc_nonexistdset_file.ddl.err
+ )
set (HDF5_REFERENCE_TEST_FILES
h5fc_non_v3.h5
h5fc_edge_v3.h5
@@ -78,6 +82,10 @@
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${ddl_file}" "${PROJECT_BINARY_DIR}/testfiles/${ddl_file}" "h5fc_files")
endforeach ()
+ foreach (h5_file ${HDF5_REFERENCE_ERR_FILES})
+ HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5fc_files")
+ endforeach ()
+
foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5fc_files")
endforeach ()
@@ -119,6 +127,7 @@
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}"
+ -D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5FC-${testname}-${testfile} PROPERTIES DEPENDS "H5FC-${testname}-${testfile}-tmpfile")
@@ -141,6 +150,42 @@
endif ()
endmacro ()
+ macro (ADD_H5_NOERR_OUTPUT testname resultfile resultcode testfile)
+ # If using memchecker add tests without using scripts
+ if (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5FC-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/outtmp.h5
+ ./testfiles/${testname}.out
+ ./testfiles/${testname}.out.err
+ )
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5FC-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ endif ()
+ add_test (
+ NAME H5FC-${testname}-${testfile}-tmpfile
+ COMMAND ${CMAKE_COMMAND}
+ -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/outtmp.h5
+ )
+ set_tests_properties (H5FC-${testname}-${testfile}-tmpfile PROPERTIES DEPENDS "H5FC-${testname}-clear-objects")
+ add_test (
+ NAME H5FC-${testname}-${testfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
+ -D "TEST_ARGS=${ARGN};outtmp.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${testname}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5FC-${testname}-${testfile} PROPERTIES DEPENDS "H5FC-${testname}-${testfile}-tmpfile")
+ set (last_test "H5FC-${testname}-${testfile}")
+ endif ()
+ endmacro ()
+
macro (ADD_H5_MASK_OUTPUT testname resultfile resultcode testfile)
# If using memchecker add tests without using scripts
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
@@ -433,17 +478,17 @@
# h5format_convert -d /GROUP/DSET_BT2 --verbose old_h5fc_ext_none.h5 (verbose, bt1 dataset)
# h5format_convert -d /DSET_NDATA_BT2 -v -n old_h5fc_ext_none.h5 (verbose, noop, bt1+nodata dataset)
# h5format_convert -v old_h5fc_ext_none.h5 (verbose, all datasets)
- ADD_H5_OUTPUT (h5fc_v_non_chunked h5fc_v_non_chunked.ddl 0 old_h5fc_ext_none.h5 -d /DSET_CONTIGUOUS -v)
- ADD_H5_OUTPUT (h5fc_v_bt1 h5fc_v_bt1.ddl 0 old_h5fc_ext_none.h5 -d /GROUP/DSET_BT2 --verbose)
- ADD_H5_OUTPUT (h5fc_v_ndata_bt1 h5fc_v_ndata_bt1.ddl 0 old_h5fc_ext_none.h5 -d /DSET_NDATA_BT2 -v -n)
- ADD_H5_OUTPUT (h5fc_v_all h5fc_v_all.ddl 0 old_h5fc_ext_none.h5 -v)
+ ADD_H5_NOERR_OUTPUT (h5fc_v_non_chunked h5fc_v_non_chunked.ddl 0 old_h5fc_ext_none.h5 -d /DSET_CONTIGUOUS -v)
+ ADD_H5_NOERR_OUTPUT (h5fc_v_bt1 h5fc_v_bt1.ddl 0 old_h5fc_ext_none.h5 -d /GROUP/DSET_BT2 --verbose)
+ ADD_H5_NOERR_OUTPUT (h5fc_v_ndata_bt1 h5fc_v_ndata_bt1.ddl 0 old_h5fc_ext_none.h5 -d /DSET_NDATA_BT2 -v -n)
+ ADD_H5_NOERR_OUTPUT (h5fc_v_all h5fc_v_all.ddl 0 old_h5fc_ext_none.h5 -v)
#
#
#
# h5format_convert -d /DSET_EA -v -n h5fc_ext_none.h5 (verbose, noop, one ea dataset)
# h5format_convert -v -n h5fc_non_v3.h5 (verbose, noop, all datasets)
- ADD_H5_OUTPUT (h5fc_v_n_1d h5fc_v_n_1d.ddl 0 h5fc_ext_none.h5 -d /DSET_EA -v -n)
- ADD_H5_OUTPUT (h5fc_v_n_all h5fc_v_n_all.ddl 0 h5fc_non_v3.h5 -v -n)
+ ADD_H5_NOERR_OUTPUT (h5fc_v_n_1d h5fc_v_n_1d.ddl 0 h5fc_ext_none.h5 -d /DSET_EA -v -n)
+ ADD_H5_NOERR_OUTPUT (h5fc_v_n_all h5fc_v_n_all.ddl 0 h5fc_non_v3.h5 -v -n)
#
#
#
diff --git a/tools/test/h5format_convert/testfiles/h5fc_d_file-d.ddl b/tools/test/h5format_convert/testfiles/h5fc_d_file-d.ddl
new file mode 100644
index 0000000..bc0229c
--- /dev/null
+++ b/tools/test/h5format_convert/testfiles/h5fc_d_file-d.ddl
@@ -0,0 +1,25 @@
+usage: h5format_convert [OPTIONS] file_name
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+ -v, --verbose Turn on verbose mode
+ -d dname, --dname=dataset_name Pathname for the dataset
+ -n, --noop Perform all the steps except the actual conversion
+
+Examples of use:
+
+h5format_convert -d /group/dataset file_name
+ Convert the dataset </group/dataset> in the HDF5 file <file_name>:
+ a. chunked dataset: convert the chunk indexing type to version 1 B-tree
+ b. compact/contiguous dataset: downgrade the layout version to 3
+ c. virtual dataset: no action
+
+h5format_convert file_name
+ Convert all datasets in the HDF5 file <file_name>:
+ a. chunked dataset: convert the chunk indexing type to version 1 B-tree
+ b. compact/contiguous dataset: downgrade the layout version to 3
+ c. virtual dataset: no action
+
+h5format_convert -n -d /group/dataset file_name
+ Go through all the steps except the actual conversion when
+ converting the dataset </group/dataset> in the HDF5 file <file_name>.
diff --git a/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl b/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl
index 38fc432..bc0229c 100644
--- a/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl
+++ b/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl
@@ -23,4 +23,3 @@ h5format_convert file_name
h5format_convert -n -d /group/dataset file_name
Go through all the steps except the actual conversion when
converting the dataset </group/dataset> in the HDF5 file <file_name>.
-h5format_convert error: missing file name
diff --git a/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl.err b/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl.err
new file mode 100644
index 0000000..ceb0fe4
--- /dev/null
+++ b/tools/test/h5format_convert/testfiles/h5fc_d_file.ddl.err
@@ -0,0 +1 @@
+h5format_convert error: missing file name
diff --git a/tools/test/h5format_convert/testfiles/h5fc_dname.ddl b/tools/test/h5format_convert/testfiles/h5fc_dname.ddl
index 48564b7..bc0229c 100644
--- a/tools/test/h5format_convert/testfiles/h5fc_dname.ddl
+++ b/tools/test/h5format_convert/testfiles/h5fc_dname.ddl
@@ -23,4 +23,3 @@ h5format_convert file_name
h5format_convert -n -d /group/dataset file_name
Go through all the steps except the actual conversion when
converting the dataset </group/dataset> in the HDF5 file <file_name>.
-h5format_convert error: No dataset name
diff --git a/tools/test/h5format_convert/testfiles/h5fc_dname.err b/tools/test/h5format_convert/testfiles/h5fc_dname.err
new file mode 100644
index 0000000..361d8a9
--- /dev/null
+++ b/tools/test/h5format_convert/testfiles/h5fc_dname.err
@@ -0,0 +1 @@
+h5format_convert error: No dataset name
diff --git a/tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl b/tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl.err
index 39450c0..39450c0 100644
--- a/tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl
+++ b/tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl.err
diff --git a/tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl b/tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl.err
index 706ea9d..706ea9d 100644
--- a/tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl
+++ b/tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl.err
diff --git a/tools/test/h5format_convert/testh5fc.sh.in b/tools/test/h5format_convert/testh5fc.sh.in
index 585d389..2cdd445 100644
--- a/tools/test/h5format_convert/testh5fc.sh.in
+++ b/tools/test/h5format_convert/testh5fc.sh.in
@@ -103,13 +103,18 @@ $SRC_H5FORMCONV_TESTFILES/old_h5fc_ext3_isf.h5
$SRC_H5FORMCONV_TESTFILES/h5fc_err_level.h5
"
+LIST_ERR_TEST_FILES="
+$SRC_H5FORMCONV_TESTFILES/h5fc_d_file.ddl.err
+$SRC_H5FORMCONV_TESTFILES/h5fc_dname.err
+$SRC_H5FORMCONV_TESTFILES/h5fc_nonexistfile.ddl.err
+$SRC_H5FORMCONV_TESTFILES/h5fc_nonexistdset_file.ddl.err
+"
+
LIST_OTHER_TEST_FILES="
$SRC_H5FORMCONV_TESTFILES/h5fc_help.ddl
$SRC_H5FORMCONV_TESTFILES/h5fc_nooption.ddl
-$SRC_H5FORMCONV_TESTFILES/h5fc_nonexistfile.ddl
$SRC_H5FORMCONV_TESTFILES/h5fc_d_file.ddl
$SRC_H5FORMCONV_TESTFILES/h5fc_dname.ddl
-$SRC_H5FORMCONV_TESTFILES/h5fc_nonexistdset_file.ddl
$SRC_H5FORMCONV_TESTFILES/h5fc_v_non_chunked.ddl
$SRC_H5FORMCONV_TESTFILES/h5fc_v_bt1.ddl
$SRC_H5FORMCONV_TESTFILES/h5fc_v_ndata_bt1.ddl
@@ -137,7 +142,7 @@ $SRC_H5FORMCONV_TESTFILES/h5fc_v_err.ddl.err
#
# copy test files and expected output files from source dirs to test dir
#
-COPY_TESTFILES="$LIST_HDF5_TEST_FILES $LIST_OTHER_TEST_FILES"
+COPY_TESTFILES="$LIST_HDF5_TEST_FILES $LIST_ERR_TEST_FILES $LIST_OTHER_TEST_FILES"
COPY_TESTFILES_TO_TESTDIR()
{
@@ -193,6 +198,9 @@ TESTING() {
echo "Testing $* $SPACES" | cut -c1-80 | tr -d '\012'
}
+# Source in the output filter function definitions.
+. $srcdir/../../../bin/output_filter.sh
+
# Run a test and print PASS or *FAIL*. If a test fails then increment
# the `nerrors' global variable and (if $verbose is set) display the
# difference between the actual output and the expected output. The
@@ -212,8 +220,9 @@ TESTING() {
TOOLTEST_OUT() {
# Prepare expected and actual output
expect="$TESTDIR/$1"
+ expect_err="$TESTDIR/`basename $1 .ddl`.err"
actual="$TESTDIR/`basename $1 .ddl`.out"
- actual_err="$TESTDIR/`basename $1 .ddl`.err"
+ actual_err="$TESTDIR/`basename $1 .ddl`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
@@ -233,7 +242,6 @@ TOOLTEST_OUT() {
) >$actual 2>$actual_err
cp $actual $actual_sav
cp $actual_err $actual_err_sav
- cat $actual_err >> $actual
# Compare output
COMPARE_OUT $expect $actual
@@ -251,7 +259,7 @@ TOOLTEST_MASK_OUT() {
expect_err="$TESTDIR/$1.err"
actual_ext="$TESTDIR/$1.ext"
actual="$TESTDIR/`basename $1 .ddl`.out"
- actual_err="$TESTDIR/`basename $1 .ddl`.err"
+ actual_err="$TESTDIR/`basename $1 .ddl`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
@@ -305,6 +313,42 @@ TOOLTEST_MASK_OUT() {
$RM $actual $actual_err $actual_sav $actual_err_sav
fi
}
+# Same as TOOLTEST_OUT except only compares error outout
+TOOLTEST_ERR() {
+ # Prepare expected and actual output
+ expect="$TESTDIR/$1"
+ expect_err="$TESTDIR/$1.err"
+ actual="$TESTDIR/`basename $1 .ddl`.out"
+ actual_err="$TESTDIR/`basename $1 .ddl`.out.err"
+ actual_sav=${actual}-sav
+ actual_err_sav=${actual_err}-sav
+
+ # Prepare the test file
+ $RM $TESTDIR/$TMPOUTFILE
+ TFILE=$2
+ if [ ! -z "$2" ] && [ -e $TESTDIR/$2 ] ; then
+ $CP $TESTDIR/$2 $TESTDIR/$TMPOUTFILE
+ TFILE=$TMPOUTFILE
+ fi
+
+ # Run test.
+ TESTING $FORMCONV $3 $4 $5 $6 $2
+ (
+ cd $TESTDIR
+ $RUNSERIAL $FORMCONV_BIN $3 $4 $5 $6 $TFILE
+ ) >$actual 2>$actual_err
+ cp $actual $actual_sav
+ cp $actual_err $actual_err_sav
+
+ # Compare output
+ COMPARE_OUT $expect_err $actual_err
+
+ # Clean up output file
+ if test -z "$HDF5_NOCLEANUP"; then
+ $RM $actual $actual_err
+ $RM $actual $actual_err $actual_sav $actual_err_sav
+ fi
+}
# To check that the tool exits success, no output
# Assume all short options
@@ -406,7 +450,7 @@ COPY_TESTFILES_TO_TESTDIR
# h5format_convert nonexist.h5 (no options, file does not exist)
TOOLTEST_OUT h5fc_help.ddl '' --help
TOOLTEST_OUT h5fc_nooption.ddl ''
-TOOLTEST_OUT h5fc_nonexistfile.ddl nonexist.h5
+TOOLTEST_ERR h5fc_nonexistfile.ddl nonexist.h5
#
#
# h5format_convert -d old_h5fc_ext_none.h5 (just -d option, file exists)
@@ -416,7 +460,7 @@ TOOLTEST_OUT h5fc_nonexistfile.ddl nonexist.h5
TOOLTEST_OUT h5fc_d_file.ddl old_h5fc_ext_none.h5 -d
TOOLTEST_OUT h5fc_d_file.ddl old_h5fc_ext_none.h5 --dname
TOOLTEST_OUT h5fc_dname.ddl '' --dname
-TOOLTEST_OUT h5fc_nonexistdset_file.ddl old_h5fc_ext_none.h5 --dname=nonexist
+TOOLTEST_ERR h5fc_nonexistdset_file.ddl old_h5fc_ext_none.h5 --dname=nonexist
#
#
#
diff --git a/tools/test/h5jam/CMakeTests.cmake b/tools/test/h5jam/CMakeTests.cmake
index 66ff715..2d00b86 100644
--- a/tools/test/h5jam/CMakeTests.cmake
+++ b/tools/test/h5jam/CMakeTests.cmake
@@ -74,6 +74,8 @@
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${expectfile}.out"
-D "TEST_EXPECT=${resultcode}"
+ -D "TEST_ERRREF=testfiles/${expectfile}.txt"
+ -D "TEST_SKIP_COMPARE=1"
-D "TEST_REFERENCE=testfiles/${expectfile}.txt"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
diff --git a/tools/test/h5jam/tellub.c b/tools/test/h5jam/tellub.c
index 26c725d..aa779b3 100644
--- a/tools/test/h5jam/tellub.c
+++ b/tools/test/h5jam/tellub.c
@@ -104,7 +104,7 @@ main (int argc, const char *argv[])
hsize_t usize;
htri_t testval;
herr_t status;
- hid_t plist = -1;
+ hid_t plist = H5I_INVALID_HID;
h5tools_setprogname(PROGRAMNAME);
h5tools_setstatus(EXIT_SUCCESS);
diff --git a/tools/test/h5ls/CMakeTests.cmake b/tools/test/h5ls/CMakeTests.cmake
index 488b271..116d097 100644
--- a/tools/test/h5ls/CMakeTests.cmake
+++ b/tools/test/h5ls/CMakeTests.cmake
@@ -47,6 +47,12 @@
${HDF5_TOOLS_DIR}/testfiles/tdset_idx.h5
)
+ set (LIST_ERR_TEST_FILES
+ ${HDF5_TOOLS_DIR}/test/h5ls/errfiles/nosuchfile.err
+ ${HDF5_TOOLS_DIR}/test/h5ls/errfiles/textlinksrc-nodangle-1.err
+ ${HDF5_TOOLS_DIR}/test/h5ls/errfiles/tgroup-1.err
+ )
+
set (LIST_OTHER_TEST_FILES
${HDF5_TOOLS_DIR}/testfiles/help-1.ls
${HDF5_TOOLS_DIR}/testfiles/help-2.ls
@@ -116,6 +122,10 @@
get_filename_component(fname "${listfiles}" NAME)
HDFTEST_COPY_FILE("${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${fname}" "h5ls_files")
endforeach ()
+ foreach (listfiles ${LIST_ERR_TEST_FILES})
+ get_filename_component(fname "${listfiles}" NAME)
+ HDFTEST_COPY_FILE("${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${fname}" "h5ls_files")
+ endforeach ()
add_custom_target(h5ls_files ALL COMMENT "Copying files needed by h5ls tests" DEPENDS ${h5ls_files_list})
##############################################################################
@@ -159,6 +169,42 @@
endif ()
endmacro ()
+ macro (ADD_H5_ERR_TEST resultfile resultcode)
+ # If using memchecker add tests without using scripts
+ if (HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (NAME H5LS-${resultfile} COMMAND $<TARGET_FILE:h5ls> ${ARGN})
+ set_tests_properties (H5LS-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ if ("${resultcode}" STREQUAL "1")
+ set_tests_properties (H5LS-${resultfile} PROPERTIES WILL_FAIL "true")
+ endif ()
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5LS-${resultfile} PROPERTIES DEPENDS ${last_test})
+ endif ()
+ else ()
+ # Remove any output file left over from previous test run
+ add_test (
+ NAME H5LS-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ testfiles/${resultfile}.out
+ testfiles/${resultfile}.out.err
+ )
+ add_test (
+ NAME H5LS-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ls"
+ -D "TEST_ERRREF=${resultfile}.err"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5LS-${resultfile} PROPERTIES DEPENDS H5LS-${resultfile}-clear-objects)
+ endif ()
+ endmacro ()
+
macro (ADD_H5_UD_TEST testname resultcode resultfile)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
# Remove any output file left over from previous test run
@@ -341,7 +387,7 @@
# test for displaying groups
# The following combination of arguments is expected to return an error message
# and return value 1
- ADD_H5_TEST (tgroup-1 1 -w80 -r -g tgroup.h5)
+ ADD_H5_ERR_TEST (tgroup-1 1 -w80 -r -g tgroup.h5)
ADD_H5_TEST (tgroup-2 0 -w80 -g tgroup.h5/g1)
# test for files with groups that have long comments
@@ -382,7 +428,7 @@
# tests for no-dangling-links
# if this option is given on dangling link, h5ls should return exit code 1
# when used alone , expect to print out help and return exit code 1
- ADD_H5_TEST (textlinksrc-nodangle-1 1 -w80 --no-dangling-links textlinksrc.h5)
+ ADD_H5_ERR_TEST (textlinksrc-nodangle-1 1 -w80 --no-dangling-links textlinksrc.h5)
# external dangling link - expected exit code 1
ADD_H5_TEST (textlinksrc-nodangle-2 1 -w80 --follow-symlinks --no-dangling-links textlinksrc.h5)
# soft dangling link - expected exit code 1
@@ -444,7 +490,7 @@
endif ()
# test for non-existing file
- ADD_H5_TEST (nosuchfile 1 nosuchfile.h5)
+ ADD_H5_ERR_TEST (nosuchfile 1 nosuchfile.h5)
# test for variable length data types in verbose mode
if (H5_WORDS_BIGENDIAN)
diff --git a/tools/test/h5ls/errfiles/nosuchfile.err b/tools/test/h5ls/errfiles/nosuchfile.err
new file mode 100644
index 0000000..8c4ee42
--- /dev/null
+++ b/tools/test/h5ls/errfiles/nosuchfile.err
@@ -0,0 +1 @@
+nosuchfile.h5: unable to open file
diff --git a/tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err b/tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err
new file mode 100644
index 0000000..8991fc1
--- /dev/null
+++ b/tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err
@@ -0,0 +1,2 @@
+Error: --no-dangling-links must be used along with --follow-symlinks option!
+
diff --git a/tools/test/h5ls/errfiles/tgroup-1.err b/tools/test/h5ls/errfiles/tgroup-1.err
new file mode 100644
index 0000000..ba4cf07
--- /dev/null
+++ b/tools/test/h5ls/errfiles/tgroup-1.err
@@ -0,0 +1,2 @@
+Error: 'recursive' option not compatible with 'group info' option!
+
diff --git a/tools/test/h5ls/testh5ls.sh.in b/tools/test/h5ls/testh5ls.sh.in
index 8c6551b..353f1bb 100644
--- a/tools/test/h5ls/testh5ls.sh.in
+++ b/tools/test/h5ls/testh5ls.sh.in
@@ -53,6 +53,7 @@ SRC_H5REPACK_TESTFILES="$SRC_TOOLS/test/h5repack/testfiles"
SRC_H5JAM_TESTFILES="$SRC_TOOLS/test/h5jam/testfiles"
SRC_H5STAT_TESTFILES="$SRC_TOOLS/test/h5stat/testfiles"
SRC_H5IMPORT_TESTFILES="$SRC_TOOLS/test/h5import/testfiles"
+SRC_H5LS_ERRFILES="$SRC_TOOLS/test/h5ls/errfiles"
TESTDIR=./testfiles
test -d $TESTDIR || mkdir $TESTDIR
@@ -93,6 +94,12 @@ $SRC_H5LS_TESTFILES/tvldtypes1.h5
$SRC_H5LS_TESTFILES/tdset_idx.h5
"
+LIST_ERROR_TEST_FILES="
+$SRC_H5LS_ERRFILES/nosuchfile.err
+$SRC_H5LS_ERRFILES/textlinksrc-nodangle-1.err
+$SRC_H5LS_ERRFILES/tgroup-1.err
+"
+
LIST_OTHER_TEST_FILES="
$SRC_H5LS_TESTFILES/help-1.ls
$SRC_H5LS_TESTFILES/help-2.ls
@@ -228,8 +235,9 @@ TESTING() {
# $2 and on -- argument for the h5ls tool
TOOLTEST() {
expect="$TESTDIR/$1"
+ expect_err="$TESTDIR/`basename $1 .ls`.err"
actual="$TESTDIR/`basename $1 .ls`.out"
- actual_err="$TESTDIR/`basename $1 .ls`.err"
+ actual_err="$TESTDIR/`basename $1 .ls`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
shift
@@ -251,7 +259,6 @@ TOOLTEST() {
STDOUT_FILTER $actual
cp $actual_err $actual_err_sav
STDERR_FILTER $actual_err
- cat $actual_err >> $actual
if [ $h5haveexitcode = 'yes' -a $exitcode -ne $retvalexpect ]; then
echo "*FAILED*"
nerrors="`expr $nerrors + 1`"
diff --git a/tools/test/h5repack/CMakeTests.cmake b/tools/test/h5repack/CMakeTests.cmake
index 3ee5e27..ad468f0 100644
--- a/tools/test/h5repack/CMakeTests.cmake
+++ b/tools/test/h5repack/CMakeTests.cmake
@@ -377,7 +377,8 @@
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_MASK_ERROR=true"
- -D "TEST_REFERENCE=${resultfile}-${testname}.tst"
+ -D "TEST_REFERENCE=${resultfile}.mty"
+ -D "TEST_ERRREF=${resultfile}-${testname}.tst"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5REPACK_MASK-${testname} PROPERTIES DEPENDS H5REPACK_MASK-${testname}-clear-objects)
diff --git a/tools/test/h5stat/CMakeTests.cmake b/tools/test/h5stat/CMakeTests.cmake
index bd55ac1..ec8c9b1 100644
--- a/tools/test/h5stat/CMakeTests.cmake
+++ b/tools/test/h5stat/CMakeTests.cmake
@@ -39,23 +39,30 @@
h5stat_newgrat
h5stat_newgrat-UG
h5stat_newgrat-UA
- h5stat_err1_links
h5stat_idx
h5stat_links1
h5stat_links2
h5stat_links3
h5stat_links4
h5stat_links5
- h5stat_err1_dims
h5stat_dims1
h5stat_dims2
- h5stat_err1_numattrs
- h5stat_err2_numattrs
h5stat_numattrs1
h5stat_numattrs2
h5stat_numattrs3
h5stat_numattrs4
)
+ set (HDF5_REFERENCE_ERR_FILES
+ h5stat_err_refcount
+ h5stat_err_old_layout
+ h5stat_err_old_fill
+ h5stat_err1_dims
+ h5stat_err1_links
+ h5stat_err1_numattrs
+ h5stat_err2_numattrs
+ h5stat_notexist
+ h5stat_nofile
+ )
set (HDF5_REFERENCE_TEST_FILES
h5stat_err_refcount.h5
h5stat_err_old_layout.h5
@@ -71,6 +78,10 @@
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/testfiles/${ddl_file}.ddl" "${PROJECT_BINARY_DIR}/${ddl_file}.ddl" "h5stat_files")
endforeach ()
+ foreach (h5_file ${HDF5_REFERENCE_ERR_FILES})
+ HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/testfiles/${h5_file}.err" "${PROJECT_BINARY_DIR}/${h5_file}.err" "h5stat_files")
+ endforeach ()
+
foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "h5stat_files")
endforeach ()
@@ -118,6 +129,43 @@
endif ()
endmacro ()
+ macro (ADD_H5_ERR_TEST resultfile resultcode)
+ # If using memchecker add tests without using scripts
+ if (HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (NAME H5STAT-${resultfile} COMMAND $<TARGET_FILE:h5stat> ${ARGN})
+ if (NOT "${resultcode}" STREQUAL "0")
+ set_tests_properties (H5STAT-${resultfile} PROPERTIES WILL_FAIL "true")
+ endif ()
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5STAT-${resultfile} PROPERTIES DEPENDS ${last_test})
+ endif ()
+ else (HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5STAT-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${resultfile}.out
+ ${resultfile}.out.err
+ )
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5STAT-${resultfile}-clear-objects PROPERTIES DEPENDS ${last_test})
+ endif ()
+ add_test (
+ NAME H5STAT-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
+ -D "TEST_ARGS=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.mty"
+ -D "TEST_ERRREF=${resultfile}.err"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5STAT-${resultfile} PROPERTIES DEPENDS H5STAT-${resultfile}-clear-objects)
+ endif ()
+ endmacro ()
+
##############################################################################
##############################################################################
### T H E T E S T S ###
@@ -173,7 +221,7 @@
# -g -l 8
# --links=8
# --links=20 -g
- ADD_H5_TEST (h5stat_err1_links 1 -l 0 h5stat_threshold.h5)
+ ADD_H5_ERR_TEST (h5stat_err1_links 1 -l 0 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_links1 0 -g -l 8 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_links2 0 --links=8 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_links3 0 --links=20 -g h5stat_threshold.h5)
@@ -188,7 +236,7 @@
# -d --dims=-1 (incorrect threshold value)
# -gd -m 5
# -d --di=15
- ADD_H5_TEST (h5stat_err1_dims 1 -d --dims=-1 h5stat_threshold.h5)
+ ADD_H5_ERR_TEST (h5stat_err1_dims 1 -d --dims=-1 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_dims1 0 -gd -m 5 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_dims2 0 -d --di=15 h5stat_threshold.h5)
#
@@ -198,8 +246,8 @@
# -AS -a 10
# -a 1
# -A --numattrs=25
- ADD_H5_TEST (h5stat_err1_numattrs 1 -a -2 h5stat_threshold.h5)
- ADD_H5_TEST (h5stat_err2_numattrs 1 --numattrs h5stat_threshold.h5)
+ ADD_H5_ERR_TEST (h5stat_err1_numattrs 1 -a -2 h5stat_threshold.h5)
+ ADD_H5_ERR_TEST (h5stat_err2_numattrs 1 --numattrs h5stat_threshold.h5)
ADD_H5_TEST (h5stat_numattrs1 0 -AS -a 10 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_numattrs2 0 -a 1 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_numattrs3 0 -A --numattrs=25 h5stat_threshold.h5)
diff --git a/tools/test/h5stat/testfiles/h5stat_err1_dims.ddl b/tools/test/h5stat/testfiles/h5stat_err1_dims.err
index 86d375b..86d375b 100644
--- a/tools/test/h5stat/testfiles/h5stat_err1_dims.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err1_dims.err
diff --git a/tools/test/h5stat/testfiles/h5stat_err1_links.ddl b/tools/test/h5stat/testfiles/h5stat_err1_links.err
index d43207c..d43207c 100644
--- a/tools/test/h5stat/testfiles/h5stat_err1_links.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err1_links.err
diff --git a/tools/test/h5stat/testfiles/h5stat_err2_numattrs.ddl b/tools/test/h5stat/testfiles/h5stat_err1_numattrs.err
index 01b6c18..01b6c18 100644
--- a/tools/test/h5stat/testfiles/h5stat_err2_numattrs.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err1_numattrs.err
diff --git a/tools/test/h5stat/testfiles/h5stat_err1_numattrs.ddl b/tools/test/h5stat/testfiles/h5stat_err2_numattrs.err
index 01b6c18..01b6c18 100644
--- a/tools/test/h5stat/testfiles/h5stat_err1_numattrs.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err2_numattrs.err
diff --git a/tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl b/tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl
index e751b7f..5cc1e32 100644
--- a/tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl
@@ -1,2 +1 @@
Filename: h5stat_err_old_fill.h5
-h5stat error: unable to traverse objects/links in file "h5stat_err_old_fill.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_err_old_fill.err b/tools/test/h5stat/testfiles/h5stat_err_old_fill.err
new file mode 100644
index 0000000..8b886d2
--- /dev/null
+++ b/tools/test/h5stat/testfiles/h5stat_err_old_fill.err
@@ -0,0 +1 @@
+h5stat error: unable to traverse objects/links in file "h5stat_err_old_fill.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_err_old_layout.ddl b/tools/test/h5stat/testfiles/h5stat_err_old_layout.ddl
index a3e27e2..112190c 100644
--- a/tools/test/h5stat/testfiles/h5stat_err_old_layout.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err_old_layout.ddl
@@ -1,2 +1 @@
Filename: h5stat_err_old_layout.h5
-h5stat error: unable to traverse objects/links in file "h5stat_err_old_layout.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_err_old_layout.err b/tools/test/h5stat/testfiles/h5stat_err_old_layout.err
new file mode 100644
index 0000000..7aa2fa7
--- /dev/null
+++ b/tools/test/h5stat/testfiles/h5stat_err_old_layout.err
@@ -0,0 +1 @@
+h5stat error: unable to traverse objects/links in file "h5stat_err_old_layout.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_err_refcount.ddl b/tools/test/h5stat/testfiles/h5stat_err_refcount.ddl
index 1f1b491..41e533e 100644
--- a/tools/test/h5stat/testfiles/h5stat_err_refcount.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_err_refcount.ddl
@@ -1,2 +1 @@
Filename: h5stat_err_refcount.h5
-h5stat error: unable to traverse objects/links in file "h5stat_err_refcount.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_err_refcount.err b/tools/test/h5stat/testfiles/h5stat_err_refcount.err
new file mode 100644
index 0000000..d176996
--- /dev/null
+++ b/tools/test/h5stat/testfiles/h5stat_err_refcount.err
@@ -0,0 +1 @@
+h5stat error: unable to traverse objects/links in file "h5stat_err_refcount.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_nofile.ddl b/tools/test/h5stat/testfiles/h5stat_nofile.ddl
index 7171320..01e39af 100644
--- a/tools/test/h5stat/testfiles/h5stat_nofile.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_nofile.ddl
@@ -23,4 +23,3 @@ Usage: h5stat [OPTIONS] file
-s, --freespace Print free space information
-S, --summary Print summary of file space information
--enable-error-stack Prints messages from the HDF5 error stack as they occur
-h5stat error: missing file name
diff --git a/tools/test/h5stat/testfiles/h5stat_nofile.err b/tools/test/h5stat/testfiles/h5stat_nofile.err
new file mode 100644
index 0000000..3b7e979
--- /dev/null
+++ b/tools/test/h5stat/testfiles/h5stat_nofile.err
@@ -0,0 +1 @@
+h5stat error: missing file name
diff --git a/tools/test/h5stat/testfiles/h5stat_notexist.ddl b/tools/test/h5stat/testfiles/h5stat_notexist.ddl
index cc25e43..7f71941 100644
--- a/tools/test/h5stat/testfiles/h5stat_notexist.ddl
+++ b/tools/test/h5stat/testfiles/h5stat_notexist.ddl
@@ -1,2 +1 @@
Filename: notexist.h5
-h5stat error: unable to open file "notexist.h5"
diff --git a/tools/test/h5stat/testfiles/h5stat_notexist.err b/tools/test/h5stat/testfiles/h5stat_notexist.err
new file mode 100644
index 0000000..c1d9e54
--- /dev/null
+++ b/tools/test/h5stat/testfiles/h5stat_notexist.err
@@ -0,0 +1 @@
+h5stat error: unable to open file "notexist.h5"
diff --git a/tools/test/h5stat/testh5stat.sh.in b/tools/test/h5stat/testh5stat.sh.in
index 0a5127f..69b856e 100644
--- a/tools/test/h5stat/testh5stat.sh.in
+++ b/tools/test/h5stat/testh5stat.sh.in
@@ -79,6 +79,18 @@ $SRC_H5STAT_TESTFILES/h5stat_idx.h5
$SRC_H5STAT_TESTFILES/h5stat_threshold.h5
"
+LIST_ERR_TEST_FILES="
+$SRC_H5STAT_TESTFILES/h5stat_err_refcount.err
+$SRC_H5STAT_TESTFILES/h5stat_err_old_layout.err
+$SRC_H5STAT_TESTFILES/h5stat_err_old_fill.err
+$SRC_H5STAT_TESTFILES/h5stat_err1_links.err
+$SRC_H5STAT_TESTFILES/h5stat_err1_dims.err
+$SRC_H5STAT_TESTFILES/h5stat_err1_numattrs.err
+$SRC_H5STAT_TESTFILES/h5stat_err2_numattrs.err
+$SRC_H5STAT_TESTFILES/h5stat_notexist.err
+$SRC_H5STAT_TESTFILES/h5stat_nofile.err
+"
+
LIST_OTHER_TEST_FILES="
$SRC_H5STAT_TESTFILES/h5stat_err_refcount.ddl
$SRC_H5STAT_TESTFILES/h5stat_err_old_layout.ddl
@@ -100,17 +112,13 @@ $SRC_H5STAT_TESTFILES/h5stat_newgrat.ddl
$SRC_H5STAT_TESTFILES/h5stat_newgrat-UG.ddl
$SRC_H5STAT_TESTFILES/h5stat_newgrat-UA.ddl
$SRC_H5STAT_TESTFILES/h5stat_idx.ddl
-$SRC_H5STAT_TESTFILES/h5stat_err1_links.ddl
$SRC_H5STAT_TESTFILES/h5stat_links1.ddl
$SRC_H5STAT_TESTFILES/h5stat_links2.ddl
$SRC_H5STAT_TESTFILES/h5stat_links3.ddl
$SRC_H5STAT_TESTFILES/h5stat_links4.ddl
$SRC_H5STAT_TESTFILES/h5stat_links5.ddl
-$SRC_H5STAT_TESTFILES/h5stat_err1_dims.ddl
$SRC_H5STAT_TESTFILES/h5stat_dims1.ddl
$SRC_H5STAT_TESTFILES/h5stat_dims2.ddl
-$SRC_H5STAT_TESTFILES/h5stat_err1_numattrs.ddl
-$SRC_H5STAT_TESTFILES/h5stat_err2_numattrs.ddl
$SRC_H5STAT_TESTFILES/h5stat_numattrs1.ddl
$SRC_H5STAT_TESTFILES/h5stat_numattrs2.ddl
$SRC_H5STAT_TESTFILES/h5stat_numattrs3.ddl
@@ -120,7 +128,7 @@ $SRC_H5STAT_TESTFILES/h5stat_numattrs4.ddl
#
# copy test files and expected output files from source dirs to test dir
#
-COPY_TESTFILES="$LIST_HDF5_TEST_FILES $LIST_OTHER_TEST_FILES"
+COPY_TESTFILES="$LIST_HDF5_TEST_FILES $LIST_ERR_TEST_FILES $LIST_OTHER_TEST_FILES"
COPY_TESTFILES_TO_TESTDIR()
{
@@ -184,8 +192,9 @@ TESTING() {
#
TOOLTEST() {
expect="$TESTDIR/$1"
+ expect_err="$TESTDIR/`basename $1 .ddl`.err"
actual="$TESTDIR/`basename $1 .ddl`.out"
- actual_err="$TESTDIR/`basename $1 .ddl`.err"
+ actual_err="$TESTDIR/`basename $1 .ddl`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
shift
@@ -202,14 +211,17 @@ TOOLTEST() {
STDOUT_FILTER $actual
cp $actual_err $actual_err_sav
STDERR_FILTER $actual_err
- cat $actual_err >> $actual
if [ ! -f $expect ]; then
- # Create the expect file if it doesn't yet exist.
- echo " CREATED"
- cp $actual $expect
- echo " Expected result (*.ddl) missing"
- nerrors="`expr $nerrors + 1`"
+ # Compare error files if the expect file doesn't exist.
+ if $CMP $expect_err $actual_err; then
+ echo " PASSED"
+ else
+ echo "*FAILED*"
+ echo " Expected result (*.err) differs from actual result (*.out.err)"
+ nerrors="`expr $nerrors + 1`"
+ test yes = "$verbose" && $DIFF $expect_err $actual_err |sed 's/^/ /'
+ fi
elif $CMP $expect $actual; then
echo " PASSED"
else
diff --git a/tools/test/misc/CMakeTestsClear.cmake b/tools/test/misc/CMakeTestsClear.cmake
index a51d0e9..c46ac59 100644
--- a/tools/test/misc/CMakeTestsClear.cmake
+++ b/tools/test/misc/CMakeTestsClear.cmake
@@ -49,8 +49,6 @@
h5clear_missing_file.ddl
h5clear_noclose_after_size.ddl
h5clear_noclose_before_size.ddl
- h5clear_no_mdc_image.ddl
- h5clear_open_fail.ddl
h5clear_status_noclose_after_size.ddl
h5clear_usage.ddl
h5clear_user_equal_after_size.ddl
@@ -60,10 +58,17 @@
h5clear_user_less_after_size.ddl
h5clear_user_less_before_size.ddl
)
+ set (HDF5_REFERENCE_ERR_FILES
+ h5clear_no_mdc_image.err
+ h5clear_open_fail.err
+ )
foreach (h5_file ${HDF5_TEST_FILES} ${HDF5_SEC2_TEST_FILES} ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files")
endforeach ()
+ foreach (h5_file ${HDF5_REFERENCE_ERR_FILES})
+ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files")
+ endforeach ()
# make second copy of h5clear_sec2.h5
foreach (h5_file ${HDF5_SEC2_TEST_FILES})
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/orig_${h5_file}" "h5clear_files")
@@ -108,6 +113,35 @@
endif ()
endmacro ()
+ macro (ADD_H5_ERR_CMP testname resultfile resultcode)
+ if (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5CLEAR_CMP-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ testfiles/${testname}.out
+ testfiles/${testname}.out.err
+ )
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5CLEAR_CMP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ endif ()
+ add_test (
+ NAME H5CLEAR_CMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${testname}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.mty"
+ -D "TEST_ERRREF=${resultfile}.err"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5CLEAR_CMP-${testname} PROPERTIES DEPENDS H5CLEAR_CMP-${testname}-clear-objects)
+ set (last_test "H5CLEAR_CMP-${testname}")
+ endif ()
+ endmacro ()
+
macro (ADD_H5_CMP_WITH_COPY testname resultcode resultfile testfile)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
@@ -144,6 +178,43 @@
endif ()
endmacro ()
+ macro (ADD_H5_ERR_CMP_WITH_COPY testname resultcode resultfile testfile)
+ if (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5CLEAR_CMP-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ testfiles/${testname}.out
+ testfiles/${testname}.out.err
+ testfiles/${testfile}
+ )
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5CLEAR_CMP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ endif ()
+ add_test (
+ NAME H5CLEAR_CMP-copy_${testname}
+ COMMAND ${CMAKE_COMMAND}
+ -E copy_if_different
+ "${PROJECT_SOURCE_DIR}/testfiles/${testfile}" "${PROJECT_BINARY_DIR}/testfiles/${testfile}"
+ )
+ set_tests_properties (H5CLEAR_CMP-copy_${testname} PROPERTIES DEPENDS H5CLEAR_CMP-${testname}-clear-objects)
+ add_test (
+ NAME H5CLEAR_CMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
+ -D "TEST_ARGS:STRING=${ARGN};${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${testname}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.mty"
+ -D "TEST_ERRREF=${resultfile}.err"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5CLEAR_CMP-${testname} PROPERTIES DEPENDS H5CLEAR_CMP-copy_${testname})
+ set (last_test "H5CLEAR_CMP-${testname}")
+ endif ()
+ endmacro ()
+
macro (ADD_H5_RETTEST testname resultcode)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
@@ -347,11 +418,11 @@ endif()
ADD_H5_CMP (h5clr_usage_junk h5clear_usage 1 "" junk.h5)
ADD_H5_CMP (h5clr_usage_none h5clear_usage 1 "" orig_h5clear_sec2_v3.h5)
ADD_H5_CMP (h5clr_missing_file_m h5clear_missing_file 1 "-m")
- ADD_H5_CMP (h5clr_open_fail_s h5clear_open_fail 1 "-s" junk.h5)
+ ADD_H5_ERR_CMP (h5clr_open_fail_s h5clear_open_fail 1 "-s" junk.h5)
ADD_H5_CMP (h5clr_missing_file_ms h5clear_missing_file 1 "-m" "-s")
- ADD_H5_CMP (h5clr_open_fail_ms h5clear_open_fail 1 "-m" "-s" junk.h5)
- ADD_H5_CMP (h5clr_no_mdc_image_m h5clear_no_mdc_image 0 "-m" orig_h5clear_sec2_v2.h5)
- ADD_H5_CMP (h5clr_no_mdc_image_ms h5clear_no_mdc_image 0 "-s" "-m" orig_h5clear_sec2_v0.h5)
+ ADD_H5_ERR_CMP (h5clr_open_fail_ms h5clear_open_fail 1 "-m" "-s" junk.h5)
+ ADD_H5_ERR_CMP (h5clr_no_mdc_image_m h5clear_no_mdc_image 0 "-m" orig_h5clear_sec2_v2.h5)
+ ADD_H5_ERR_CMP (h5clr_no_mdc_image_ms h5clear_no_mdc_image 0 "-s" "-m" orig_h5clear_sec2_v0.h5)
#
#
#
@@ -382,8 +453,8 @@ endif()
#
#
# h5clear_mdc_image.h5 already has cache image removed earlier, verify the expected warning from h5clear:
- ADD_H5_CMP (h5clr_mdc_image_m h5clear_no_mdc_image 0 "-m" mod_h5clear_mdc_image.h5)
- ADD_H5_CMP (h5clr_mdc_image_sm h5clear_no_mdc_image 0 "-s" "-m" mod_h5clear_mdc_image2.h5)
+ ADD_H5_ERR_CMP (h5clr_mdc_image_m h5clear_no_mdc_image 0 "-m" mod_h5clear_mdc_image.h5)
+ ADD_H5_ERR_CMP (h5clr_mdc_image_sm h5clear_no_mdc_image 0 "-s" "-m" mod_h5clear_mdc_image2.h5)
#
#
#
@@ -404,7 +475,7 @@ endif()
# "h5clear -s --increment=0 h5clear_status_noclose.h5" (clear status_flag, EOA = MAX(EOA, EOF) + 0)
# (no output, check exit code)
# "h5clear --filesize h5clear_status_noclose.h5" (print EOA/EOF after the last action)
- ADD_H5_CMP_WITH_COPY (h5clr_open_fail_nc_s 1 h5clear_open_fail h5clear_status_noclose.h5 "--filesize")
+ ADD_H5_ERR_CMP_WITH_COPY (h5clr_open_fail_nc_s 1 h5clear_open_fail h5clear_status_noclose.h5 "--filesize")
ADD_H5_RETTEST (h5clr_mdc_image_nc "false" "-s" "--increment=0" h5clear_status_noclose.h5)
ADD_H5_CMP (h5clr_no_mdc_image_nc_m h5clear_status_noclose_after_size 0 "--filesize" h5clear_status_noclose.h5)
#
diff --git a/tools/test/misc/testfiles/h5clear_missing_file.ddl b/tools/test/misc/testfiles/h5clear_missing_file.ddl
index 13eb2c9..32dd549 100644
--- a/tools/test/misc/testfiles/h5clear_missing_file.ddl
+++ b/tools/test/misc/testfiles/h5clear_missing_file.ddl
@@ -20,4 +20,3 @@ h5clear --increment file_name
h5clear --increment=512 file_name
Set the EOA to the maximum of (EOA, EOF) + 512 for the file <file_name>.
-h5clear error: missing file name
diff --git a/tools/test/misc/testfiles/h5clear_missing_file.err b/tools/test/misc/testfiles/h5clear_missing_file.err
new file mode 100644
index 0000000..ea21b76
--- /dev/null
+++ b/tools/test/misc/testfiles/h5clear_missing_file.err
@@ -0,0 +1 @@
+h5clear error: missing file name
diff --git a/tools/test/misc/testfiles/h5clear_no_mdc_image.ddl b/tools/test/misc/testfiles/h5clear_no_mdc_image.err
index f5acd71..f5acd71 100644
--- a/tools/test/misc/testfiles/h5clear_no_mdc_image.ddl
+++ b/tools/test/misc/testfiles/h5clear_no_mdc_image.err
diff --git a/tools/test/misc/testfiles/h5clear_open_fail.ddl b/tools/test/misc/testfiles/h5clear_open_fail.err
index 895ecd4..895ecd4 100644
--- a/tools/test/misc/testfiles/h5clear_open_fail.ddl
+++ b/tools/test/misc/testfiles/h5clear_open_fail.err
diff --git a/tools/test/misc/testh5clear.sh.in b/tools/test/misc/testh5clear.sh.in
index 11c2ff9..3f2b32f 100644
--- a/tools/test/misc/testh5clear.sh.in
+++ b/tools/test/misc/testh5clear.sh.in
@@ -62,10 +62,10 @@ test -d $TESTDIR || mkdir -p $TESTDIR
# copy test files and expected output files from source dirs to test dir
#
COPY_TESTFILES="
+$SRC_H5CLEAR_TESTFILES/h5clear_open_fail.err
+$SRC_H5CLEAR_TESTFILES/h5clear_no_mdc_image.err
$SRC_H5CLEAR_TESTFILES/h5clear_usage.ddl
-$SRC_H5CLEAR_TESTFILES/h5clear_open_fail.ddl
$SRC_H5CLEAR_TESTFILES/h5clear_missing_file.ddl
-$SRC_H5CLEAR_TESTFILES/h5clear_no_mdc_image.ddl
$SRC_H5CLEAR_TESTFILES/h5clear_status_noclose_after_size.ddl
$SRC_H5CLEAR_TESTFILES/h5clear_noclose_before_size.ddl
$SRC_H5CLEAR_TESTFILES/h5clear_noclose_after_size.ddl
@@ -179,8 +179,9 @@ TOOLTEST_OUT() {
expected=$5
# Prepare expected and actual output
expect="$TESTDIR/$expected"
+ expect_err="$TESTDIR/`basename $expected .ddl`.err"
actual="$TESTDIR/`basename $expected .ddl`.out"
- actual_err="$TESTDIR/`basename $expected .ddl`.err"
+ actual_err="$TESTDIR/`basename $expected .ddl`.out.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
@@ -192,7 +193,6 @@ TOOLTEST_OUT() {
) >$actual 2>$actual_err
cp $actual $actual_sav
cp $actual_err $actual_err_sav
- cat $actual_err >> $actual
# Compare output
COMPARE_OUT $expect $actual
@@ -202,6 +202,38 @@ TOOLTEST_OUT() {
$RM $actual $actual_err $actual_sav $actual_err_sav
fi
}
+# same as TOOLTEST_OUT just compare stderr
+TOOLTEST_ERR() {
+ fname=$1
+ option1=$2
+ option2=$3
+ option3=$4
+ expected=$5
+ # Prepare expected and actual output
+ expect_err="$TESTDIR/$expected"
+ expect="$TESTDIR/`basename $expected .err`.ddl"
+ actual="$TESTDIR/`basename $expected .err`.out"
+ actual_err="$TESTDIR/`basename $expected .err`.out.err"
+ actual_sav=${actual}-sav
+ actual_err_sav=${actual_err}-sav
+
+ # Run test.
+ TESTING $H5CLEAR $option1 $option2 $option3 $option4 $fname
+ (
+ cd $TESTDIR
+ $RUNSERIAL $H5CLEAR_BIN $option1 $option2 $option3 $option4 $fname
+ ) >$actual 2>$actual_err
+ cp $actual $actual_sav
+ cp $actual_err $actual_err_sav
+
+ # Compare output
+ COMPARE_OUT $expect_err $actual_err
+
+ # Clean up output file
+ if test -z "$HDF5_NOCLEANUP"; then
+ $RM $actual $actual_err $actual_sav $actual_err_sav
+ fi
+}
# $1 is the filename to open
# $2 is the expected return from the open/check program
@@ -274,11 +306,11 @@ TOOLTEST_OUT "" "" "" "" h5clear_usage.ddl
TOOLTEST_OUT junk.h5 "" "" "" h5clear_usage.ddl
TOOLTEST_OUT orig_h5clear_sec2_v3.h5 "" "" "" h5clear_usage.ddl
TOOLTEST_OUT "" -m "" "" h5clear_missing_file.ddl
-TOOLTEST_OUT junk.h5 -s "" "" h5clear_open_fail.ddl
+TOOLTEST_ERR junk.h5 -s "" "" h5clear_open_fail.err
TOOLTEST_OUT "" -m -s "" h5clear_missing_file.ddl
-TOOLTEST_OUT junk.h5 -m -s "" h5clear_open_fail.ddl
-TOOLTEST_OUT orig_h5clear_sec2_v2.h5 -m "" "" h5clear_no_mdc_image.ddl
-TOOLTEST_OUT orig_h5clear_sec2_v0.h5 -s -m "" h5clear_no_mdc_image.ddl
+TOOLTEST_ERR junk.h5 -m -s "" h5clear_open_fail.err
+TOOLTEST_ERR orig_h5clear_sec2_v2.h5 -m "" "" h5clear_no_mdc_image.err
+TOOLTEST_ERR orig_h5clear_sec2_v0.h5 -s -m "" h5clear_no_mdc_image.err
#
#
# The following are tests to verify the expected exit code from h5clear:
@@ -308,8 +340,8 @@ TOOLTEST h5clear_sec2_v0.h5 -l -m $FAIL
#
#
# h5clear_mdc_image.h5 already has cache image removed earlier, verify the expected warning from h5clear:
-TOOLTEST_OUT mod_h5clear_mdc_image.h5 -m "" "" h5clear_no_mdc_image.ddl
-TOOLTEST_OUT mod_h5clear_mdc_image.h5 -s -m "" h5clear_no_mdc_image.ddl
+TOOLTEST_ERR mod_h5clear_mdc_image.h5 -m "" "" h5clear_no_mdc_image.err
+TOOLTEST_ERR mod_h5clear_mdc_image.h5 -s -m "" h5clear_no_mdc_image.err
#
#
#
@@ -342,16 +374,16 @@ OPEN_CHK h5clear_sec2_v2.h5 $SUCCEED
#
#
#
-# (1) h5clear_status_noclose.h5
+# (1) h5clear_status_noclose.h5
# "h5clear --filesize h5clear_status_noclose.h5" (unable to open the file because status_flag is on)
-# "h5clear -s --increment=0 h5clear_status_noclose.h5" (clear status_flag, EOA = MAX(EOA, EOF) + 0)
+# "h5clear -s --increment=0 h5clear_status_noclose.h5" (clear status_flag, EOA = MAX(EOA, EOF) + 0)
# (no output, check exit code)
# "h5clear --filesize h5clear_status_noclose_user.h5" (print EOA/EOF after the last action)
-TOOLTEST_OUT h5clear_status_noclose.h5 --filesize "" "" h5clear_open_fail.ddl
+TOOLTEST_ERR h5clear_status_noclose.h5 --filesize "" "" h5clear_open_fail.err
TOOLTEST h5clear_status_noclose.h5 -s --increment=0 $SUCCEED
TOOLTEST_OUT h5clear_status_noclose.h5 --filesize "" "" h5clear_status_noclose_after_size.ddl
#
-# (2) h5clear_fsm_persist_noclose.h5
+# (2) h5clear_fsm_persist_noclose.h5
# "h5clear --filesize h5clear_fsm_persist_noclose.h5" (print EOA/EOF before the next action)
# "h5clear --increment=0 h5clear_fsm_persist_noclose.h5" (EOA = MAX(EOA, EOF)) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_noclose.h5" (print EOA/EOF after the last action)
@@ -364,7 +396,7 @@ TOOLTEST_OUT h5clear_fsm_persist_noclose.h5 --filesize "" "" h5clear_noclose_aft
# "h5clear --increment h5clear_fsm_persist_equal.h5" (EOA = MAX(EOA, EOF) + 1M) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_equal.h5" (print EOA/EOF after the last action)
TOOLTEST_OUT h5clear_fsm_persist_equal.h5 --filesize "" "" h5clear_equal_before_size.ddl
-TOOLTEST h5clear_fsm_persist_equal.h5 --increment "" $SUCCEED
+TOOLTEST h5clear_fsm_persist_equal.h5 --increment "" $SUCCEED
TOOLTEST_OUT h5clear_fsm_persist_equal.h5 --filesize "" "" h5clear_equal_after_size.ddl
#
# (4) h5clear_fsm_persist_greater.h5
@@ -372,7 +404,7 @@ TOOLTEST_OUT h5clear_fsm_persist_equal.h5 --filesize "" "" h5clear_equal_after_s
# "h5clear --increment=0 h5clear_fsm_persist_greater.h5" (EOA = MAX(EOA, EOF) + 0) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_greater.h5" (print EOA/EOF after the last action)
TOOLTEST_OUT h5clear_fsm_persist_greater.h5 --filesize "" "" h5clear_greater_before_size.ddl
-TOOLTEST h5clear_fsm_persist_greater.h5 --increment=0 "" $SUCCEED
+TOOLTEST h5clear_fsm_persist_greater.h5 --increment=0 "" $SUCCEED
TOOLTEST_OUT h5clear_fsm_persist_greater.h5 --filesize "" "" h5clear_greater_after_size.ddl
#
# (5) h5clear_fsm_persist_less.h5
@@ -380,7 +412,7 @@ TOOLTEST_OUT h5clear_fsm_persist_greater.h5 --filesize "" "" h5clear_greater_aft
# "h5clear --increment=200 h5clear_fsm_persist_less.h5" (EOA = MAX(EOA, EOF) + 200) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_less.h5" (print EOA/EOF after the last action)
TOOLTEST_OUT h5clear_fsm_persist_less.h5 --filesize "" "" h5clear_less_before_size.ddl
-TOOLTEST h5clear_fsm_persist_less.h5 --increment=200 "" $SUCCEED
+TOOLTEST h5clear_fsm_persist_less.h5 --increment=200 "" $SUCCEED
TOOLTEST_OUT h5clear_fsm_persist_less.h5 --filesize "" "" h5clear_less_after_size.ddl
#
# (6) h5clear_fsm_persist_user_equal.h5
@@ -388,7 +420,7 @@ TOOLTEST_OUT h5clear_fsm_persist_less.h5 --filesize "" "" h5clear_less_after_siz
# "h5clear --increment h5clear_fsm_persist_user_equal.h5" (EOA = MAX(EOA, EOF) + 1M) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_user_equal.h5" (print EOA/EOF after the last action)
TOOLTEST_OUT h5clear_fsm_persist_user_equal.h5 --filesize "" "" h5clear_user_equal_before_size.ddl
-TOOLTEST h5clear_fsm_persist_user_equal.h5 --increment "" $SUCCEED
+TOOLTEST h5clear_fsm_persist_user_equal.h5 --increment "" $SUCCEED
TOOLTEST_OUT h5clear_fsm_persist_user_equal.h5 --filesize "" "" h5clear_user_equal_after_size.ddl
#
# (7) h5clear_fsm_persist_user_greater.h5
@@ -396,7 +428,7 @@ TOOLTEST_OUT h5clear_fsm_persist_user_equal.h5 --filesize "" "" h5clear_user_equ
# "h5clear --increment=0 h5clear_fsm_persist_user_greater.h5" (EOA = MAX(EOA, EOF) + 0) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_user_greater.h5" (print EOA/EOF after the last action)
TOOLTEST_OUT h5clear_fsm_persist_user_greater.h5 --filesize "" "" h5clear_user_greater_before_size.ddl
-TOOLTEST h5clear_fsm_persist_user_greater.h5 --increment=0 "" $SUCCEED
+TOOLTEST h5clear_fsm_persist_user_greater.h5 --increment=0 "" $SUCCEED
TOOLTEST_OUT h5clear_fsm_persist_user_greater.h5 --filesize "" "" h5clear_user_greater_after_size.ddl
#
# (8) h5clear_fsm_persist_user_less.h5
@@ -404,7 +436,7 @@ TOOLTEST_OUT h5clear_fsm_persist_user_greater.h5 --filesize "" "" h5clear_user_g
# "h5clear --increment=200 h5clear_fsm_persist_user_less.h5" (EOA = MAX(EOA, EOF) + 200) (no output, check exit code)
# "h5clear --filesize h5clear_fsm_persist_user_less.h5" (print EOA/EOF after the last action)
TOOLTEST_OUT h5clear_fsm_persist_user_less.h5 --filesize "" "" h5clear_user_less_before_size.ddl
-TOOLTEST h5clear_fsm_persist_user_less.h5 --increment=200 "" $SUCCEED
+TOOLTEST h5clear_fsm_persist_user_less.h5 --increment=200 "" $SUCCEED
TOOLTEST_OUT h5clear_fsm_persist_user_less.h5 --filesize "" "" h5clear_user_less_after_size.ddl
#
#
diff --git a/tools/testfiles/err_attr_dspace.ddl b/tools/testfiles/err_attr_dspace.ddl
index 6c45322..48ef659 100644
--- a/tools/testfiles/err_attr_dspace.ddl
+++ b/tools/testfiles/err_attr_dspace.ddl
@@ -2,4 +2,3 @@ HDF5 "err_attr_dspace.h5" {
GROUP "/" {
}
}
-h5dump error: error getting attribute information
diff --git a/tools/testfiles/non_existing.ddl b/tools/testfiles/non_existing.ddl
index 4377f8d..4407eae 100644
--- a/tools/testfiles/non_existing.ddl
+++ b/tools/testfiles/non_existing.ddl
@@ -28,4 +28,3 @@ GROUP "/" {
}
}
}
-h5dump error: unable to open file "non_existing.h5"
diff --git a/tools/testfiles/nosuchfile.ls b/tools/testfiles/nosuchfile.ls
index 8c4ee42..e69de29 100644
--- a/tools/testfiles/nosuchfile.ls
+++ b/tools/testfiles/nosuchfile.ls
@@ -1 +0,0 @@
-nosuchfile.h5: unable to open file
diff --git a/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
index 0a3beb0..19de76f 100644
--- a/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
+++ b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: missing file name
diff --git a/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
index b0683a7..b281827 100644
--- a/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
@@ -15,4 +15,3 @@ DATASET "/DS08BITS" {
}
}
}
-h5dump error: Packed Bit offset+length value(9) too large. Max is 8
diff --git a/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
index 530fa05..ee56a5c 100644
--- a/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
@@ -15,4 +15,3 @@ DATASET "/DS08BITS" {
}
}
}
-h5dump error: Packed Bit offset+length value(9) too large. Max is 8
diff --git a/tools/testfiles/pbits/tpbitsIncomplete.ddl b/tools/testfiles/pbits/tpbitsIncomplete.ddl
index b353065..19de76f 100644
--- a/tools/testfiles/pbits/tpbitsIncomplete.ddl
+++ b/tools/testfiles/pbits/tpbitsIncomplete.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: Bad mask list(0,2,2,1,0,2,2,)
diff --git a/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
index 1c919cd..1cba6d5 100644
--- a/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
@@ -15,4 +15,3 @@ DATASET "/DS16BITS" {
}
}
}
-h5dump error: Packed Bit offset+length value(17) too large. Max is 16
diff --git a/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
index f3b2a8c..330d61f 100644
--- a/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
@@ -15,4 +15,3 @@ DATASET "/DS16BITS" {
}
}
}
-h5dump error: Packed Bit offset+length value(17) too large. Max is 16
diff --git a/tools/testfiles/pbits/tpbitsLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
index ffe0da9..19de76f 100644
--- a/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: Packed Bit offset+length value(65) too large. Max is 64
diff --git a/tools/testfiles/pbits/tpbitsLengthPositive.ddl b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
index 4502143..19de76f 100644
--- a/tools/testfiles/pbits/tpbitsLengthPositive.ddl
+++ b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: Packed Bit length value(0) must be positive.
diff --git a/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
index 812c300..44ec077 100644
--- a/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
@@ -23,4 +23,3 @@ DATASET "/DS32BITS" {
}
}
}
-h5dump error: Packed Bit offset+length value(33) too large. Max is 32
diff --git a/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
index cbea722..c775557 100644
--- a/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
@@ -23,4 +23,3 @@ DATASET "/DS32BITS" {
}
}
}
-h5dump error: Packed Bit offset+length value(33) too large. Max is 32
diff --git a/tools/testfiles/pbits/tpbitsMaxExceeded.ddl b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
index 011f6c9..19de76f 100644
--- a/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: Too many masks requested (max. 8). Mask list(0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1)
diff --git a/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
index 857fe62..19de76f 100644
--- a/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: Packed Bit offset value(64) must be between 0 and 63
diff --git a/tools/testfiles/pbits/tpbitsOffsetNegative.ddl b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
index 9ac1160..19de76f 100644
--- a/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
+++ b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
@@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
-h5dump error: Bad mask list(-1,1)
diff --git a/tools/testfiles/texceedsubblock.ddl b/tools/testfiles/texceedsubblock.ddl
index 499e0d2..69ec706 100644
--- a/tools/testfiles/texceedsubblock.ddl
+++ b/tools/testfiles/texceedsubblock.ddl
@@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
-h5dump error: number of block dims (2) exceed dataset dims (1)
diff --git a/tools/testfiles/texceedsubcount.ddl b/tools/testfiles/texceedsubcount.ddl
index 81e8c4a..69ec706 100644
--- a/tools/testfiles/texceedsubcount.ddl
+++ b/tools/testfiles/texceedsubcount.ddl
@@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
-h5dump error: number of count dims (2) exceed dataset dims (1)
diff --git a/tools/testfiles/texceedsubstart.ddl b/tools/testfiles/texceedsubstart.ddl
index cb535a0..69ec706 100644
--- a/tools/testfiles/texceedsubstart.ddl
+++ b/tools/testfiles/texceedsubstart.ddl
@@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
-h5dump error: number of start dims (2) exceed dataset dims (1)
diff --git a/tools/testfiles/texceedsubstride.ddl b/tools/testfiles/texceedsubstride.ddl
index bf85997..69ec706 100644
--- a/tools/testfiles/texceedsubstride.ddl
+++ b/tools/testfiles/texceedsubstride.ddl
@@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
-h5dump error: number of stride dims (2) exceed dataset dims (1)
diff --git a/tools/testfiles/textlinksrc-nodangle-1.ls b/tools/testfiles/textlinksrc-nodangle-1.ls
index 6d1da9e..491f696 100644
--- a/tools/testfiles/textlinksrc-nodangle-1.ls
+++ b/tools/testfiles/textlinksrc-nodangle-1.ls
@@ -56,5 +56,3 @@ usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
Replaced by --follow-symlinks.
-e, --errors Show all HDF5 error reporting
Replaced by --enable-error-stack.
-Error: --no-dangling-links must be used along with --follow-symlinks option!
-
diff --git a/tools/testfiles/tgroup-1.ls b/tools/testfiles/tgroup-1.ls
index 069d43e..491f696 100644
--- a/tools/testfiles/tgroup-1.ls
+++ b/tools/testfiles/tgroup-1.ls
@@ -56,5 +56,3 @@ usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
Replaced by --follow-symlinks.
-e, --errors Show all HDF5 error reporting
Replaced by --enable-error-stack.
-Error: 'recursive' option not compatible with 'group info' option!
-
diff --git a/tools/testfiles/tstarfile.ddl b/tools/testfiles/tstarfile.ddl
index 87c3f87..1cd87f7 100644
--- a/tools/testfiles/tstarfile.ddl
+++ b/tools/testfiles/tstarfile.ddl
@@ -86,4 +86,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
#004: (file name) line (number) in H5L_get_info_cb(): name doesn't exist
major: Symbol table
minor: Object not found
-h5dump error: unable to get link info from "Dataset1"