summaryrefslogtreecommitdiffstats
path: root/Python/_warnings.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-03-18 01:46:06 (GMT)
committerGitHub <noreply@github.com>2021-03-18 01:46:06 (GMT)
commite0bf70d08c4a4a68782702e747e6bf7670667591 (patch)
tree36994e29ed642e690b7932129ee150c484fd20d9 /Python/_warnings.c
parent08fb8ac99ab03d767aa0f1cfab3573eddf9df018 (diff)
downloadcpython-e0bf70d08c4a4a68782702e747e6bf7670667591.zip
cpython-e0bf70d08c4a4a68782702e747e6bf7670667591.tar.gz
cpython-e0bf70d08c4a4a68782702e747e6bf7670667591.tar.bz2
bpo-43244: Fix test_peg_generator for PyAST_Validate() (GH-24912)
test_peg_generator now defines _Py_TEST_PEGEN macro when building C code to not call PyAST_Validate() in Parser/pegen.c. Moreover, it defines Py_BUILD_CORE_MODULE macro to get access to the internal C API. Remove "global_ast_state" from Python-ast.c when it's built by test_peg_generator: always get the AST state from the current interpreter.
Diffstat (limited to 'Python/_warnings.c')
0 files changed, 0 insertions, 0 deletions
git/log/'>
diff options
context:
space:
mode:
Diffstat
-rw-r--r--CMakeInstallation.cmake10
-rw-r--r--CMakeLists.txt47
-rw-r--r--CTestConfig.cmake4
-rw-r--r--MANIFEST67
-rw-r--r--Makefile.am33
-rw-r--r--README.txt2
-rw-r--r--bin/Makefile.am57
-rw-r--r--bin/batch/cori_ctestP.sl.in.cmake17
-rw-r--r--bin/batch/cori_ctestS.sl.in.cmake16
-rw-r--r--bin/batch/cori_knl_ctestP.sl.in.cmake17
-rw-r--r--bin/batch/cori_knl_ctestS.sl.in.cmake16
-rwxr-xr-xbin/batch/ctest.qsub.in.cmake21
-rw-r--r--bin/batch/ctestP.lsf.in.cmake2
-rw-r--r--bin/batch/ctestP.sl.in.cmake6
-rw-r--r--bin/batch/ctestS.lsf.in.cmake2
-rw-r--r--bin/batch/ctestS.sl.in.cmake2
-rw-r--r--bin/batch/knl_ctestP.sl.in.cmake6
-rw-r--r--bin/batch/knl_ctestS.sl.in.cmake2
-rw-r--r--bin/batch/ray_ctestP.lsf.in.cmake2
-rw-r--r--bin/batch/ray_ctestS.lsf.in.cmake2
-rwxr-xr-xbin/checkposix244
-rw-r--r--bin/h5cc.in (renamed from tools/src/misc/h5cc.in)0
-rw-r--r--bin/h5redeploy.in (renamed from tools/src/misc/h5redeploy.in)0
-rwxr-xr-xbin/snapshot25
-rwxr-xr-xbin/warnhist514
-rw-r--r--c++/Makefile.am14
-rw-r--r--c++/examples/CMakeLists.txt22
-rw-r--r--c++/examples/CMakeTests.cmake8
-rw-r--r--c++/src/C2Cppfunction_map.htm36
-rw-r--r--c++/src/CMakeLists.txt40
-rw-r--r--c++/src/H5File.cpp21
-rw-r--r--c++/src/H5File.h3
-rw-r--r--c++/src/H5LaccProp.h11
-rw-r--r--c++/src/H5LcreatProp.cpp40
-rw-r--r--c++/src/H5LcreatProp.h19
-rw-r--r--c++/src/H5Location.cpp7
-rw-r--r--c++/src/H5Object.cpp73
-rw-r--r--c++/src/H5Object.h26
-rw-r--r--c++/src/cpp_doc_config2
-rw-r--r--c++/test/CMakeLists.txt15
-rw-r--r--c++/test/tarray.cpp3
-rw-r--r--c++/test/tfile.cpp59
-rw-r--r--c++/test/tlinks.cpp416
-rw-r--r--c++/test/tobject.cpp128
-rw-r--r--config/cmake/CTestCustom.cmake10
-rw-r--r--config/cmake/FindHDFJAVA.cmake.in79
-rw-r--r--config/cmake/FindJNI.cmake347
-rw-r--r--config/cmake/H5pubconf.h.in7
-rw-r--r--config/cmake/HDF5UseFortran.cmake12
-rw-r--r--config/cmake/HDFCompilerFlags.cmake7
-rw-r--r--config/cmake/README.txt.cmake.in2
-rw-r--r--config/cmake/UseJava.cmake1149
-rw-r--r--config/cmake/UseJavaClassFilelist.cmake23
-rw-r--r--config/cmake/UseJavaSymlinks.cmake19
-rw-r--r--config/cmake/cacheinit.cmake2
-rw-r--r--config/cmake/hdf5-config-version.cmake.in50
-rw-r--r--config/cmake/hdf5-config.cmake.in42
-rw-r--r--config/cmake/jrunTest.cmake42
-rw-r--r--config/cmake/libhdf5.settings.cmake.in10
-rw-r--r--config/cmake/mccacheinit.cmake2
-rw-r--r--config/cmake/scripts/CTestScript.cmake20
-rw-r--r--config/cmake/scripts/HDF5config.cmake154
-rw-r--r--config/cmake/scripts/HDF5options.cmake16
-rw-r--r--config/cmake/scripts/HPC/bsub-HDF5options.cmake31
-rw-r--r--config/cmake/scripts/HPC/par-HDF5options.cmake126
-rw-r--r--config/cmake/scripts/HPC/qsub-HDF5options.cmake42
-rw-r--r--config/cmake/scripts/HPC/raybsub-HDF5options.cmake32
-rw-r--r--config/cmake/scripts/HPC/sbatch-HDF5options.cmake43
-rw-r--r--config/cmake/scripts/HPC/ser-HDF5options.cmake119
-rw-r--r--config/cmake/userblockTest.cmake12
-rw-r--r--config/cmake/vfdTest.cmake4
-rw-r--r--config/cmake/volTest.cmake4
-rw-r--r--config/cmake_ext_mod/ConfigureChecks.cmake22
-rw-r--r--config/cmake_ext_mod/FindSZIP.cmake232
-rw-r--r--config/cmake_ext_mod/HDFLibMacros.cmake122
-rw-r--r--config/cmake_ext_mod/HDFMacros.cmake13
-rw-r--r--config/cmake_ext_mod/HDFUseCXX.cmake4
-rw-r--r--config/cmake_ext_mod/HDFUseFortran.cmake8
-rw-r--r--config/cmake_ext_mod/grepTest.cmake141
-rw-r--r--config/cmake_ext_mod/runTest.cmake16
-rw-r--r--config/commence.am4
-rw-r--r--config/conclude.am6
-rw-r--r--config/gnu-flags66
-rw-r--r--config/toolchain/crayle.cmake10
-rw-r--r--configure.ac65
-rw-r--r--examples/CMakeLists.txt36
-rw-r--r--examples/CMakeTests.cmake183
-rw-r--r--fortran/Makefile.am17
-rw-r--r--fortran/examples/CMakeLists.txt145
-rw-r--r--fortran/examples/CMakeTests.cmake96
-rw-r--r--fortran/src/CMakeLists.txt301
-rw-r--r--fortran/src/H5Ff.c34
-rw-r--r--fortran/src/H5Fff.F9039
-rw-r--r--fortran/src/H5Pff.F9099
-rw-r--r--fortran/src/H5Sf.c20
-rw-r--r--fortran/src/H5Sff.F9027
-rw-r--r--fortran/src/H5VLff.F90315
-rw-r--r--fortran/src/H5_f.c16
-rw-r--r--fortran/src/H5_ff.F9027
-rw-r--r--fortran/src/H5f90global.F9035
-rw-r--r--fortran/src/H5f90proto.h5
-rw-r--r--fortran/src/HDF5.F901
-rw-r--r--fortran/src/Makefile.am3
-rw-r--r--fortran/src/hdf5_fortrandll.def.in11
-rw-r--r--fortran/test/CMakeLists.txt502
-rw-r--r--fortran/test/CMakeTests.cmake204
-rw-r--r--fortran/test/Makefile.am3
-rw-r--r--fortran/test/tH5F.F9029
-rw-r--r--fortran/test/tH5MISC_1_8.F9033
-rw-r--r--fortran/test/tH5O_F03.F902
-rw-r--r--fortran/test/vol_connector.F90284
-rw-r--r--fortran/testpar/CMakeTests.cmake2
-rw-r--r--hl/Makefile.am18
-rw-r--r--hl/c++/Makefile.am8
-rw-r--r--hl/c++/examples/CMakeLists.txt23
-rw-r--r--hl/c++/src/CMakeLists.txt34
-rw-r--r--hl/c++/test/CMakeLists.txt29
-rw-r--r--hl/examples/CMakeLists.txt11
-rw-r--r--hl/examples/CMakeTests.cmake4
-rw-r--r--hl/fortran/Makefile.am8
-rw-r--r--hl/fortran/examples/CMakeLists.txt42
-rw-r--r--hl/fortran/src/CMakeLists.txt204
-rw-r--r--hl/fortran/src/H5DSff.F9034
-rw-r--r--hl/fortran/src/H5HL_buildiface.F9016
-rw-r--r--hl/fortran/src/H5IMff.F904
-rw-r--r--hl/fortran/src/H5TBff.F9012
-rw-r--r--hl/fortran/test/CMakeLists.txt51
-rw-r--r--hl/fortran/test/CMakeTests.cmake64
-rw-r--r--hl/fortran/test/tstimage.F902
-rw-r--r--hl/fortran/test/tsttable.F902
-rw-r--r--hl/src/CMakeLists.txt34
-rw-r--r--hl/src/H5LDprivate.h17
-rw-r--r--hl/src/H5LT.c19
-rw-r--r--hl/test/CMakeLists.txt68
-rw-r--r--hl/test/CMakeTests.cmake4
-rw-r--r--hl/test/test_ds.c2
-rw-r--r--hl/tools/gif2h5/CMakeLists.txt65
-rw-r--r--hl/tools/gif2h5/CMakeTests.cmake16
-rw-r--r--hl/tools/gif2h5/Makefile.am12
-rw-r--r--hl/tools/h5watch/CMakeLists.txt56
-rw-r--r--hl/tools/h5watch/CMakeTests.cmake17
-rw-r--r--hl/tools/h5watch/Makefile.am27
-rw-r--r--java/CMakeLists.txt4
-rw-r--r--java/Makefile.am15
-rw-r--r--java/examples/datasets/CMakeLists.txt11
-rw-r--r--java/examples/datatypes/CMakeLists.txt4
-rw-r--r--java/examples/groups/CMakeLists.txt14
-rw-r--r--java/examples/intro/CMakeLists.txt4
-rw-r--r--java/src/hdf/hdf5lib/H5.java21
-rw-r--r--java/src/hdf/hdf5lib/HDF5Constants.java12
-rw-r--r--java/src/hdf/hdf5lib/exceptions/HDF5LibraryException.java5
-rw-r--r--java/src/jni/CMakeLists.txt28
-rw-r--r--java/src/jni/Makefile.am5
-rw-r--r--java/src/jni/exceptionImp.c206
-rw-r--r--java/src/jni/h5Constants.c10
-rw-r--r--java/src/jni/h5Imp.c108
-rw-r--r--java/src/jni/h5aImp.c2779
-rw-r--r--java/src/jni/h5dImp.c2578
-rw-r--r--java/src/jni/h5eImp.c638
-rw-r--r--java/src/jni/h5fImp.c649
-rw-r--r--java/src/jni/h5fImp.h11
-rw-r--r--java/src/jni/h5gImp.c246
-rw-r--r--java/src/jni/h5iImp.c233
-rw-r--r--java/src/jni/h5jni.h382
-rw-r--r--java/src/jni/h5lImp.c924
-rw-r--r--java/src/jni/h5oImp.c967
-rw-r--r--java/src/jni/h5pACPLImp.c36
-rw-r--r--java/src/jni/h5pACPLImp.h27
-rw-r--r--java/src/jni/h5pDAPLImp.c325
-rw-r--r--java/src/jni/h5pDAPLImp.h112
-rw-r--r--java/src/jni/h5pDCPLImp.c1415
-rw-r--r--java/src/jni/h5pDCPLImp.h396
-rw-r--r--java/src/jni/h5pDXPLImp.c505
-rw-r--r--java/src/jni/h5pDXPLImp.h209
-rw-r--r--java/src/jni/h5pFAPLImp.c1647
-rw-r--r--java/src/jni/h5pFAPLImp.h501
-rw-r--r--java/src/jni/h5pFCPLImp.c572
-rw-r--r--java/src/jni/h5pFCPLImp.h207
-rw-r--r--java/src/jni/h5pGAPLImp.c36
-rw-r--r--java/src/jni/h5pGAPLImp.h27
-rw-r--r--java/src/jni/h5pGCPLImp.c227
-rw-r--r--java/src/jni/h5pGCPLImp.h99
-rw-r--r--java/src/jni/h5pImp.c6051
-rw-r--r--java/src/jni/h5pImp.h1462
-rw-r--r--java/src/jni/h5pLAPLImp.c240
-rw-r--r--java/src/jni/h5pLAPLImp.h107
-rw-r--r--java/src/jni/h5pLCPLImp.c36
-rw-r--r--java/src/jni/h5pLCPLImp.h27
-rw-r--r--java/src/jni/h5pOCPLImp.c211
-rw-r--r--java/src/jni/h5pOCPLImp.h99
-rw-r--r--java/src/jni/h5pOCpyPLImp.c92
-rw-r--r--java/src/jni/h5pOCpyPLImp.h61
-rw-r--r--java/src/jni/h5pStrCPLImp.c74
-rw-r--r--java/src/jni/h5pStrCPLImp.h45
-rw-r--r--java/src/jni/h5plImp.c189
-rw-r--r--java/src/jni/h5rImp.c401
-rw-r--r--java/src/jni/h5sImp.c1667
-rw-r--r--java/src/jni/h5tImp.c1469
-rw-r--r--java/src/jni/h5util.c4714
-rw-r--r--java/src/jni/h5util.h33
-rw-r--r--java/src/jni/h5vlImp.c157
-rw-r--r--java/src/jni/h5vlImp.h2
-rw-r--r--java/src/jni/h5zImp.c29
-rw-r--r--java/src/jni/nativeData.c1342
-rw-r--r--java/test/TestH5.java21
-rw-r--r--java/test/TestH5A.java18
-rw-r--r--java/test/TestH5Edefault.java2
-rw-r--r--java/test/TestH5F.java110
-rw-r--r--java/test/TestH5Oparams.java4
-rw-r--r--java/test/TestH5P.java2
-rw-r--r--java/test/TestH5Sbasic.java2
-rw-r--r--java/test/testfiles/JUnit-TestH5.txt3
-rw-r--r--java/test/testfiles/JUnit-TestH5F.txt4
-rw-r--r--m4/ax_check_class.m475
-rw-r--r--m4/ax_check_classpath.m46
-rw-r--r--m4/ax_check_java_home.m46
-rw-r--r--m4/ax_check_junit.m44
-rw-r--r--m4/ax_check_rqrd_class.m46
-rw-r--r--m4/ax_java_check_class.m48
-rw-r--r--m4/ax_java_options.m44
-rw-r--r--m4/ax_jni_include_dir.m461
-rw-r--r--m4/ax_prog_jar.m44
-rw-r--r--m4/ax_prog_java.m46
-rw-r--r--m4/ax_prog_java_cc.m46
-rw-r--r--m4/ax_prog_java_works.m451
-rw-r--r--m4/ax_prog_javac.m46
-rw-r--r--m4/ax_prog_javac_works.m46
-rw-r--r--m4/ax_prog_javadoc.m44
-rw-r--r--m4/ax_prog_javah.m416
-rw-r--r--m4/ax_try_compile_java.m48
-rw-r--r--m4/ax_try_run_java.m44
-rw-r--r--release_docs/HISTORY-1_10.txt1035
-rw-r--r--release_docs/INSTALL_CMake.txt2
-rw-r--r--release_docs/README_HDF5_CMake23
-rw-r--r--release_docs/README_HPC285
-rw-r--r--release_docs/RELEASE.txt205
-rw-r--r--release_docs/USING_CMake_Examples.txt24
-rw-r--r--src/CMakeLists.txt86
-rw-r--r--src/H5.c6
-rw-r--r--src/H5A.c26
-rw-r--r--src/H5AC.c2
-rw-r--r--src/H5Abtree2.c9
-rw-r--r--src/H5Adense.c41
-rw-r--r--src/H5Adeprec.c13
-rw-r--r--src/H5Aint.c66
-rw-r--r--src/H5Apkg.h2
-rw-r--r--src/H5B.c59
-rw-r--r--src/H5B2.c8
-rw-r--r--src/H5B2cache.c6
-rw-r--r--src/H5B2int.c75
-rw-r--r--src/H5B2leaf.c14
-rw-r--r--src/H5Bcache.c3
-rw-r--r--src/H5Bdbg.c6
-rw-r--r--src/H5C.c69
-rw-r--r--src/H5CX.c646
-rw-r--r--src/H5CXprivate.h30
-rw-r--r--src/H5Cimage.c16
-rw-r--r--src/H5Clog_trace.c2
-rw-r--r--src/H5Cmpio.c12
-rw-r--r--src/H5D.c44
-rw-r--r--src/H5Dbtree.c5
-rw-r--r--src/H5Dbtree2.c3
-rw-r--r--src/H5Dchunk.c585
-rw-r--r--src/H5Dcompact.c18
-rw-r--r--src/H5Dcontig.c68
-rw-r--r--src/H5Ddeprec.c18
-rw-r--r--src/H5Dearray.c11
-rw-r--r--src/H5Defl.c5
-rw-r--r--src/H5Dfarray.c4
-rw-r--r--src/H5Dfill.c11
-rw-r--r--src/H5Dint.c116
-rw-r--r--src/H5Dio.c4
-rw-r--r--src/H5Dlayout.c1
-rw-r--r--src/H5Dmpio.c114
-rw-r--r--src/H5Dpkg.h17
-rw-r--r--src/H5Dprivate.h1
-rw-r--r--src/H5Dscatgath.c88
-rw-r--r--src/H5Dselect.c10
-rw-r--r--src/H5Dvirtual.c71
-rw-r--r--src/H5E.c10
-rw-r--r--src/H5EA.c5
-rw-r--r--src/H5EAcache.c13
-rw-r--r--src/H5EAdbg.c6
-rw-r--r--src/H5EAhdr.c3
-rw-r--r--src/H5EAstat.c3
-rw-r--r--src/H5EAtest.c2
-rw-r--r--src/H5Eint.c14
-rw-r--r--src/H5F.c109
-rw-r--r--src/H5FA.c9
-rw-r--r--src/H5FAcache.c9
-rw-r--r--src/H5FAhdr.c3
-rw-r--r--src/H5FAstat.c3
-rw-r--r--src/H5FAtest.c2
-rw-r--r--src/H5FD.c4
-rw-r--r--src/H5FDcore.c6
-rw-r--r--src/H5FDdirect.c10
-rw-r--r--src/H5FDfamily.c6
-rw-r--r--src/H5FDlog.c2
-rw-r--r--src/H5FDmpio.c2
-rw-r--r--src/H5FDmulti.c52
-rw-r--r--src/H5FL.c12
-rw-r--r--src/H5FS.c3
-rw-r--r--src/H5FScache.c5
-rw-r--r--src/H5Faccum.c21
-rw-r--r--src/H5Fint.c25
-rw-r--r--src/H5Fmpi.c2
-rw-r--r--src/H5Fprivate.h26
-rw-r--r--src/H5Fpublic.h7
-rw-r--r--src/H5Fsuper.c14
-rw-r--r--src/H5Fsuper_cache.c4
-rw-r--r--src/H5G.c11
-rw-r--r--src/H5Gbtree2.c13
-rw-r--r--src/H5Gcache.c3
-rw-r--r--src/H5Gdeprec.c49
-rw-r--r--src/H5Gent.c3
-rw-r--r--src/H5Glink.c19
-rw-r--r--src/H5Gloc.c5
-rw-r--r--src/H5Gname.c3
-rw-r--r--src/H5Gnode.c4
-rw-r--r--src/H5Gtest.c1
-rw-r--r--src/H5Gtraverse.c4
-rw-r--r--src/H5HF.c6
-rw-r--r--src/H5HFcache.c20
-rw-r--r--src/H5HFdbg.c2
-rw-r--r--src/H5HFhdr.c3
-rw-r--r--src/H5HFhuge.c4
-rw-r--r--src/H5HFman.c2
-rw-r--r--src/H5HFsection.c8
-rw-r--r--src/H5HFtest.c4
-rw-r--r--src/H5HFtiny.c3
-rw-r--r--src/H5HG.c6
-rw-r--r--src/H5HGcache.c4
-rw-r--r--src/H5HL.c2
-rw-r--r--src/H5HLcache.c11
-rw-r--r--src/H5I.c11
-rw-r--r--src/H5Ipublic.h1
-rw-r--r--src/H5L.c43
-rw-r--r--src/H5Lexternal.c17
-rw-r--r--src/H5MM.c46
-rw-r--r--src/H5MMprivate.h1
-rw-r--r--src/H5O.c14
-rw-r--r--src/H5Oalloc.c11
-rw-r--r--src/H5Oattr.c20
-rw-r--r--src/H5Oattribute.c2
-rw-r--r--src/H5Ocache.c7
-rw-r--r--src/H5Ocopy.c4
-rw-r--r--src/H5Odrvinfo.c10
-rw-r--r--src/H5Odtype.c8
-rw-r--r--src/H5Oefl.c4
-rw-r--r--src/H5Ofill.c43
-rw-r--r--src/H5Oflush.c1
-rw-r--r--src/H5Oint.c8
-rw-r--r--src/H5Olayout.c18
-rw-r--r--src/H5Olink.c14
-rw-r--r--src/H5Omtime.c2
-rw-r--r--src/H5Oname.c2
-rw-r--r--src/H5Opkg.h4
-rw-r--r--src/H5Opline.c5
-rw-r--r--src/H5Osdspace.c8
-rw-r--r--src/H5Oshared.c5
-rw-r--r--src/H5P.c19
-rw-r--r--src/H5PB.c23
-rw-r--r--src/H5Pacpl.c50
-rw-r--r--src/H5Pdapl.c6
-rw-r--r--src/H5Pdcpl.c44
-rw-r--r--src/H5Pdeprec.c49
-rw-r--r--src/H5Pdxpl.c2
-rw-r--r--src/H5Pfapl.c59
-rw-r--r--src/H5Pgcpl.c6
-rw-r--r--src/H5Pint.c249
-rw-r--r--src/H5Plapl.c2
-rw-r--r--src/H5Plcpl.c54
-rw-r--r--src/H5Pocpl.c2
-rw-r--r--src/H5Pocpypl.c2
-rw-r--r--src/H5Ppkg.h4
-rw-r--r--src/H5Pprivate.h4
-rw-r--r--src/H5Ppublic.h7
-rw-r--r--src/H5Rint.c4
-rw-r--r--src/H5S.c446
-rw-r--r--src/H5SL.c4
-rw-r--r--src/H5SM.c5
-rw-r--r--src/H5SMbtree2.c3
-rw-r--r--src/H5SMcache.c4
-rw-r--r--src/H5SMmessage.c5
-rw-r--r--src/H5ST.c16
-rw-r--r--src/H5Sall.c370
-rw-r--r--src/H5Sdbg.c18
-rw-r--r--src/H5Sdeprec.c121
-rw-r--r--src/H5Shyper.c10691
-rw-r--r--src/H5Smpio.c1243
-rw-r--r--src/H5Snone.c577
-rw-r--r--src/H5Spkg.h191
-rw-r--r--src/H5Spoint.c1577
-rw-r--r--src/H5Sprivate.h58
-rw-r--r--src/H5Spublic.h113
-rw-r--r--src/H5Sselect.c910
-rw-r--r--src/H5Stest.c333
-rw-r--r--src/H5T.c60
-rw-r--r--src/H5Tcommit.c4
-rw-r--r--src/H5Tconv.c24
-rw-r--r--src/H5Tenum.c6
-rw-r--r--src/H5Tfields.c12
-rw-r--r--src/H5Tnative.c14
-rw-r--r--src/H5Torder.c4
-rw-r--r--src/H5Tvlen.c34
-rw-r--r--src/H5VL.c443
-rw-r--r--src/H5VLcallback.c360
-rw-r--r--src/H5VLconnector.h417
-rw-r--r--src/H5VLconnector_passthru.h166
-rw-r--r--src/H5VLint.c1044
-rw-r--r--src/H5VLnative.c25
-rw-r--r--src/H5VLnative_attr.c16
-rw-r--r--src/H5VLnative_dataset.c19
-rw-r--r--src/H5VLnative_file.c25
-rw-r--r--src/H5VLnative_group.c14
-rw-r--r--src/H5VLnative_link.c32
-rw-r--r--src/H5VLnative_object.c25
-rw-r--r--src/H5VLnative_private.h8
-rw-r--r--src/H5VLpassthru.c314
-rw-r--r--src/H5VLpkg.h15
-rw-r--r--src/H5VLprivate.h36
-rw-r--r--src/H5VLpublic.h491
-rw-r--r--src/H5VM.c23
-rw-r--r--src/H5VMprivate.h3
-rw-r--r--src/H5Z.c6
-rw-r--r--src/H5Zfletcher32.c6
-rw-r--r--src/H5Zscaleoffset.c29
-rw-r--r--src/H5Zshuffle.c18
-rw-r--r--src/H5Ztrans.c8
-rw-r--r--src/H5checksum.c11
-rw-r--r--src/H5dbg.c2
-rw-r--r--src/H5err.txt2
-rw-r--r--src/H5private.h14
-rw-r--r--src/H5public.h4
-rw-r--r--src/H5system.c132
-rw-r--r--src/H5timer.c16
-rw-r--r--src/H5trace.c26
-rw-r--r--src/H5vers.txt2
-rw-r--r--src/H5win32defs.h14
-rw-r--r--src/Makefile.am13
-rw-r--r--src/libhdf5.settings.in2
-rw-r--r--test/CMakeLists.txt257
-rw-r--r--test/CMakePassthroughVOLTests.cmake (renamed from test/CMakeVOLTests.cmake)179
-rw-r--r--test/CMakeTests.cmake547
-rw-r--r--test/CMakeVFDTests.cmake209
-rw-r--r--test/Makefile.am20
-rw-r--r--test/accum.c6
-rw-r--r--test/app_ref.c6
-rw-r--r--test/big.c4
-rw-r--r--test/bittests.c174
-rw-r--r--test/cache_logging.c6
-rw-r--r--test/cache_tagging.c54
-rw-r--r--test/cmpd_dset.c2
-rw-r--r--test/direct_chunk.c131
-rw-r--r--test/dsets.c30
-rw-r--r--test/dtypes.c24
-rw-r--r--test/enc_dec_plist.c878
-rw-r--r--test/evict_on_close.c6
-rw-r--r--test/external.c262
-rw-r--r--test/external_common.c127
-rw-r--r--test/external_common.h45
-rw-r--r--test/external_env.c218
-rw-r--r--test/fheap.c11
-rw-r--r--test/file_image.c2
-rw-r--r--test/fill18.h5bin0 -> 3479 bytes
-rw-r--r--test/flush1.c2
-rw-r--r--test/flush2.c2
-rw-r--r--test/flushrefreshTest.cmake106
-rw-r--r--test/gen_plist.c4
-rw-r--r--test/h5test.c233
-rw-r--r--test/h5test.h6
-rw-r--r--test/hyperslab.c8
-rw-r--r--test/links.c2
-rw-r--r--test/mount.c38
-rw-r--r--test/null_vol_connector.c32
-rw-r--r--test/objcopy.c47
-rw-r--r--test/ohdr.c407
-rw-r--r--test/page_buffer.c4
-rw-r--r--test/set_extent.c4
-rw-r--r--test/tattr.c220
-rw-r--r--test/testerror.sh.in4
-rw-r--r--test/testexternal_env.sh.in42
-rw-r--r--test/testframe.c338
-rw-r--r--test/testvds_env.sh.in44
-rw-r--r--test/tfile.c551
-rw-r--r--test/th5o.c4
-rw-r--r--test/th5s.c972
-rw-r--r--test/tid.c28
-rw-r--r--test/titerate.c12
-rw-r--r--test/trefer.c238
-rw-r--r--test/tselect.c3012
-rw-r--r--test/tsohm.c30
-rw-r--r--test/ttime.c6
-rw-r--r--test/ttsafe_error.c65
-rw-r--r--test/tunicode.c2
-rw-r--r--test/tvlstr.c18
-rw-r--r--test/vds.c1006
-rw-r--r--test/vds_env.c364
-rw-r--r--test/vfd.c44
-rw-r--r--test/vol.c98
-rw-r--r--testpar/CMakeLists.txt40
-rw-r--r--testpar/CMakeTests.cmake106
-rw-r--r--testpar/CMakeVFDTests.cmake30
-rw-r--r--testpar/Makefile.am5
-rw-r--r--testpar/t_cache.c17
-rw-r--r--testpar/t_coll_md_read.c336
-rw-r--r--testpar/t_filters_parallel.c11
-rw-r--r--testpar/t_mdset.c7
-rw-r--r--testpar/t_prop.c4
-rw-r--r--testpar/t_pvds.c4
-rw-r--r--testpar/t_shapesame.c32
-rw-r--r--testpar/t_span_tree.c28
-rw-r--r--testpar/testphdf5.c421
-rw-r--r--testpar/testphdf5.h3
-rw-r--r--tools/Makefile.am13
-rw-r--r--tools/lib/CMakeLists.txt38
-rw-r--r--tools/lib/h5diff.c1
-rw-r--r--tools/lib/h5diff_array.c11
-rw-r--r--tools/src/h5copy/CMakeLists.txt18
-rw-r--r--tools/src/h5diff/CMakeLists.txt70
-rw-r--r--tools/src/h5dump/CMakeLists.txt26
-rw-r--r--tools/src/h5format_convert/CMakeLists.txt26
-rw-r--r--tools/src/h5import/CMakeLists.txt30
-rw-r--r--tools/src/h5jam/CMakeLists.txt59
-rw-r--r--tools/src/h5ls/CMakeLists.txt18
-rw-r--r--tools/src/h5repack/CMakeLists.txt20
-rw-r--r--tools/src/h5repack/Makefile.am2
-rw-r--r--tools/src/h5repack/h5repack.c14
-rw-r--r--tools/src/h5repack/h5repack_copy.c30
-rw-r--r--tools/src/h5repack/h5repack_filters.c10
-rw-r--r--tools/src/h5stat/CMakeLists.txt18
-rw-r--r--tools/src/h5stat/h5stat.c3
-rw-r--r--tools/src/misc/CMakeLists.txt98
-rw-r--r--tools/src/misc/Makefile.am24
-rw-r--r--tools/test/h5copy/CMakeLists.txt26
-rw-r--r--tools/test/h5copy/CMakeTests.cmake72
-rw-r--r--tools/test/h5diff/CMakeLists.txt26
-rw-r--r--tools/test/h5diff/CMakeTests.cmake44
-rw-r--r--tools/test/h5dump/CMakeLists.txt28
-rw-r--r--tools/test/h5dump/CMakeTests.cmake145
-rw-r--r--tools/test/h5dump/CMakeTestsPBITS.cmake16
-rw-r--r--tools/test/h5dump/CMakeTestsVDS.cmake32
-rw-r--r--tools/test/h5dump/CMakeTestsXML.cmake16
-rw-r--r--tools/test/h5dump/h5dumpgentest.c24
-rw-r--r--tools/test/h5dump/testh5dump.sh.in41
-rw-r--r--tools/test/h5format_convert/CMakeLists.txt17
-rw-r--r--tools/test/h5format_convert/CMakeTests.cmake99
-rw-r--r--tools/test/h5import/CMakeLists.txt11
-rw-r--r--tools/test/h5import/CMakeTests.cmake33
-rw-r--r--tools/test/h5jam/CMakeLists.txt26
-rw-r--r--tools/test/h5jam/CMakeTests.cmake36
-rw-r--r--tools/test/h5ls/CMakeLists.txt22
-rw-r--r--tools/test/h5ls/CMakeTests.cmake25
-rw-r--r--tools/test/h5ls/CMakeTestsVDS.cmake24
-rw-r--r--tools/test/h5repack/CMakeLists.txt66
-rw-r--r--tools/test/h5repack/CMakeTests.cmake108
-rw-r--r--tools/test/h5repack/CMakeVFDTests.cmake2
-rw-r--r--tools/test/h5repack/h5repack.sh.in8
-rw-r--r--tools/test/h5repack/h5repacktst.c12
-rw-r--r--tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_version_test.ddl14
-rw-r--r--tools/test/h5stat/CMakeLists.txt4
-rw-r--r--tools/test/h5stat/CMakeTests.cmake28
-rw-r--r--tools/test/misc/CMakeLists.txt46
-rw-r--r--tools/test/misc/CMakeTestsClear.cmake50
-rw-r--r--tools/test/misc/CMakeTestsMkgrp.cmake18
-rw-r--r--tools/test/misc/CMakeTestsRepart.cmake14
-rw-r--r--tools/test/misc/vds/CMakeLists.txt11
-rw-r--r--tools/test/perform/CMakeLists.txt112
-rw-r--r--tools/test/perform/CMakeTests.cmake4
-rw-r--r--tools/test/perform/chunk_cache.c24
-rw-r--r--tools/test/perform/pio_engine.c6
-rw-r--r--tools/test/perform/pio_standalone.c4
-rw-r--r--tools/test/perform/sio_engine.c6
-rw-r--r--tools/testfiles/t128bit_float.h5bin0 -> 2160 bytes
574 files changed, 49627 insertions, 34197 deletions
diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake
index 7a0746a..b933c29 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -33,7 +33,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
EXPORT ${HDF5_EXPORTED_TARGETS}
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/hdf5
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
- NAMESPACE ${HDF5_PACKAGE}::
+ NAMESPACE ${HDF_PACKAGE_NAMESPACE}
COMPONENT configinstall
)
endif ()
@@ -45,7 +45,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
export (
TARGETS ${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES} ${HDF5_UTILS_TO_EXPORT}
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
- NAMESPACE ${HDF5_PACKAGE}::
+ NAMESPACE ${HDF_PACKAGE_NAMESPACE}
)
endif ()
endif ()
@@ -104,6 +104,12 @@ endif ()
# Configure the hdf5-config-version .cmake file for the install directory
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED)
+ # 3.11 or greater
+ #write_basic_package_version_file (
+ # ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake
+ # VERSION ${HDF5_PACKAGE_VERSION}
+ # COMPATIBILITY SameMinorVersion
+ #)
configure_file (
${HDF_RESOURCES_DIR}/hdf5-config-version.cmake.in
${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b9cdf4d..fc656c0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@ project (HDF5 C)
# set CMAKE_INSTALL_PREFIX to the required install path.
# Make install can be used to install all components for system-wide use.
#
-if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
+if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
MESSAGE(FATAL_ERROR "\nERROR! ${PROJECT_NAME} DOES NOT SUPPORT IN SOURCE BUILDS!\n"
"CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
" == CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}\n"
@@ -314,7 +314,7 @@ set (HDF5_PACKAGE_NAME "HDF5")
set (HDF5_PACKAGE_VERSION "${H5_VERS_MAJOR}.${H5_VERS_MINOR}.${H5_VERS_RELEASE}")
set (HDF5_PACKAGE_VERSION_MAJOR "${H5_VERS_MAJOR}.${H5_VERS_MINOR}")
set (HDF5_PACKAGE_VERSION_MINOR "${H5_VERS_RELEASE}")
-if (NOT "${H5_VERS_SUBRELEASE}" STREQUAL "")
+if (H5_VERS_SUBRELEASE)
set (HDF5_PACKAGE_VERSION_STRING "${HDF5_PACKAGE_VERSION}-${H5_VERS_SUBRELEASE}")
else ()
set (HDF5_PACKAGE_VERSION_STRING "${HDF5_PACKAGE_VERSION}")
@@ -416,18 +416,23 @@ set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
# Mac OS X Options
#-----------------------------------------------------------------------------
if (HDF5_BUILD_FRAMEWORKS AND NOT BUILD_SHARED_LIBS)
- set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries")
+ set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE)
endif ()
#-----------------------------------------------------------------------------
# Option to Build Shared and Static libs, default is both
#-----------------------------------------------------------------------------
+option (ONLY_SHARED_LIBS "Only Build Shared Libraries" OFF)
+set (H5_ENABLE_STATIC_LIB YES)
+if (ONLY_SHARED_LIBS)
+ set (H5_ENABLE_STATIC_LIB NO)
+ set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries")
+endif ()
option (BUILD_SHARED_LIBS "Build Shared Libraries" ON)
set (H5_ENABLE_SHARED_LIB NO)
if (BUILD_SHARED_LIBS)
set (H5_ENABLE_SHARED_LIB YES)
endif ()
-set (H5_ENABLE_STATIC_LIB YES)
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
#-----------------------------------------------------------------------------
@@ -683,8 +688,10 @@ endif ()
option (HDF5_ENABLE_THREADSAFE "Enable thread-safety" OFF)
if (HDF5_ENABLE_THREADSAFE)
# check for unsupported options
- message (STATUS " **** thread-safety option not supported with static library **** ")
- message (STATUS " **** thread-safety option will not be used building static library **** ")
+ if (WIN32)
+ message (STATUS " **** thread-safety option not supported with static library **** ")
+ message (STATUS " **** thread-safety option will not be used building static library **** ")
+ endif ()
if (HDF5_ENABLE_PARALLEL)
if (NOT ALLOW_UNSUPPORTED)
message (FATAL_ERROR " **** parallel and thread-safety options are not supported **** ")
@@ -722,9 +729,9 @@ if (HDF5_ENABLE_THREADSAFE)
endif ()
endif ()
set(THREADS_PREFER_PTHREAD_FLAG ON)
- find_package(Threads)
- if (NOT Threads_FOUND)
- message (STATUS " **** thread-safe package not found - threads still might work **** ")
+ find_package(Threads REQUIRED)
+ if (Threads_FOUND)
+ set (H5_HAVE_THREADSAFE 1)
endif ()
endif ()
@@ -735,13 +742,17 @@ add_subdirectory (src)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
- add_dependencies (${HDF5_LIB_TARGET} ZLIB)
+ if (NOT ONLY_SHARED_LIBS)
+ add_dependencies (${HDF5_LIB_TARGET} ZLIB)
+ endif ()
if (BUILD_SHARED_LIBS)
add_dependencies (${HDF5_LIBSH_TARGET} ZLIB)
endif ()
endif ()
if (SZIP_FOUND AND SZIP_USE_EXTERNAL)
- add_dependencies (${HDF5_LIB_TARGET} SZIP)
+ if (NOT ONLY_SHARED_LIBS)
+ add_dependencies (${HDF5_LIB_TARGET} SZIP)
+ endif ()
if (BUILD_SHARED_LIBS)
add_dependencies (${HDF5_LIBSH_TARGET} SZIP)
endif ()
@@ -754,7 +765,7 @@ endif ()
option (BUILD_TESTING "Build HDF5 Unit Testing" ON)
if (BUILD_TESTING)
set (DART_TESTING_TIMEOUT 1200
- CACHE INTEGER
+ CACHE STRING
"Timeout in seconds for each test (default 1200=20minutes)"
)
@@ -770,11 +781,11 @@ if (BUILD_TESTING)
mark_as_advanced (HDF5_TEST_FHEAP_VFD)
endif ()
- option (HDF5_TEST_VOL "Execute tests with different VOL connectors" OFF)
- mark_as_advanced (HDF5_TEST_VOL)
- if (HDF5_TEST_VOL)
- option (HDF5_TEST_FHEAP_VOL "Execute fheap test with different VOL connectors" ON)
- mark_as_advanced (HDF5_TEST_FHEAP_VOL)
+ option (HDF5_TEST_PASSTHROUGH_VOL "Execute tests with different passthrough VOL connectors" OFF)
+ mark_as_advanced (HDF5_TEST_PASSTHROUGH_VOL)
+ if (HDF5_TEST_PASSTHROUGH_VOL)
+ option (HDF5_TEST_FHEAP_PASSTHROUGH_VOL "Execute fheap test with different passthrough VOL connectors" ON)
+ mark_as_advanced (HDF5_TEST_FHEAP_PASSTHROUGH VOL)
endif ()
option (HDF_TEST_EXPRESS "Control testing framework (0-3)" "0")
@@ -845,7 +856,7 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for
message (STATUS "Fortran compiler ID is ${CMAKE_Fortran_COMPILER_ID}")
# Building with PGI requires CMake 3.3 or greater because previous versions
# of CMake add the wrong compiler flag for the PGI Fortran compiler.
- if ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "PGI" AND "${CMAKE_VERSION}" VERSION_LESS "3.3")
+ if (CMAKE_Fortran_COMPILER_ID MATCHES "PGI" AND CMAKE_VERSION VERSION_LESS "3.3")
message (FATAL_ERROR " **** PGI FORTRAN REQUIRES CMAKE VERSION 3.3 OR GREATER **** ")
endif ()
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index 5b35688..d80f48f 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -45,9 +45,9 @@ set (VALGRIND_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=
set (CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind")
set (CTEST_MEMORYCHECK_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe")
-set (CTEST_TEST_TIMEOUT 600 CACHE STRING
+set (CTEST_TEST_TIMEOUT 1200 CACHE STRING
"Maximum time allowed before CTest will kill the test.")
-set (DART_TESTING_TIMEOUT 600 CACHE STRING
+set (DART_TESTING_TIMEOUT 1200 CACHE STRING
"Maximum time allowed before CTest will kill the test." FORCE)
SET(CTEST_SUBMIT_RETRY_DELAY 20 CACHE STRING
diff --git a/MANIFEST b/MANIFEST
index 0fd0d5c..01ee8d8 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -71,12 +71,15 @@
./bin/errors _DO_NOT_DISTRIBUTE_
./bin/genparser
./bin/gcov_script _DO_NOT_DISTRIBUTE_
+./bin/h5cc.in
+./bin/h5redeploy.in
./bin/h5vers
./bin/iostats
./bin/locate_sw
./bin/make_err
./bin/make_overflow
./bin/make_vers
+./bin/Makefile.am
./bin/makehelp
./bin/mkdirs
./bin/newer
@@ -91,11 +94,8 @@
./bin/switch_maint_mode _DO_NOT_DISTRIBUTE_
./bin/timekeeper _DO_NOT_DISTRIBUTE_
./bin/trace
+./bin/warnhist _DO_NOT_DISTRIBUTE_
./bin/yodconfigure
-./bin/batch/cori_ctestP.sl.in.cmake
-./bin/batch/cori_ctestS.sl.in.cmake
-./bin/batch/cori_knl_ctestP.sl.in.cmake
-./bin/batch/cori_knl_ctestS.sl.in.cmake
./bin/batch/ctestP.lsf.in.cmake
./bin/batch/ctestP.sl.in.cmake
./bin/batch/ctestS.lsf.in.cmake
@@ -103,6 +103,7 @@
./bin/batch/knl_ctestP.sl.in.cmake
./bin/batch/knl_ctestS.sl.in.cmake
./bin/batch/knl_H5detect.sl.in.cmake
+./bin/batch/ctest.qsub.in.cmake
./bin/batch/ray_ctestP.lsf.in.cmake
./bin/batch/ray_ctestS.lsf.in.cmake
./bin/batch/raybsub
@@ -245,6 +246,7 @@
./fortran/src/H5Sff.F90
./fortran/src/H5Tf.c
./fortran/src/H5Tff.F90
+./fortran/src/H5VLff.F90
./fortran/src/H5Zf.c
./fortran/src/H5Zff.F90
./fortran/src/H5config_f.inc.cmake
@@ -264,8 +266,8 @@
./fortran/src/h5fc.in
./fortran/src/hdf5_fortrandll.def.in
-
./fortran/test/Makefile.am
+./fortran/test/vol_connector.F90
./fortran/test/fflush1.F90
./fortran/test/fflush2.F90
./fortran/test/fortranlib_test.F90
@@ -461,8 +463,9 @@
./release_docs/INSTALL_parallel
./release_docs/INSTALL_Warnings.txt
./release_docs/INSTALL_Windows.txt
-./release_docs/RELEASE.txt
+./release_docs/README_HDF5_CMake
./release_docs/README_HPC
+./release_docs/RELEASE.txt
./release_docs/USING_HDF5_CMake.txt
./release_docs/USING_HDF5_VS.txt
@@ -846,6 +849,7 @@
./src/H5S.c
./src/H5Sall.c
./src/H5Sdbg.c
+./src/H5Sdeprec.c
./src/H5Shyper.c
./src/H5Smodule.h
./src/H5Smpio.c
@@ -900,6 +904,8 @@
./src/H5TSprivate.h
./src/H5VL.c
./src/H5VLcallback.c
+./src/H5VLconnector.h
+./src/H5VLconnector_passthru.h
./src/H5VLint.c
./src/H5VLmodule.h
./src/H5VLnative.c
@@ -990,6 +996,9 @@
./test/evict_on_close.c
./test/extend.c
./test/external.c
+./test/external_common.c
+./test/external_common.h
+./test/external_env.c
./test/error_test.c
./test/err_compat.c
./test/filter_error.h5
@@ -1007,6 +1016,7 @@
./test/file_image.c
./test/file_image_core_test.h5
./test/fill_old.h5
+./test/fill18.h5
./test/fillval.c
./test/filter_fail.c
./test/filter_plugin.c
@@ -1114,6 +1124,7 @@
./test/tcoords.c
./test/testabort_fail.sh.in
./test/testcheck_version.sh.in
+./test/testexternal_env.sh.in
./test/testerror.sh.in
./test/testlinks_env.sh.in
./test/test_filter_plugin.sh.in
@@ -1129,6 +1140,7 @@
./test/testmeta.c
./test/testswmr.sh.in
./test/testvdsswmr.sh.in
+./test/testvds_env.sh.in
./test/tfile.c
./test/tgenprop.c
./test/th5o.c
@@ -1168,6 +1180,7 @@
./test/use_disable_mdc_flushes.c
./test/use.h
./test/vds.c
+./test/vds_env.c
./test/vds_swmr.h
./test/vds_swmr_gen.c
./test/vds_swmr_reader.c
@@ -1535,11 +1548,9 @@
./tools/lib/io_timer.h
./tools/src/misc/Makefile.am
-./tools/src/misc/h5cc.in
./tools/src/misc/h5clear.c
./tools/src/misc/h5debug.c
./tools/src/misc/h5mkgrp.c
-./tools/src/misc/h5redeploy.in
./tools/src/misc/h5repart.c
./tools/test/misc/Makefile.am
./tools/test/misc/h5repart_gentest.c
@@ -1689,6 +1700,7 @@
./tools/testfiles/h5dump-help.txt
./tools/testfiles/non_existing.ddl
./tools/testfiles/packedbits.ddl
+./tools/testfiles/t128bit_float.h5
./tools/testfiles/taindices.h5
./tools/testfiles/tall-1.ddl
./tools/testfiles/tall-2.ddl
@@ -2902,6 +2914,32 @@
./java/src/jni/h5oImp.h
./java/src/jni/h5pImp.c
./java/src/jni/h5pImp.h
+./java/src/jni/h5pACPLImp.c
+./java/src/jni/h5pACPLImp.h
+./java/src/jni/h5pDAPLImp.c
+./java/src/jni/h5pDAPLImp.h
+./java/src/jni/h5pDCPLImp.c
+./java/src/jni/h5pDCPLImp.h
+./java/src/jni/h5pDXPLImp.c
+./java/src/jni/h5pDXPLImp.h
+./java/src/jni/h5pFAPLImp.c
+./java/src/jni/h5pFAPLImp.h
+./java/src/jni/h5pFCPLImp.c
+./java/src/jni/h5pFCPLImp.h
+./java/src/jni/h5pGAPLImp.c
+./java/src/jni/h5pGAPLImp.h
+./java/src/jni/h5pGCPLImp.c
+./java/src/jni/h5pGCPLImp.h
+./java/src/jni/h5pLAPLImp.c
+./java/src/jni/h5pLAPLImp.h
+./java/src/jni/h5pLCPLImp.c
+./java/src/jni/h5pLCPLImp.h
+./java/src/jni/h5pOCPLImp.c
+./java/src/jni/h5pOCPLImp.h
+./java/src/jni/h5pOCpyPLImp.c
+./java/src/jni/h5pOCpyPLImp.h
+./java/src/jni/h5pStrCPLImp.c
+./java/src/jni/h5pStrCPLImp.h
./java/src/jni/h5plImp.c
./java/src/jni/h5plImp.h
./java/src/jni/h5rImp.c
@@ -3211,8 +3249,6 @@
./config/cmake/ConfigureChecks.cmake
./config/cmake/CPack.Info.plist.in
./config/cmake/CTestCustom.cmake
-./config/cmake/FindHDFJAVA.cmake.in
-./config/cmake/FindJNI.cmake
./config/cmake/H5cxx_config.h.in
./config/cmake/H5pubconf.h.in
./config/cmake/hdf5-config.cmake.in
@@ -3312,9 +3348,9 @@
./hl/tools/h5watch/CMakeTests.cmake
./src/CMakeLists.txt
./test/CMakeLists.txt
+./test/CMakePassthroughVOLTests.cmake
./test/CMakeTests.cmake
./test/CMakeVFDTests.cmake
-./test/CMakeVOLTests.cmake
./test/flushrefreshTest.cmake
./test/ShellTests.cmake
./testpar/CMakeLists.txt
@@ -3371,8 +3407,12 @@
./config/cmake/scripts/CTestScript.cmake
./config/cmake/scripts/HDF5config.cmake
./config/cmake/scripts/HDF5options.cmake
-./config/cmake/scripts/HPC/par-HDF5options.cmake
-./config/cmake/scripts/HPC/ser-HDF5options.cmake
+
+# CMake-specific HPC Scripts
+./config/cmake/scripts/HPC/sbatch-HDF5options.cmake
+./config/cmake/scripts/HPC/bsub-HDF5options.cmake
+./config/cmake/scripts/HPC/qsub-HDF5options.cmake
+./config/cmake/scripts/HPC/raybsub-HDF5options.cmake
# Files generated by autogen
./aclocal.m4
@@ -3387,6 +3427,7 @@
./c++/examples/Makefile.in
./c++/Makefile.in
./configure
+./bin/Makefile.in
./c++/src/Makefile.in
./c++/test/Makefile.in
./examples/Makefile.in
diff --git a/Makefile.am b/Makefile.am
index d58b1b4..d96ffe3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,11 +49,6 @@ include $(top_srcdir)/config/commence.am
# Conditionals. These conditionals are defined during configure
# Define each variable to empty if it is not used to placate pmake
-if BUILD_PARALLEL_CONDITIONAL
- TESTPARALLEL_DIR =testpar
-else
- TESTPARALLEL_DIR=
-endif
if BUILD_CXX_CONDITIONAL
CXX_DIR =c++
else
@@ -74,9 +69,24 @@ if BUILD_HDF5_HL_CONDITIONAL
else
HDF5_HL_DIR=
endif
+if BUILD_TESTS_CONDITIONAL
+ TESTSERIAL_DIR =test
+else
+ TESTSERIAL_DIR=
+endif
+if BUILD_TESTS_PARALLEL_CONDITIONAL
+ TESTPARALLEL_DIR =testpar
+else
+ TESTPARALLEL_DIR=
+endif
+if BUILD_TOOLS_CONDITIONAL
+ TOOLS_DIR =tools
+else
+ TOOLS_DIR=
+endif
-SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
- $(JAVA_DIR) $(HDF5_HL_DIR)
+SUBDIRS = src $(TESTSERIAL_DIR) $(TESTPARALLEL_DIR) bin $(TOOLS_DIR) . \
+ $(CXX_DIR) $(FORTRAN_DIR) $(JAVA_DIR) $(HDF5_HL_DIR)
DIST_SUBDIRS = src test testpar tools . c++ fortran hl examples java
# Some files generated during configure that should be cleaned
@@ -186,10 +196,11 @@ check-vfd:
fi; \
done
-# Run tests with different Virtual Object Layer Connectors.
-# Currently, only invoke check-vol in the test directory.
-check-vol:
- for d in src test; do \
+# Run tests with different passthrough Virtual Object Layer Connectors.
+# NOTE: Will only succeed with passthrough VOL connectors that use
+# the native VOL connector as the terminal connector.
+check-passthrough-vol:
+ for d in $(SUBDIRS); do \
if test $$d != .; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
diff --git a/README.txt b/README.txt
index 03e8dd7..64f1345 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.11.4 currently under development
+HDF5 version 1.11.6 currently under development
------------------------------------------------------------------------------
Please refer to the release_docs/INSTALL file for installation instructions.
diff --git a/bin/Makefile.am b/bin/Makefile.am
new file mode 100644
index 0000000..a39b695
--- /dev/null
+++ b/bin/Makefile.am
@@ -0,0 +1,57 @@
+#
+# Copyright by The HDF Group.
+# Copyright by the Board of Trustees of the University of Illinois.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+##
+## Makefile.am
+## Run automake to generate a Makefile.in from this file.
+#
+# HDF5 Library Makefile(.in)
+#
+
+include $(top_srcdir)/config/commence.am
+
+# Include src directory
+AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
+
+# These are our main targets
+bin_SCRIPTS=h5redeploy
+
+# Tell automake to clean h5redeploy script
+CLEANFILES=h5redeploy
+
+# These were generated by configure. Remove them only when distclean.
+DISTCLEANFILES=h5cc
+
+# All programs rely on hdf5 library and h5tools library
+LDADD=$(LIBH5TOOLS) $(LIBHDF5)
+
+# How to build h5redeploy script
+h5redeploy: h5redeploy.in
+ @cp $(srcdir)/$@.in $@
+
+# h5cc needs custom install and uninstall rules, since it may be
+# named h5pcc if hdf5 is being built in parallel mode.
+if BUILD_PARALLEL_CONDITIONAL
+ H5CC_NAME=h5pcc
+else
+ H5CC_NAME=h5cc
+endif
+
+$(DESTDIR)$(bindir):
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1;
+
+install-exec-local: $(DESTDIR)$(bindir)
+ @$(INSTALL) h5cc $(DESTDIR)$(bindir)/$(H5CC_NAME)
+uninstall-local:
+ @$(RM) $(DESTDIR)$(bindir)/$(H5CC_NAME)
+
+include $(top_srcdir)/config/conclude.am
diff --git a/bin/batch/cori_ctestP.sl.in.cmake b/bin/batch/cori_ctestP.sl.in.cmake
deleted file mode 100644
index 6aa4916..0000000
--- a/bin/batch/cori_ctestP.sl.in.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-#SBATCH -C haswell
-#SBATCH --nodes=1
-#SBATCH -t 00:30:00
-#SBATCH --mail-type=BEGIN,END,FAIL
-##SBATCH --mail-user=<username>@sandia.gov
-#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestP
-
-cd @HDF5_BINARY_DIR@
-CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM|ph5example -E t_cache_image -C Release -T test"
-
-echo "Run $CMD. Test output will be in build/ctestP.out"
-$CMD >& ctestP.out
-echo "Done running $CMD"
-
diff --git a/bin/batch/cori_ctestS.sl.in.cmake b/bin/batch/cori_ctestS.sl.in.cmake
deleted file mode 100644
index cf68826..0000000
--- a/bin/batch/cori_ctestS.sl.in.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-#SBATCH -C haswell
-#SBATCH --nodes=1
-#SBATCH -t 00:30:00
-#SBATCH --mail-type=BEGIN,END,FAIL
-##SBATCH --mail-user=<username>@sandia.gov
-#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestS
-
-cd @HDF5_BINARY_DIR@
-CMD="ctest . -E TEST_PAR|PH5DIFF|PERFORM|ph5example -C Release -j 32 -T test"
-
-echo "Run $CMD. Test output will be in build/ctestS.out"
-$CMD >& ctestS.out
-echo "Done running $CMD"
diff --git a/bin/batch/cori_knl_ctestP.sl.in.cmake b/bin/batch/cori_knl_ctestP.sl.in.cmake
deleted file mode 100644
index 90dd52a..0000000
--- a/bin/batch/cori_knl_ctestP.sl.in.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-#SBATCH -C knl,quad,cache
-#SBATCH --nodes=1
-#SBATCH -t 00:30:00
-#SBATCH --mail-type=BEGIN,END,FAIL
-##SBATCH --mail-user=<username>@sandia.gov
-#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestP
-
-cd @HDF5_BINARY_DIR@
-CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM|ph5example -E t_cache_image -C Release -T test"
-
-echo "Run $CMD. Test output will be in build/ctestP.out"
-$CMD >& ctestP.out
-echo "Done running $CMD"
-
diff --git a/bin/batch/cori_knl_ctestS.sl.in.cmake b/bin/batch/cori_knl_ctestS.sl.in.cmake
deleted file mode 100644
index 7db4483..0000000
--- a/bin/batch/cori_knl_ctestS.sl.in.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-#SBATCH -C knl,quad, cache
-#SBATCH --nodes=1
-#SBATCH -t 00:30:00
-#SBATCH --mail-type=BEGIN,END,FAIL
-##SBATCH --mail-user=<username>@sandia.gov
-#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestS
-
-cd @HDF5_BINARY_DIR@
-CMD="ctest . -E TEST_PAR|PH5DIFF|PERFORM|ph5example -C Release -j 32 -T test"
-
-echo "Run $CMD. Test output will be in build/ctestS.out"
-$CMD >& ctestS.out
-echo "Done running $CMD"
diff --git a/bin/batch/ctest.qsub.in.cmake b/bin/batch/ctest.qsub.in.cmake
new file mode 100755
index 0000000..702fca7
--- /dev/null
+++ b/bin/batch/ctest.qsub.in.cmake
@@ -0,0 +1,21 @@
+#!/bin/bash -l
+if [ $# -gt 0 ]; then
+ SUMMARY_FILE=$1
+fi
+ACCOUNT_ID=@ACCOUNT_ID@
+
+echo "Run parallel test command. Test output will be in build/${SUMMARY_FILE}"
+CTEST_CMD=`which ctest`
+
+#SKIPTESTS <<KEYWORD:script inserts list of skips tests here -- don't remove>>
+
+cd @HDF5_BINARY_DIR@
+if [[ $SUMMARY_FILE == *"ctestS"* ]]; then
+ CMD="${CTEST_CMD} . -E MPI_TEST_ -C Release -j 32 -T test"
+else
+ CMD="${CTEST_CMD} . -R MPI_TEST_ ${SKIP_TESTS} -C Release -T test"
+fi
+
+qsub -t 60 -n 1 -q debug-flat-quad -A ${ACCOUNT_ID} ${CMD} >& ${SUMMARY_FILE}
+
+echo "Done running ctest parallel command."
diff --git a/bin/batch/ctestP.lsf.in.cmake b/bin/batch/ctestP.lsf.in.cmake
index 2777f39..3fdd5ce 100644
--- a/bin/batch/ctestP.lsf.in.cmake
+++ b/bin/batch/ctestP.lsf.in.cmake
@@ -14,6 +14,6 @@
cd @HDF5_BINARY_DIR@
echo "Run parallel test command. Test output will be in build/ctestP.out"
-ctest . -R 'TEST_PAR|PH5DIFF|PERFORM' -E t_cache_image -C Release -T test >& ctestP.out
+ctest . -R MPI_TEST_ -C Release -T test >& ctestP.out
echo "Done running ctest parallel command."
diff --git a/bin/batch/ctestP.sl.in.cmake b/bin/batch/ctestP.sl.in.cmake
index 9fed14d..6399de7 100644
--- a/bin/batch/ctestP.sl.in.cmake
+++ b/bin/batch/ctestP.sl.in.cmake
@@ -8,9 +8,7 @@
#SBATCH --job-name=h5_ctestP
cd @HDF5_BINARY_DIR@
-CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM|ph5example -E t_cache_image -C Release -T test"
+ctest . -R MPI_TEST_ -C Release -T test >& ctestP.out
-echo "Run $CMD. Test output will be in build/ctestP.out"
-$CMD >& ctestP.out
-echo "Done running $CMD"
+echo "Done running ctestP.sl"
diff --git a/bin/batch/ctestS.lsf.in.cmake b/bin/batch/ctestS.lsf.in.cmake
index 7ef5af5..a01d39b 100644
--- a/bin/batch/ctestS.lsf.in.cmake
+++ b/bin/batch/ctestS.lsf.in.cmake
@@ -11,7 +11,7 @@
cd @HDF5_BINARY_DIR@
echo "Run command. Test output will be in build/ctestS.out"
-ctest . -E 'TEST_PAR|PH5DIFF|PERFORM' -C Release -j 32 -T test >& ctestS.out
+ctest . -E MPI_TEST_ -C Release -j 32 -T test >& ctestS.out
##$CMD >& ctestS.out
echo "Done running command."
diff --git a/bin/batch/ctestS.sl.in.cmake b/bin/batch/ctestS.sl.in.cmake
index 98c1bcd..4f96bb9 100644
--- a/bin/batch/ctestS.sl.in.cmake
+++ b/bin/batch/ctestS.sl.in.cmake
@@ -8,7 +8,7 @@
#SBATCH --job-name=h5_ctestS
cd @HDF5_BINARY_DIR@
-CMD="ctest . -E TEST_PAR|PH5DIFF|PERFORM|ph5example -C Release -j 32 -T test"
+CMD="ctest . -E MPI_TEST_ -C Release -j 32 -T test"
echo "Run $CMD. Test output will be in build/ctestS.out"
$CMD >& ctestS.out
diff --git a/bin/batch/knl_ctestP.sl.in.cmake b/bin/batch/knl_ctestP.sl.in.cmake
index 5c7c83f..f985fbb 100644
--- a/bin/batch/knl_ctestP.sl.in.cmake
+++ b/bin/batch/knl_ctestP.sl.in.cmake
@@ -6,13 +6,11 @@
#SBATCH --mail-type=BEGIN,END,FAIL
##SBATCH --mail-user=<username>@sandia.gov
#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestS
+#SBATCH --job-name=h5_ctestP
cd @HDF5_BINARY_DIR@
#run parallel tests except t_cache_image test
-CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM|ph5example -E t_cache_image -C Release -T test"
+ctest . -R MPI_TEST_ -C Release -T test >& ctestP.out
-echo "Run $CMD. Test output will be in build/ctestP.out"
-$CMD >& ctestP.out
echo "Done running $CMD"
diff --git a/bin/batch/knl_ctestS.sl.in.cmake b/bin/batch/knl_ctestS.sl.in.cmake
index 0dae31f..af6353b 100644
--- a/bin/batch/knl_ctestS.sl.in.cmake
+++ b/bin/batch/knl_ctestS.sl.in.cmake
@@ -9,7 +9,7 @@
#SBATCH --job-name=h5_ctestS
cd @HDF5_BINARY_DIR@
-CMD="ctest . -E TEST_PAR|PH5DIFF|PERFORM|ph5example -C Release -j 32 -T test"
+CMD="ctest . -E MPI_TEST_ -C Release -j 32 -T test"
echo "Run $CMD. Test output will be in build/ctestS.out"
$CMD >& ctestS.out
diff --git a/bin/batch/ray_ctestP.lsf.in.cmake b/bin/batch/ray_ctestP.lsf.in.cmake
index 6b5316a..7067a65 100644
--- a/bin/batch/ray_ctestP.lsf.in.cmake
+++ b/bin/batch/ray_ctestP.lsf.in.cmake
@@ -15,6 +15,6 @@
cd @HDF5_BINARY_DIR@
echo "Run parallel test command. Test output will be in build/ctestP.out"
-ctest . -R 'TEST_PAR|PH5DIFF|PERFORM|ph5example' -E t_cache_image -C Release -T test >& ctestP.out
+ctest . -R 'MPI_TEST_' -C Release -T test >& ctestP.out
echo "Done running ctest parallel command."
diff --git a/bin/batch/ray_ctestS.lsf.in.cmake b/bin/batch/ray_ctestS.lsf.in.cmake
index d23a513..da20438 100644
--- a/bin/batch/ray_ctestS.lsf.in.cmake
+++ b/bin/batch/ray_ctestS.lsf.in.cmake
@@ -11,7 +11,7 @@
cd @HDF5_BINARY_DIR@
echo "Run command. Test output will be in build/ctestS.out"
-ctest . -E 'TEST_PAR|PH5DIFF|PERFORM|ph5example' -C Release -j 32 -T test >& ctestS.out
+ctest . -E 'MPI_TEST_' -C Release -j 32 -T test >& ctestS.out
##$CMD >& ctestS.out
echo "Done running command."
diff --git a/bin/checkposix b/bin/checkposix
index 7ab741c..30128e3 100755
--- a/bin/checkposix
+++ b/bin/checkposix
@@ -13,101 +13,165 @@ require 5.003;
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
-# Robb Matzke, matzke@llnl.gov
-# 30 Aug 1997
+# Dana Robinson
+# Spring 2019
+# (Original by Robb Matzke)
#
-# Purpose: Given the names of C source files this script will print the
-# file name, line number, and function name of any function that
-# doesn't begin with the letter `h' or `H' as stipulated by the
-# HDF5 programming style guide.
+# Purpose: Given the names of C source files this script will print the
+# file name, line number, and function name of any function that
+# doesn't begin with the letter 'h' or 'H' as stipulated by the
+# HDF5 programming style guide.
#
-# Emacs users can run this script as the compile command and
-# use `next-error' (usually bound to M-`) to find each name
-# violation.
-
-if(<>) {
- if($ARGV =~ /\//) {
- ($filename) = ($ARGV =~ /^.*\/([A-Za-z0-9_]*)\.c$/);
- } else {
- ($filename) = ($ARGV =~ /([A-Za-z0-9_]*)\.c$/);
+# Emacs users can run this script as the compile command and
+# use 'next-error' (usually bound to M-`) to find each name
+# violation.
+
+use File::Basename;
+
+# Loop over all files passed to the function
+foreach $arg (@ARGV) {
+
+ # Get the filename from the path
+ $filename = fileparse($arg);
+
+ # Skip files that don't include H5private.h
+ # H5system. has to be inspected by hand since it wraps POSIX files
+ #
+ # H5detect and H5make_libsettings are created before the library exists
+ # so calls that link to function replacements won't work. We'll ignore
+ # it here.
+ #
+ # If a user specifies one file, process it no matter what so people
+ # can inspect files we normally skip (like H5system.c).
+ if($#ARGV gt 0 and $filename =~ /H5FDmulti|H5FDstdio|H5VLpassthru|H5system|H5detect|H5make_libsettings/) {
+ print "$filename is exempt from using Standard library macro wrappers\n";
+ next;
}
- if($filename =~ /H5FDmulti|H5FDstdio/) {
- print "$ARGV is exempt from using Standard library macro wrappers\n";
- } else {
- while (<>) {
-
- # Get rid of comments by removing the inside part.
- s|/\*.*?\*/||g;
- if ($in_comment) {
- if (/\*\//) {
- s|.*?\*/||;
- $in_comment = 0;
- } else {
- $_="\n";
- }
- } elsif (m|/\*|) {
- s|/\*.*||;
- $in_comment = 1;
- }
-
- # Get rid of string constants if they begin and end on this line.
- s/([\'\"])([^\1]|\\\1)*?\1/$1$1/g;
-
- # Get rid of preprocessor directives
- s/^\#.*//;
-
- # Skip callbacks invoked as methods in a struct
- next if $_ =~ /\b(\)?->|\.)\(?([a-z_A-Z]\w*)\s*\(/;
-
- # Now find all function calls on this line which don't start with 'H'
- while (($name)=/\b([a-z_A-GI-Z]\w*)\s*\(/) {
- $_ = $';
+ # Open the file
+ open(my $fh, "<", $arg) or do {
+ warn "NOTE: Unable to open $arg: !$\n";
+ next;
+ };
+
+ # Loop over all lines in the file to find undecorated functions
+ while (<$fh>) {
+
+ # Get rid of comments by removing the inside part.
+ s|/\*.*?\*/||g;
+ if ($in_comment) {
+ if (/\*\//) {
+ s|.*?\*/||;
+ $in_comment = 0;
+ } else {
+ $_="\n";
+ }
+ } elsif (m|/\*|) {
+ s|/\*.*||;
+ $in_comment = 1;
+ }
+
+ # Get rid of string constants if they begin and end on this line.
+ s/([\'\"])([^\1]|\\\1)*?\1/$1$1/g;
+
+ # Get rid of preprocessor directives
+ s/^\#.*//;
+
+ # Skip callbacks invoked as methods in a struct
+ next if $_ =~ /\b(\)?]?->|\.)\(?([a-z_A-Z]\w*)\s*\(/;
+
+ # Now find all function calls on this line which don't start with 'H'
+ while (($name)=/\b([a-z_A-GI-Z]\w*)\s*\(/) {
+ $_ = $';
- # Ignore C statements that look sort of like function
- # calls.
- next if $name =~ /^(if|for|offsetof|return|sizeof|switch|while|void)$/;
-
- # Ignore things that get misdetected because of the simplified
- # parsing that takes place here.
- next if $name =~ /^(int|herr_t|_term_interface)$/;
-
- # These are really HDF5 functions/macros even though they don't
- # start with `h' or `H'.
- next if $name =~ /^FUNC_(ENTER|LEAVE)(_(NO)?API|_PACKAGE|_STATIC)?(_NOFS|_NOCLEAR|_NOINIT)?(_NOFUNC|_TAG)?$/;
- next if $name =~ /^(BEGIN|END)_FUNC$/;
- next if $name =~ /^U?INT(8|16|32|64)(ENCODE|DECODE)(_VAR)?$/;
- next if $name =~ /^CI_(PRINT_STATS|INC_SRC|INC_DST)$/;
- next if $name =~ /^(ABS|ADDR_OVERFLOW|ALL_MEMBERS|BOUND|CONSTR|DETECT_[I|F|M]|DOWN)$/;
- next if $name =~ /^(MIN3?|MAX3?|NELMTS|POWER_OF_TWO|REGION_OVERFLOW)$/;
- next if $name =~ /^(UNIQUE_MEMBERS)$/;
- next if $name =~ /^addr_defined$/;
-
- # These functions/macros are exempt.
- next if $name =~ /^(main|[fs]?printf|va_(start|arg|end))$/;
-
- # These are Windows system calls. Ignore them.
- next if $name =~ /^(_get_osfhandle|GetFileInformationByHandle|SetFilePointer|GetLastError|SetEndOfFile)$/;
- next if $name =~ /^(FindNextFile|FindClose|_tzset|Wgettimeofday|GetSystemTimeAsFileTime|Wgetlogin|GetUserName)$/;
-
- # These are MPI function calls. Ignore them.
- next if $name =~ /^(MPI_|MPE_)/;
-
- # These are POSIX threads function calls. Ignore them.
- next if $name =~ /^pthread_/;
-
- # These are Windows threads function calls. Ignore them.
- next if $name =~ /^(_beginthread|(Initialize|Enter|Leave)CriticalSection|TlsAlloc)$/;
-
- # These are zlib & szlib function calls. Ignore them.
- next if $name =~ /^(inflate|SZ_)/;
- next if $name =~ /^compress2$/;
-
- print "$ARGV:$.: $name\n";
- }
-
- } continue {
- close ARGV if eof; # reset line number
+ # Ignore C statements that look sort of like function
+ # calls.
+ next if $name =~ /^(if|for|offsetof|return|sizeof|switch|while|void)$/;
+
+ # Ignore things that get misdetected because of the simplified
+ # parsing that takes place here.
+ next if $name =~ /^(int|herr_t|_term_interface|_term_package)$/;
+
+ # These are really HDF5 functions/macros even though they don't
+ # start with `h' or `H'.
+ next if $name =~ /^FUNC_(ENTER|LEAVE)(_(NO)?API|_PACKAGE|_STATIC)?(_NOFS|_NOCLEAR|_NOINIT)?(_NOFUNC|_TAG)?$/;
+ next if $name =~ /^(BEGIN|END)_FUNC$/;
+ next if $name =~ /^U?INT(8|16|32|64)(ENCODE|DECODE)(_VAR)?$/;
+ next if $name =~ /^CI_(PRINT_STATS|INC_SRC|INC_DST)$/;
+ next if $name =~ /^(ABS|ADDR_OVERFLOW|ALL_MEMBERS|BOUND|CONSTR|DETECT_[I|F|M]|DOWN)$/;
+ next if $name =~ /^(MIN3?|MAX3?|NELMTS|POWER_OF_TWO|REGION_OVERFLOW)$/;
+ next if $name =~ /^(UNIQUE_MEMBERS|S_ISDIR)$/;
+ next if $name =~ /^addr_defined$/;
+
+ # These functions/macros are exempt.
+ # op, cb, and OP are often spuriously flagged so ignore them.
+ next if $name =~ /^(main|op|cb|OP)$/;
+
+ # This often appears in preprocessor lines that span multiple lines
+ next if $name =~ /^(defined)$/;
+
+ # These are Windows system calls. Ignore them.
+ next if $name =~ /^(_get_osfhandle|GetFileInformationByHandle|SetFilePointer|GetLastError|SetEndOfFile)$/;
+ next if $name =~ /^(FindNextFile|FindClose|_tzset|Wgettimeofday|GetSystemTimeAsFileTime|Wgetlogin|GetUserName)$/;
+ next if $name =~ /^(DeleteCriticalSection|TlsFree|TlsGetValue|CreateThread)$/;
+ next if $name =~ /^(ExpandEnvironmentStringsA|LockFileEx|UnlockFileEx)$/;
+ next if $name =~ /^(DllMain|LocalAlloc|LocalFree)$/;
+ next if $name =~ /^(FindFirstFileA|FindNextFileA)$/;
+ next if $name =~ /^(_beginthread|(Initialize|Enter|Leave)CriticalSection|TlsAlloc)$/;
+
+ # These are MPI function calls. Ignore them.
+ next if $name =~ /^(MPI_|MPE_)/;
+
+ # These are POSIX threads function calls. Ignore them.
+ next if $name =~ /^pthread_/;
+
+ # These are zlib & szlib function calls. Ignore them.
+ next if $name =~ /^(inflate|SZ_)/;
+ next if $name =~ /^compress2$/;
+
+ # These is an H5Dfill function. Ignore it in this file.
+ if($filename =~ /H5Dfill/) {
+ next if $name =~ /^(alloc_func)$/;
+ }
+
+ # These are H5Zscaleoffset functions. Ignore them in this file.
+ if($filename =~ /H5Zscaleoffset/) {
+ next if $name =~ /^(pow_fun|round_fun|abs_fun|lround_fun|llround_fun)$/;
+ }
+
+ # TESTING (not comprehensive - just noise reduction)
+
+ # Test macros and functions (testhdf5.h)
+ next if $name =~ /^(AddTest|TestErrPrintf|TestSummary|TestCleanup|TestShutdown)$/;
+ next if $name =~ /^(CHECK|CHECK_PTR|CHECK_PTR_NULL|CHECK_PTR_EQ|CHECK_I)$/;
+ next if $name =~ /^(VERIFY|VERIFY_STR|VERIFY|TYPE|MESSAGE|ERROR)$/;
+
+ # Test macros and functions (h5test.h)
+ next if $name =~ /^(TESTING|PASSED|SKIPPED|FAIL_PUTS_ERROR|FAIL_STACK_ERROR|TEST_ERROR)$/;
+ next if $name =~ /^(GetTestExpress)$/;
+
+ # Ignore functions that start with test_ or check_
+ next if $name =~ /^test_/;
+ next if $name =~ /^check_/;
+
+ # Ignore functions that start with h5_
+ next if $name =~ /^h5_/;
+
+ # Ignore usage functions
+ next if $name =~ /^usage$/;
+
+ print "$filename:$.: $name\n";
}
+
}
+
+ # Close the file
+ close($fh);
+}
+
+if($#ARGV gt 0) {
+ print "\n";
+ print "NOTE:\n";
+ print "If any files were skipped due to being exempt, you can inspect them manually\n";
+ print "by using this script on them one at a time, which will always process the file.\n";
}
diff --git a/tools/src/misc/h5cc.in b/bin/h5cc.in
index 9c4e3ca..9c4e3ca 100644
--- a/tools/src/misc/h5cc.in
+++ b/bin/h5cc.in
diff --git a/tools/src/misc/h5redeploy.in b/bin/h5redeploy.in
index 242459a..242459a 100644
--- a/tools/src/misc/h5redeploy.in
+++ b/bin/h5redeploy.in
diff --git a/bin/snapshot b/bin/snapshot
index 5900728..1218caa 100755
--- a/bin/snapshot
+++ b/bin/snapshot
@@ -130,10 +130,10 @@ DISPLAYUSAGE()
set -
cat <<EOF
Usage: $PROGNAME [all] [checkout] [ftp <URL> [diff] [test] [srcdir] [release] [help]
- [clean] [distclean] [echo] [deploy <dir>] [deploydir <dir>]
- [zlib <zlib_path>] [releasedir <dir>] [srcdirname <dir>] [check-vfd]
- [check-vol]
- [exec <command>] [module-load <module-list>] [op-configure <option>]
+ [clean] [distclean] [echo] [deploy <dir>] [deploydir <dir>]
+ [zlib <zlib_path>] [releasedir <dir>] [srcdirname <dir>] [check-vfd]
+ [check-passthrough-vol]
+ [exec <command>] [module-load <module-list>] [op-configure <option>]
[--<option>]
all: Run all commands (checkout, test & release)
[Default is all]
@@ -150,8 +150,8 @@ Usage: $PROGNAME [all] [checkout] [ftp <URL> [diff] [test] [srcdir] [release] [h
setenv <name> <value>:
Set environment variable <name> to <value>.
setenvN <N> <name> <value> ...:
- Set environment variable with <N> values.
- E.g., setenvN 3 x a b c is same as setenv x="a b c".
+ Set environment variable with <N> values.
+ E.g., setenvN 3 x a b c is same as setenv x="a b c".
srcdir: Use srcdir option (does not imply other commands)
"snapshot srcdir" is equivalent to "snapshot srcdir all"
"snapshot srcdir checkout" is equivalent to "snapshot checkout"
@@ -169,9 +169,12 @@ Usage: $PROGNAME [all] [checkout] [ftp <URL> [diff] [test] [srcdir] [release] [h
Use <dir> as the release directory
[Default is $ReleaseDir_default]
check-vfd:
- Run make check-vfd instead of just make check.
- check-vol:
- Run make check-vol instead of just make check.
+ Run make check-vfd instead of just make check.
+ check-passthrough-vol:
+ Run make check-passthrough-vol instead of just make check.
+ NOTE: Will only succeed with passthrough VOL connectors
+ that use the native VOL connector as the terminal
+ connector.
exttest <testscript>;
Run testscript;
exec <command>:
@@ -425,8 +428,8 @@ while [ $# -gt 0 ] ; do
check-vfd)
CHECKVAL=check-vfd
;;
- check-vol)
- CHECKVAL=check-vol
+ check-passthrough-vol)
+ CHECKVAL=check-passthrough-vol
;;
module-load)
shift
diff --git a/bin/warnhist b/bin/warnhist
new file mode 100755
index 0000000..5750c77
--- /dev/null
+++ b/bin/warnhist
@@ -0,0 +1,514 @@
+#!/usr/bin/perl -w
+require 5.003;
+
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the files COPYING and Copyright.html. COPYING can be found at the root
+# of the source code distribution tree; Copyright.html can be found at the
+# root level of an installed copy of the electronic HDF5 document set and
+# is linked from the top-level documents page. It can also be found at
+# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
+# access to either file, you may request a copy from help@hdfgroup.org.
+#
+# Quincey Koziol, koziol@hdfgroup.org
+# 9 Aug 2013
+#
+# Purpose: Given an input file containing the output from a build of the
+# library, gather the file names and line numbers, alias
+# identical types of warnings together into a single bin and
+# report the number of warnings for each type of warning, each file
+# and the total count of warnings
+
+# Perl modules/settings
+use strict;
+use Getopt::Std;
+
+# Global variables, for accumulating information
+my $totalcount = 0;
+my %warn_count = ();
+my $warncount;
+my %warn_file = ();
+my %warn_file_line = ();
+my %file_count = ();
+my $filecount;
+my $ignorecount = 0;
+my @ignorenames;
+my %ignored_files = ();
+my %warn_file_indices = ();
+my %file_warn_indices = ();
+my %file_warn = ();
+my %file_warn_line = ();
+my $current_warning = 0;
+my $current_file = 0;
+my $warn_index;
+my $last_c_name;
+my $last_fort_name;
+my $last_fort_line;
+
+# declare the Perl command line flags/options we want to allow
+my %options=();
+getopts("FWht:w:f:i:l", \%options);
+
+# Display usage, if requested
+if($options{h}) {
+ print "Usage: 'warnhist [-h] [-t <prefix>] [-w <n>] [-W] [-f <n>] [-F] [-l] [-i <name list> [file]'\n";
+ print "\t-h\tDisplay this usage\n";
+ print "\t-t <prefix>\tTrim pathname prefix from filenames, <prefix>\n";
+ print "\t-w <n>\tDisplay files for a given warning index list, <n>\n";
+ print "\t\t<n> can be a single value, a range, or a comma separated list\n";
+ print "\t\tFor example: '0' or '0,4' or '8-10' or '0,2-4,8-10,13'\n";
+ print "\t-W\tDisplay files for all warnings\n";
+ print "\t-f <n>\tDisplay warnings for a given file index list, <n>\n";
+ print "\t\t<n> can be a single value, a range, or a comma separated list\n";
+ print "\t\tFor example: '0' or '0,4' or '8-10' or '0,2-4,8-10,13'\n";
+ print "\t-F\tDisplay warnings for all files\n";
+ print "\t-l\tDisplay line nunbers for file/warning\n";
+ print "\t-i <name list>\tIgnore named files, <name list>\n";
+ print "\t\t<name list> is a comma separated list, with no spaces\n";
+ print "\t\tFor example: 'H5LTparse' or 'H5LTparse,H5LTanalyze'\n";
+ print "\tfile\tFilename containing build output\n";
+ print "\t\tIf no file is given, standard input is used.\n";
+ exit;
+}
+
+# Parse list of file names to ignore
+if(exists $options{i}) {
+ @ignorenames = split /,/, $options{i};
+#print @ignorenames;
+}
+
+# Parse list of warning indices to expand file names
+if(exists $options{w}) {
+ my @tmp_indices;
+
+ @tmp_indices = split /,/, $options{w};
+#print @tmp_indices;
+ for my $x (@tmp_indices) {
+#print "x = '$x'\n";
+ if($x =~ /\-/) {
+ my $start_index;
+ my $end_index;
+
+#print "matched = '$x'\n";
+ ($start_index, $end_index) = split /\-/, $x;
+#print "start_index = '$start_index', end_index = '$end_index'\n";
+ for my $y ($start_index..$end_index) {
+#print "y = '$y'\n";
+ if(!(exists $warn_file_indices{$y})) {
+ $warn_file_indices{$y} = $y;
+ }
+ }
+ }
+ else {
+ if(!(exists $warn_file_indices{$x})) {
+ $warn_file_indices{$x} = $x;
+ }
+ }
+ }
+#foreach (sort keys %warn_file_indices) {
+# print "$_ : $warn_file_indices{$_}\n";
+#}
+}
+
+# Parse list of file indices to expand warnings
+if(exists $options{f}) {
+ my @tmp_indices;
+
+ @tmp_indices = split /,/, $options{f};
+#print @tmp_indices;
+ for my $x (@tmp_indices) {
+#print "x = '$x'\n";
+ if($x =~ /\-/) {
+ my $start_index;
+ my $end_index;
+
+#print "matched = '$x'\n";
+ ($start_index, $end_index) = split /\-/, $x;
+#print "start_index = '$start_index', end_index = '$end_index'\n";
+ for my $y ($start_index..$end_index) {
+#print "y = '$y'\n";
+ if(!(exists $file_warn_indices{$y})) {
+ $file_warn_indices{$y} = $y;
+ }
+ }
+ }
+ else {
+ if(!(exists $file_warn_indices{$x})) {
+ $file_warn_indices{$x} = $x;
+ }
+ }
+ }
+#foreach (sort keys %warn_file_indices) {
+# print "$_ : $warn_file_indices{$_}\n";
+#}
+}
+
+PARSE_LINES:
+while (<>) {
+ my $name;
+ my $line;
+ my $prev_line;
+ my $toss;
+ my $offset;
+ my $warning;
+ my $extra;
+
+ # Retain last FORTRAN compile line, which comes a few lines before warning
+ if($_ =~ /.*\.[fF]90:.*/) {
+ ($last_fort_name, $last_fort_line, $toss) = split /\:/, $_;
+ ($last_fort_line, $toss) = split /\./, $last_fort_line;
+ }
+
+ # Retain last C compile line, which possibly comes a few lines before warning
+ if($_ =~ /.*[A-Za-z0-9_]\.c:.*/) {
+ ($last_c_name, $toss) = split /\:/, $_;
+ }
+
+ next if $_ !~ /[Ww]arning:/;
+
+ # Skip warnings from linker
+ next if $_ =~ /ld: warning:/;
+
+ # Check for weird formatting of warning message
+ if($_ =~ /^cc1: warning:.*/) {
+ $name = $last_c_name;
+ $line = "??";
+ ($toss, $toss, $warning, $extra) = split /\:/, $_;
+ # Check for FORTRAN warning output
+ } elsif($_ =~ /^Warning:.*/) {
+ $name = $last_fort_name;
+ $line = $last_fort_line;
+ ($toss, $warning, $extra) = split /\:/, $_;
+#print "1:",$.,":",$_;
+# $_ = <>;
+#print "2:",$.,":",$_;
+# if($_ =~ /^\sFC.*/) {
+# $_ = <>;
+#print "3:",$.,":",$_;
+# }
+# ($name, $line, $toss) = split /\:/, $_;
+#print "4:","'",$name,"'","-","'",$line,"'","\n";
+ # Check for improperly parsed filename or line
+ if($name =~ /^$/) {
+ print "Filename is a null string! Input line #$. is: '$_'";
+ next
+ }
+ if($line =~ /^$/) {
+ print "Line is a null string! Input line #$. is: '$_'";
+ next
+ }
+ } else {
+ # Check for 'character offset' field
+ if($_ =~ /^.*[0-9]+\:[0-9]+\:/) {
+ ($name, $line, $offset, $toss, $warning, $extra) = split /\:/, $_;
+ } else {
+ ($name, $line, $toss, $warning, $extra) = split /\:/, $_;
+ }
+ }
+
+ # Check for extra ':' followed by more text in original warning string,
+ # and append the ':' and text back onto the parsed warning
+ # (Use 'length $extra' idiom to avoid warning when $extra is undefined)
+ if(length $extra ) {
+ $warning = join ':', $warning, $extra;
+ }
+
+ # Trim leading '..' paths from filename
+ while($name =~ /^\.\.\//) {
+ $name =~ s/^\.\.\///g;
+ }
+
+ # Check for trimming prefix
+ if((exists $options{t}) && ($name =~ /$options{t}/)) {
+ $name =~ s/^$options{t}\///g;
+ }
+
+ # Check for ignored file
+ if(exists $options{i}) {
+ for my $x (@ignorenames) {
+#print "x = '$x'\n";
+ if($name =~ /$x/) {
+# print "matched name = '$name'\n";
+ $ignorecount++;
+ if(!(exists $ignored_files{$name})) {
+ $ignored_files{$name} = $name;
+ }
+ next PARSE_LINES;
+ }
+ }
+ }
+
+ # Check for improperly parsed warning (usually an undefined warning string)
+ if(!defined $warning) {
+ print "Warning Undefined! Input line is: '$_'";
+ next
+ }
+
+ # Get rid of leading & trailing whitespace
+ $warning =~ s/^\s//g;
+ $warning =~ s/\s$//g;
+
+ # Check for improperly parsed warning
+ if($warning =~ /^$/) {
+ print "Warning is a null string! Input line is: '$_'";
+ next
+ }
+
+ # Convert all quotes to '
+ $warning =~ s/‘/'/g;
+ $warning =~ s/’/'/g;
+
+ # Skip supplemental warning message
+ next if $warning =~ /near initialization for/;
+
+ # Skip GCC warning that should be a note
+ next if $_ =~ /\(this will be reported only once per input file\)/;
+
+ # Eliminate "{aka <some type>}" info
+ if($warning =~ /\s\{aka [A-Za-z_0-9\s\*]*\}'/) {
+ $warning =~ s/\s\{aka [A-Za-z_0-9\s\*]*\}//g;
+ }
+
+ # Genericize warnings
+ if($warning =~ /variable '[A-Za-z_0-9]*' set but not used.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /unused variable '[A-Za-z_0-9]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /implicit conversion from '[A-Za-z_0-9]*' to '[A-Za-z_0-9]*' when passing argument to function.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /implicit conversion from '[A-Za-z_0-9]*' to '[A-Za-z_0-9]*' to match other operand of binary expression.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /conversion to '[A-Za-z_0-9\s]*' from '[A-Za-z_0-9\s]*' may alter its value.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /conversion to '[A-Za-z_0-9\s]*' from '[A-Za-z_0-9\s]*' may change the sign of the result.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9\s]*' discards '[A-Za-z_0-9\s]*'.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /'[A-Za-z_0-9\s]*' defined but not used.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /cast discards '[A-Za-z_0-9\(\)\s]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9\(\)\s]*'/'-'/g;
+ } elsif($warning =~ /size of '[A-Za-z_0-9\(\)\s\*]*' is [0-9]* bytes.*/) {
+ $warning =~ s/is [0-9]* bytes/is - bytes/g;
+ $warning =~ s/'[A-Za-z_0-9\(\)\s\*]*'/'-'/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9\(\)\s]*' from incompatible.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9\(\)\s]*'/'-'/g;
+ } elsif($warning =~ /stack usage is [0-9]* bytes.*/) {
+ $warning =~ s/stack usage is [0-9]*/stack usage is -/g;
+ } elsif($warning =~ /stack usage might be [0-9]* bytes.*/) {
+ $warning =~ s/stack usage might be [0-9]*/stack usage might be -/g;
+ } elsif($warning =~ /the frame size of [0-9]* bytes is larger than [0-9]* bytes.*/) {
+ $warning =~ s/the frame size of [0-9]* bytes is larger than [0-9]*/the frame size of - bytes is larger than -/g;
+ } elsif($warning =~ /enumeration value '[A-Za-z_0-9\s]*' not handled in switch.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /"[A-Za-z_0-9\s]*" is not defined.*/) {
+ $warning =~ s/"[A-Za-z_0-9\s]*"/"-"/g;
+ } elsif($warning =~ /macro "[A-Za-z_0-9\s]*" is not used.*/) {
+ $warning =~ s/"[A-Za-z_0-9\s]*"/"-"/g;
+ } elsif($warning =~ /unused parameter '[A-Za-z_0-9\s]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /request for implicit conversion from '[A-Za-z_0-9\s\*]*' to '[A-Za-z_0-9\s\<\>\[\]\(\)\*]*' not permitted in C\+\+.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s\*\<\>\[\]\(\)]*'/'-'/g;
+ } elsif($warning =~ /no previous prototype for '[A-Za-z_0-9\s]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /declaration of '[A-Za-z_0-9\s]*' shadows a previous local.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /cast from function call of type '[A-Za-z_0-9\s\*]*' to non-matching type '[A-Za-z_0-9\s\*]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s\*]*'/'-'/g;
+ } elsif($warning =~ /'[A-Za-z_0-9\s]*' declared '[A-Za-z_0-9\s]*' but never defined.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /declaration of '[A-Za-z_0-9\s]*' shadows a global declaration.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /typedef '[A-Za-z_0-9\s]*' locally defined but not used.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /format '%[a-z]*' expects argument of type '[A-Za-z_0-9\s\*]*', but argument [0-9]* has type '[A-Za-z_0-9\s\*\(\),]*'.*/) {
+ $warning =~ s/but argument [0-9]*/but argument -/g;
+ $warning =~ s/'[%A-Za-z_0-9\s\*\(\),]*'/'-'/g;
+ } elsif($warning =~ /conversion to '[A-Za-z_0-9\s]*' alters '[A-Za-z_0-9\s]*' constant value.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s]*'/'-'/g;
+ } elsif($warning =~ /to be safe all intermediate pointers in cast from '[A-Za-z_0-9\s\*]*' to '[A-Za-z_0-9\s\*]*' must be 'const' qualified.*/) {
+ $warning =~ s/'[A-Za-z_0-9\s\*]*'/'-'/g;
+ } elsif($warning =~ /identifier '[A-Za-z_0-9]*' conflicts with C\+\+ keyword.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /nested extern declaration of '[A-Za-z_0-9]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /Procedure '[A-Za-z_0-9]*' called with an implicit interface.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /Unused dummy argument '[A-Za-z_0-9]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /Unused parameter '[A-Za-z_0-9]*' declared at.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /Unused variable '[A-Za-z_0-9]*' declared at.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /Inequality comparison for REAL\([0-9]*\) at.*/) {
+ $warning =~ s/REAL\([0-9]*\)/REAL\(-\)/g;
+ } elsif($warning =~ /Possible change of value in conversion from INTEGER\([0-9]*\) to (INTEGER|REAL)\([0-9]*\) at.*/) {
+ $warning =~ s/INTEGER\([0-9]*\)/INTEGER\(-\)/g;
+ $warning =~ s/REAL\([0-9]*\)/REAL\(-\)/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9]*' with different width due to prototype.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9]*' as unsigned due to prototype.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9]*' discards qualifiers from pointer target type.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9]*' as floating rather than integer due to prototype.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9]*' as 'float' rather than 'double' due to prototype.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/;
+ } elsif($warning =~ /passing argument [0-9]* of '[A-Za-z_0-9]*' as signed due to prototype.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /format '\%[A-Za-z0-9]*' expects type '[a-z][a-z\s\*]*', but argument [0-9]* has type '[a-z][a-z\(\)_,\s\*]*'.*/) {
+ $warning =~ s/but argument [0-9]*/but argument -/g;
+ $warning =~ s/'\%[A-Za-z0-9]*'/'\%-'/g;
+ $warning =~ s/'[a-z][a-z_,\s\*\(\)]*'/'-'/g;
+ } elsif($warning =~ /implicit declaration of function '[A-Za-z_0-9]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /'[A-Za-z_\.\[\]0-9]*' may be used uninitialized in this function.*/) {
+ $warning =~ s/'[A-Za-z_\.\[\]0-9]*'/'-'/g;
+ } elsif($warning =~ /redundant redeclaration of '[A-Za-z_0-9]*'.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /declaration of '[A-Za-z_0-9]*' shadows a parameter.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /ISO C90 does not support the '[a-z]*' gnu_scanf length modifier.*/) {
+ $warning =~ s/'[a-z]*'/'-'/g;
+ } elsif($warning =~ /ISO C90 does not support the '[a-z]*' gnu_printf length modifier.*/) {
+ $warning =~ s/'[a-z]*'/'-'/g;
+ } elsif($warning =~ /ISO C90 does not support the '%[a-z]*' gnu_printf format.*/) {
+ $warning =~ s/'%[a-z]*'/'%-'/g;
+ } elsif($warning =~ /string length '[0-9]*' is greater than the length.*/) {
+ $warning =~ s/string length '[0-9]*' is/string length '-' is/g;
+ } elsif($warning =~ /enum conversion when passing argument [0-9]* of '[A-Za-z_0-9]*' is invalid.*/) {
+ $warning =~ s/passing argument [0-9]*/passing argument -/g;
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /duplicate declaration of '[A-Za-z_0-9]*' is invalid in.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /Variable '[A-Za-z_0-9]*' at \([0-9]*\) is a dummy argument of the BIND\(C\) procedure '[A-Za-z_0-9]*' but may not be C interoperable.*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ $warning =~ s/at \([0-9]*\)/at \(-\)/g;
+ } elsif($warning =~ /Variable '[A-Za-z_0-9]*' at \([0-9]*\) may not be a C interoperable kind but it is BIND\(C\).*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ $warning =~ s/at \([0-9]*\)/at \(-\)/g;
+ } elsif($warning =~ /Component '[A-Za-z_0-9]*' in derived type '[A-Za-z_0-9]*' at \([0-9]*\) may not be C interoperable, even though derived type '[A-Za-z_0-9]*' is BIND\(C\).*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ $warning =~ s/at \([0-9]*\)/at \(-\)/g;
+ } elsif($warning =~ /function might be candidate for attribute '[A-Za-z_0-9]*' if it is known to return normally \[-Wsuggest-attribute=[A-Za-z_0-9]*\].*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ $warning =~ s/=[A-Za-z_0-9]*\]/=-\]/g;
+ } elsif($warning =~ /function might be candidate for attribute '[A-Za-z_0-9]*' \[-Wsuggest-attribute=[A-Za-z_0-9]*\].*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ $warning =~ s/=[A-Za-z_0-9]*\]/=-\]/g;
+ } elsif($warning =~ /passing argument [0-9]+ of '[A-Za-z_0-9]*' makes integer from pointer without a cast \[-Wint-conversion\].*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ $warning =~ s/[0-9]+/-/g;
+ } elsif($warning =~ /function '[A-Za-z_0-9]*' might be a candidate for '[A-Za-z_0-9]*' format attribute \[-Wsuggest-attribute=format\].*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /inlining failed in call to '[A-Za-z_0-9]*': call is unlikely and code size would grow \[-Winline\].*/) {
+ $warning =~ s/'[A-Za-z_0-9]*'/'-'/g;
+ } elsif($warning =~ /'%[0-9]*[\.\*]*[0-9]*[dfsu]' directive writing between [0-9]+ and [0-9]+ bytes into a region of size [0-9]+ \[-Wformat-overflow=\].*/) {
+ $warning =~ s/'%[0-9]*[\.\*]*[0-9]*[dfsu]'/'-'/g;
+ $warning =~ s/[0-9]+/-/g;
+ } elsif($warning =~ /'%[0-9]*[\.\*]*[0-9]*[dfsu]' directive writing between [0-9]+ and [0-9]+ bytes into a region of size between [0-9]+ and [0-9]+ \[-Wformat-overflow=\].*/) {
+ $warning =~ s/'%[0-9]*[\.\*]*[0-9]*[dfsu]'/'-'/g;
+ $warning =~ s/[0-9]+/-/g;
+ } elsif($warning =~ /'%[0-9]*[\.\*]*[0-9]*[dfsu]' directive output may be truncated writing between [0-9]+ and [0-9]+ bytes into a region of size [0-9]+ \[-Wformat-truncation=\].*/) {
+ $warning =~ s/'%[0-9]*[\.\*]*[0-9]*[dfsu]'/'-'/g;
+ $warning =~ s/[0-9]+/-/g;
+ } elsif($warning =~ /'%[0-9]*[\.\*]*[0-9]*[dfsu]' directive output may be truncated writing up to [0-9]+ bytes into a region of size [0-9]+ \[-Wformat-truncation=\].*/) {
+ $warning =~ s/'%[0-9]*[\.\*]*[0-9]*[dfsu]'/'-'/g;
+ $warning =~ s/[0-9]+/-/g;
+ } elsif($warning =~ /'%[0-9]*[\.\*]*[0-9]*[dfsu]' directive output may be truncated writing between [0-9]+ and [0-9]+ bytes into a region of size between [0-9]+ and [0-9]+ \[-Wformat-truncation=\].*/) {
+ $warning =~ s/'%[0-9]*[\.\*]*[0-9]*[dfsu]'/'-'/g;
+ $warning =~ s/[0-9]+/-/g;
+ }
+
+ # Increment count for [generic] warning
+ $warn_count{$warning}++;
+ $warn_file{$warning}{$name}++;
+ push(@{ $warn_file_line{$warning}{$name} }, $line);
+
+ # Increment count for filename
+ $file_count{$name}++;
+ $file_warn{$name}{$warning}++;
+ push(@{ $file_warn_line{$name}{$warning} }, $line);
+
+ # Increment total count of warnings
+ $totalcount++;
+
+# print "name = $name\n";
+# print "line = $line\n";
+# print "offset = $offset\n";
+# print "warning = \"$warning\"\n";
+}
+
+print "Total [non-ignored] warnings: $totalcount\n";
+print "Total ignored warnings: $ignorecount\n";
+$warncount = keys %warn_count;
+print "Total unique kinds of warnings: $warncount\n";
+$filecount = keys %file_count;
+print "Total files with warnings: $filecount\n\n";
+
+# Print warnings in decreasing frequency
+print "# of Warnings by frequency (file count)\n";
+print "=======================================\n";
+for my $x (sort {$warn_count{$b} <=> $warn_count{$a}} keys(%warn_count)) {
+ printf ("[%2d] %4d (%2d) - %s\n", $current_warning++, $warn_count{$x}, scalar(keys %{$warn_file_line{$x}}), $x);
+ if((exists $options{W}) || (exists $options{w})) {
+ my $curr_index = $current_warning - 1;
+
+ if((exists $warn_file_indices{$curr_index}) && $curr_index == $warn_file_indices{$curr_index}) {
+ for my $y (sort {$warn_file{$x}{$b} <=> $warn_file{$x}{$a}} keys(%{$warn_file{$x}})) {
+ printf ("\t%4d - %s\n", $warn_file{$x}{$y}, $y);
+ if(exists $options{l}) {
+ printf ("\t\tLines: ");
+ for my $z ( @{ $warn_file_line{$x}{$y} } ) {
+ printf ("%s, ", $z);
+ }
+ printf("\n");
+ }
+ }
+ }
+ }
+}
+
+# Print warnings in decreasing frequency, by filename
+print "\n# of Warnings by filename (warning type)\n";
+print "========================================\n";
+for my $x (sort {$file_count{$b} <=> $file_count{$a}} keys(%file_count)) {
+ printf ("[%3d] %4d (%2d) - %s\n", $current_file++, $file_count{$x}, scalar(keys %{$file_warn_line{$x}}), $x);
+ if((exists $options{F}) || (exists $options{f})) {
+ my $curr_index = $current_file - 1;
+
+ if((exists $file_warn_indices{$curr_index}) && $curr_index == $file_warn_indices{$curr_index}) {
+ for my $y (sort {$file_warn{$x}{$b} <=> $file_warn{$x}{$a}} keys(%{$file_warn{$x}})) {
+ printf ("\t%4d - %s\n", $file_warn{$x}{$y}, $y);
+ if(exists $options{l}) {
+ printf ("\t\tLines: ");
+ for my $z ( @{ $file_warn_line{$x}{$y} } ) {
+ printf ("%s, ", $z);
+ }
+ printf("\n");
+ }
+ }
+ }
+ }
+}
+
+# Print names of files that were ignored
+print "\nIgnored filenames\n";
+print "=================\n";
+for my $x (sort keys(%ignored_files)) {
+ print "$x\n";
+}
+
diff --git a/c++/Makefile.am b/c++/Makefile.am
index 94fbefc..319ce6e 100644
--- a/c++/Makefile.am
+++ b/c++/Makefile.am
@@ -18,9 +18,21 @@
include $(top_srcdir)/config/commence.am
+if BUILD_TESTS_CONDITIONAL
+ TEST_DIR = test
+else
+ TEST_DIR=
+endif
+
## Only recurse into subdirectories if C++ interface is enabled.
if BUILD_CXX_CONDITIONAL
- SUBDIRS=src test
+ SUBDIRS=src $(TEST_DIR)
+
+# Test with just the native connector, with a single pass-through connector
+# and with a doubly-stacked pass-through.
+VOL_LIST = native "pass_through under_vol=0;under_info={}" \
+ "pass_through under_vol=505;under_info={under_vol=0;under_info={}}"
+
endif
DIST_SUBDIRS = src test examples
diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt
index d3a18f2..2088019 100644
--- a/c++/examples/CMakeLists.txt
+++ b/c++/examples/CMakeLists.txt
@@ -34,17 +34,27 @@ set (tutr_examples
foreach (example ${examples})
add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
- target_include_directories(cpp_ex_${example} PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (cpp_ex_${example} STATIC)
- target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
+ target_include_directories (cpp_ex_${example} PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+ if (NOT BUILD_SHARED_LIBS)
+ TARGET_C_PROPERTIES (cpp_ex_${example} STATIC)
+ target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
+ else ()
+ TARGET_C_PROPERTIES (cpp_ex_${example} SHARED)
+ target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+ endif ()
set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
endforeach ()
foreach (example ${tutr_examples})
add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
- target_include_directories(cpp_ex_${example} PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (cpp_ex_${example} STATIC)
- target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
+ target_include_directories (cpp_ex_${example} PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+ if (NOT BUILD_SHARED_LIBS)
+ TARGET_C_PROPERTIES (cpp_ex_${example} STATIC)
+ target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
+ else ()
+ TARGET_C_PROPERTIES (cpp_ex_${example} SHARED)
+ target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+ endif ()
set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
endforeach ()
diff --git a/c++/examples/CMakeTests.cmake b/c++/examples/CMakeTests.cmake
index bd1f95b..58bdb68 100644
--- a/c++/examples/CMakeTests.cmake
+++ b/c++/examples/CMakeTests.cmake
@@ -26,7 +26,7 @@
SDSextendible.h5
Select.h5
)
- if (NOT "${last_test}" STREQUAL "")
+ if (last_test)
set_tests_properties (CPP_ex-clear-objects PROPERTIES DEPENDS ${last_test})
endif ()
set (last_test "CPP_ex-clear-objects")
@@ -46,7 +46,7 @@
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
- if (NOT "${last_test}" STREQUAL "")
+ if (last_test)
set_tests_properties (CPP_ex_${example} PROPERTIES DEPENDS ${last_test})
endif ()
set (last_test "CPP_ex_${example}")
@@ -66,7 +66,7 @@
h5tutr_groups.h5
h5tutr_subset.h5
)
- if (NOT "${last_test}" STREQUAL "")
+ if (last_test)
set_tests_properties (CPP_ex_tutr-clear-objects PROPERTIES DEPENDS ${last_test})
endif ()
set (last_test "CPP_ex_tutr-clear-objects")
@@ -86,7 +86,7 @@
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
- if (NOT "${last_test}" STREQUAL "")
+ if (last_test)
set_tests_properties (CPP_ex_${example} PROPERTIES DEPENDS ${last_test})
endif ()
set (last_test "CPP_ex_${example}")
diff --git a/c++/src/C2Cppfunction_map.htm b/c++/src/C2Cppfunction_map.htm
index b53ea15..2d779a3 100644
--- a/c++/src/C2Cppfunction_map.htm
+++ b/c++/src/C2Cppfunction_map.htm
@@ -7666,6 +7666,42 @@ normal'><span style='font-size:14.0pt;mso-bidi-font-size:11.0pt;line-height:
normal'><o:p>&nbsp;</o:p></p>
</td>
</tr>
+ <tr style='mso-yfti-irow:180'>
+ <td width=263 style='width:197.2pt;border:solid windowtext 1.0pt;border-top:
+ none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal'>H5Fget_fileno</p>
+ </td>
+ <td width=474 valign=top style='width:355.2pt;border-top:none;border-left:
+ none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+ mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal'>unsigned long H5File::getFileNum()</p>
+ </td>
+ <td width=35 valign=top style='width:26.05pt;border-top:none;border-left:
+ none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+ mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal align=center style='margin-bottom:0in;margin-bottom:.0001pt;
+ text-align:center;line-height:normal'><o:p>&nbsp;</o:p></p>
+ </td>
+ <td width=42 valign=top style='width:31.45pt;border-top:none;border-left:
+ none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+ mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal align=center style='margin-bottom:0in;margin-bottom:.0001pt;
+ text-align:center;line-height:normal'><o:p>&nbsp;</o:p></p>
+ </td>
+ <td width=169 valign=top style='width:126.65pt;border-top:none;border-left:
+ none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+ mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal'><o:p>&nbsp;</o:p></p>
+ </td>
+ </tr>
<tr style='mso-yfti-irow:181'>
<td width=263 style='width:197.2pt;border:solid windowtext 1.0pt;border-top:
none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
index 945b352..8e7f8be 100644
--- a/c++/src/CMakeLists.txt
+++ b/c++/src/CMakeLists.txt
@@ -84,24 +84,26 @@ set (CPP_HDRS
${HDF5_CPP_SRC_SOURCE_DIR}/H5VarLenType.h
)
-add_library (${HDF5_CPP_LIB_TARGET} STATIC ${CPP_SOURCES} ${CPP_HDRS})
-target_include_directories(${HDF5_CPP_LIB_TARGET}
- PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
- INTERFACE "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-)
-target_compile_definitions(${HDF5_CPP_LIB_TARGET}
- PRIVATE $<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPICH_SKIP_MPICXX;MPICH_IGNORE_CXX_SEEK># Parallel/MPI, prevent spurious cpp/cxx warnings
-)
-TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} STATIC)
-target_link_libraries (${HDF5_CPP_LIB_TARGET} PUBLIC ${HDF5_LIB_TARGET})
-set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} STATIC 0)
-set_target_properties (${HDF5_CPP_LIB_TARGET} PROPERTIES FOLDER libraries/cpp)
-set (install_targets ${HDF5_CPP_LIB_TARGET})
+if (NOT ONLY_SHARED_LIBS)
+ add_library (${HDF5_CPP_LIB_TARGET} STATIC ${CPP_SOURCES} ${CPP_HDRS})
+ target_include_directories (${HDF5_CPP_LIB_TARGET}
+ PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
+ INTERFACE "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+ )
+ target_compile_definitions(${HDF5_CPP_LIB_TARGET}
+ PRIVATE $<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPICH_SKIP_MPICXX;MPICH_IGNORE_CXX_SEEK># Parallel/MPI, prevent spurious cpp/cxx warnings
+ )
+ TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} STATIC)
+ target_link_libraries (${HDF5_CPP_LIB_TARGET} PUBLIC ${HDF5_LIB_TARGET})
+ set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
+ H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} STATIC 0)
+ set_target_properties (${HDF5_CPP_LIB_TARGET} PROPERTIES FOLDER libraries/cpp)
+ set (install_targets ${HDF5_CPP_LIB_TARGET})
+endif ()
if (BUILD_SHARED_LIBS)
add_library (${HDF5_CPP_LIBSH_TARGET} SHARED ${CPP_SOURCES} ${CPP_HDRS})
- target_include_directories(${HDF5_CPP_LIBSH_TARGET}
+ target_include_directories (${HDF5_CPP_LIBSH_TARGET}
PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
INTERFACE "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
@@ -136,7 +138,9 @@ if (HDF5_EXPORTED_TARGETS)
if (BUILD_SHARED_LIBS)
INSTALL_TARGET_PDB (${HDF5_CPP_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
endif ()
- INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
+ if (NOT ONLY_SHARED_LIBS)
+ INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
+ endif ()
install (
TARGETS
@@ -163,7 +167,9 @@ set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE)
-set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${HDF5_CPP_LIB_CORENAME}")
+if (NOT ONLY_SHARED_LIBS)
+ set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${HDF5_CPP_LIB_CORENAME}")
+endif ()
if (BUILD_SHARED_LIBS)
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_CPP_LIB_CORENAME}")
endif ()
diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp
index 719c1ba..b9ecded 100644
--- a/c++/src/H5File.cpp
+++ b/c++/src/H5File.cpp
@@ -580,6 +580,27 @@ hsize_t H5File::getFileSize() const
}
//--------------------------------------------------------------------------
+// Function: H5File::getFileNum
+///\brief Returns the file number of the HDF5 file.
+///\return File number
+///\exception H5::FileIException
+///\par Description
+/// This function is called after an existing file is opened in
+/// order to retrieve the unique 'file number' for the file.
+// Programmer Quincey Koziol - April 13, 2019
+//--------------------------------------------------------------------------
+unsigned long H5File::getFileNum() const
+{
+ unsigned long fileno = 0;
+ herr_t ret_value = H5Fget_fileno(id, &fileno);
+ if (ret_value < 0)
+ {
+ throw FileIException("H5File::getFileNum", "H5Fget_fileno failed");
+ }
+ return (fileno);
+}
+
+//--------------------------------------------------------------------------
// Function: H5File::getId
///\brief Get the id of this file
///\return File identifier
diff --git a/c++/src/H5File.h b/c++/src/H5File.h
index 332685e..1b1227f 100644
--- a/c++/src/H5File.h
+++ b/c++/src/H5File.h
@@ -69,6 +69,9 @@ class H5_DLLCPP H5File : public Group {
// Returns the file size of the HDF5 file.
hsize_t getFileSize() const;
+ // Returns the 'file number' of the HDF5 file.
+ unsigned long getFileNum() const;
+
// Determines if a file, specified by its name, is in HDF5 format
static bool isHdf5(const char* name);
static bool isHdf5(const H5std_string& name);
diff --git a/c++/src/H5LaccProp.h b/c++/src/H5LaccProp.h
index 70890b3..ec5e54f 100644
--- a/c++/src/H5LaccProp.h
+++ b/c++/src/H5LaccProp.h
@@ -12,9 +12,6 @@
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-// Class LinkAccPropList represents the HDF5 file access property list and
-// inherits from DataType.
-
#ifndef __H5LinkAccPropList_H
#define __H5LinkAccPropList_H
@@ -22,15 +19,15 @@ namespace H5 {
/*! \class LinkAccPropList
\brief Class LinkAccPropList inherits from PropList and provides
- wrappers for the HDF5 file access property list.
+ wrappers for the HDF5 link access property list.
*/
// Inheritance: PropList -> IdComponent
class H5_DLLCPP LinkAccPropList : public PropList {
public:
- ///\brief Default file access property list.
+ ///\brief Default link access property list.
static const LinkAccPropList& DEFAULT;
- // Creates a file access property list.
+ // Creates a link access property list.
LinkAccPropList();
///\brief Returns this class name.
@@ -39,7 +36,7 @@ class H5_DLLCPP LinkAccPropList : public PropList {
// Copy constructor: same as the original LinkAccPropList.
LinkAccPropList(const LinkAccPropList& original);
- // Creates a copy of an existing file access property list
+ // Creates a copy of an existing link access property list
// using the property list id.
LinkAccPropList (const hid_t plist_id);
diff --git a/c++/src/H5LcreatProp.cpp b/c++/src/H5LcreatProp.cpp
index 695c1fe..bde9339 100644
--- a/c++/src/H5LcreatProp.cpp
+++ b/c++/src/H5LcreatProp.cpp
@@ -103,6 +103,46 @@ LinkCreatPropList::LinkCreatPropList(const LinkCreatPropList& original) : PropLi
LinkCreatPropList::LinkCreatPropList(const hid_t plist_id) : PropList(plist_id) {}
//--------------------------------------------------------------------------
+// Function: LinkCreatPropList::setCreateIntermediateGroup
+///\brief Specifies in property list whether to create missing
+/// intermediate groups.
+///\param crt_intmd_group - IN: Flag specifying whether to create
+/// intermediate groups upon the creation of an object
+///\exception H5::PropListIException
+// April, 2019
+//--------------------------------------------------------------------------
+void LinkCreatPropList::setCreateIntermediateGroup(bool crt_intmd_group) const
+{
+ herr_t ret_value = H5Pset_create_intermediate_group(id, (unsigned)crt_intmd_group);
+ // Throw exception if H5Pset_create_intermediate_group returns failure
+ if (ret_value < 0)
+ {
+ throw PropListIException("setCreateIntermediateGroup", "H5Pset_create_intermediate_group failed");
+ }
+}
+
+//--------------------------------------------------------------------------
+// Function: LinkCreatPropList::getCreateIntermediateGroup
+///\brief Determines whether property is set to enable creating missing
+/// intermediate groups.
+///\return true if creating intermediate groups is enabled, and false, otherwise
+///\exception H5::PropListIException
+// April, 2019
+//--------------------------------------------------------------------------
+bool LinkCreatPropList::getCreateIntermediateGroup() const
+{
+ unsigned crt_intmd_group;
+ herr_t ret_value = H5Pget_create_intermediate_group(id, &crt_intmd_group);
+ // Throw exception if H5Pget_create_intermediate_group returns failure
+ if (ret_value < 0)
+ {
+ throw PropListIException("getCreateIntermediateGroup", "H5Pget_create_intermediate_group failed");
+ }
+
+ return((bool)crt_intmd_group);
+}
+
+//--------------------------------------------------------------------------
// Function: LinkCreatPropList::setCharEncoding
///\brief Sets the character encoding of the string.
///
diff --git a/c++/src/H5LcreatProp.h b/c++/src/H5LcreatProp.h
index 12cb479..908ef63 100644
--- a/c++/src/H5LcreatProp.h
+++ b/c++/src/H5LcreatProp.h
@@ -12,9 +12,6 @@
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-// Class LinkCreatPropList represents the HDF5 file access property list and
-// inherits from DataType.
-
#ifndef __H5LinkCreatPropList_H
#define __H5LinkCreatPropList_H
@@ -22,15 +19,15 @@ namespace H5 {
/*! \class LinkCreatPropList
\brief Class LinkCreatPropList inherits from PropList and provides
- wrappers for the HDF5 file access property list.
+ wrappers for the HDF5 link creation property list.
*/
// Inheritance: PropList -> IdComponent
class H5_DLLCPP LinkCreatPropList : public PropList {
public:
- ///\brief Default file access property list.
+ ///\brief Default link creation property list.
static const LinkCreatPropList& DEFAULT;
- // Creates a file access property list.
+ // Creates a link creation property list.
LinkCreatPropList();
///\brief Returns this class name.
@@ -39,10 +36,18 @@ class H5_DLLCPP LinkCreatPropList : public PropList {
// Copy constructor: same as the original LinkCreatPropList.
LinkCreatPropList(const LinkCreatPropList& original);
- // Creates a copy of an existing file access property list
+ // Creates a copy of an existing link creation property list
// using the property list id.
LinkCreatPropList (const hid_t plist_id);
+ // Specifies in property list whether to create missing
+ // intermediate groups
+ void setCreateIntermediateGroup(bool crt_intmd_group) const;
+
+ // Determines whether property is set to enable creating missing
+ // intermediate groups
+ bool getCreateIntermediateGroup() const;
+
// Sets the character encoding of the string.
void setCharEncoding(H5T_cset_t encoding) const;
diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp
index 2c49016..2641960 100644
--- a/c++/src/H5Location.cpp
+++ b/c++/src/H5Location.cpp
@@ -1066,7 +1066,7 @@ void H5Location::link(const char *curr_name, const Group& new_loc,
hid_t lcpl_id = lcpl.getId();
hid_t lapl_id = lapl.getId();
- ret_value = H5Lcreate_hard(getId(), curr_name, new_loc.getId(), new_name, H5P_DEFAULT, H5P_DEFAULT);
+ ret_value = H5Lcreate_hard(getId(), curr_name, new_loc_id, new_name, lcpl_id, lapl_id);
if (ret_value < 0)
throwException("link", "creating link failed");
}
@@ -1102,14 +1102,13 @@ void H5Location::link(const H5std_string& curr_name, const Group& new_loc,
/// H5Lcreate_hard APIs in the HDF5 C Reference Manual.
// March 2018
//--------------------------------------------------------------------------
-void H5Location::link(const char *curr_name, const hid_t same_loc,
- const char *new_name, const LinkCreatPropList& lcpl, const LinkAccPropList& lapl) const
+void H5Location::link(const char *curr_name, const hid_t same_loc, const char *new_name, const LinkCreatPropList& lcpl, const LinkAccPropList& lapl) const
{
herr_t ret_value = -1;
hid_t lcpl_id = lcpl.getId();
hid_t lapl_id = lapl.getId();
- ret_value = H5Lcreate_hard(getId(), curr_name, same_loc, new_name, H5P_DEFAULT, H5P_DEFAULT);
+ ret_value = H5Lcreate_hard(getId(), curr_name, same_loc, new_name, lcpl_id, lapl_id);
if (ret_value < 0)
throwException("link", "creating link failed");
diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp
index 1c22efe..8d3334b 100644
--- a/c++/src/H5Object.cpp
+++ b/c++/src/H5Object.cpp
@@ -40,9 +40,8 @@
namespace H5 {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// userAttrOpWrpr simply interfaces between the user's function and the
-// C library function H5Aiterate2; used to resolve the different prototype
-// problem. May be moved to Iterator later.
+// userAttrOpWrpr interfaces between the user's function and the
+// C library function H5Aiterate2
extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name,
const H5A_info_t *ainfo, void *op_data)
{
@@ -52,6 +51,17 @@ extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name,
return 0;
}
+// userVisitOpWrpr interfaces between the user's function and the
+// C library function H5Ovisit2
+extern "C" herr_t userVisitOpWrpr(hid_t obj_id, const char *attr_name,
+ const H5O_info_t *obj_info, void *op_data)
+{
+ H5std_string s_attr_name = H5std_string(attr_name);
+ UserData4Visit* myData = reinterpret_cast<UserData4Visit *> (op_data);
+ int status = myData->op(*myData->obj, s_attr_name, obj_info, myData->opData);
+ return status;
+}
+
//--------------------------------------------------------------------------
// Function: H5Object default constructor (protected)
// Programmer Binh-Minh Ribler - 2000
@@ -197,8 +207,6 @@ Attribute H5Object::openAttribute(const unsigned int idx) const
///\par Description
/// The signature of user_op is
/// void (*)(H5::H5Location&, H5std_string, void*).
-/// For information, please refer to the H5Aiterate2 API in
-/// the HDF5 C Reference Manual.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Object::iterateAttrs(attr_operator_t user_op, unsigned *_idx, void *op_data)
@@ -228,6 +236,61 @@ int H5Object::iterateAttrs(attr_operator_t user_op, unsigned *_idx, void *op_dat
}
//--------------------------------------------------------------------------
+// Function: H5Object::visit
+///\brief Recursively visits all HDF5 objects accessible from this object.
+///\param idx_type - IN: Type of index; valid values include:
+/// \li \c H5_INDEX_NAME
+/// \li \c H5_INDEX_CRT_ORDER
+///\param order - IN: Order in which index is traversed; valid values include:
+/// \li \c H5_ITER_DEC
+/// \li \c H5_ITER_INC
+/// \li \c H5_ITER_NATIVE
+///\param user_op - IN: Callback function passing data regarding the
+/// object to the calling application
+///\param *op_data - IN: User-defined pointer to data required by the
+/// application for its processing of the object
+///\param fields - IN: Flags specifying the fields to be retrieved
+/// to the callback op via the H5O_info_t argument.
+/// \li \c H5O_INFO_BASIC fileno, addr, type, and rc fields
+/// \li \c H5O_INFO_TIME atime, mtime, ctime, and btime fields
+/// \li \c H5O_INFO_NUM_ATTRS num_attrs field
+/// \li \c H5O_INFO_HDR hdr field
+/// \li \c H5O_INFO_META_SIZE meta_size field
+/// \li \c H5O_INFO_ALL H5O_INFO_BASIC | H5O_INFO_TIME | H5O_INFO_NUM_ATTRS | H5O_INFO_HDR | H5O_INFO_META_SIZE
+///\return
+/// \li On success:
+/// \li the return value of the first operator that returns a positive value
+/// \li zero if all members were processed with no operator returning non-zero
+/// \li On failure:
+/// \li an exception Exception will be thrown if something went
+/// wrong within the library or the operator failed
+///\exception H5::Exception
+///\par Description
+/// For information, please refer to the H5Ovisit2 API in the HDF5
+/// C Reference Manual.
+// Programmer Binh-Minh Ribler - Feb, 2019
+//--------------------------------------------------------------------------
+void H5Object::visit(H5_index_t idx_type, H5_iter_order_t order, visit_operator_t user_op, void *op_data, unsigned int fields)
+{
+ // Store the user's function and data
+ UserData4Visit* userData = new UserData4Visit;
+ userData->opData = op_data;
+ userData->op = user_op;
+ userData->obj = this;
+
+ // Call the C API passing in op wrapper and info
+ herr_t ret_value = H5Ovisit2(getId(), idx_type, order, userVisitOpWrpr, static_cast<void *>(userData), fields);
+
+ // Release memory
+ delete userData;
+
+ // Throw exception if H5Ovisit2 failed, which could be a failure in
+ // the library or in the call back operator
+ if (ret_value < 0)
+ throw Exception(inMemFunc("visit"), "H5Ovisit2 failed");
+}
+
+//--------------------------------------------------------------------------
// Function: H5Object::objVersion
///\brief Returns the header version of this HDF5 object.
///\return Object version, which can have the following values:
diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h
index 10b3865..4a4e909 100644
--- a/c++/src/H5Object.h
+++ b/c++/src/H5Object.h
@@ -40,16 +40,30 @@ namespace H5 {
// Inheritance: H5Location -> IdComponent
// Define the operator function pointer for H5Aiterate().
-typedef void (*attr_operator_t)(H5Object& loc/*in*/,
- const H5std_string attr_name/*in*/,
- void *operator_data/*in,out*/);
+typedef void (*attr_operator_t)(H5Object& loc,
+ const H5std_string attr_name,
+ void *operator_data);
+
+// Define the operator function pointer for H5Ovisit2().
+typedef int (*visit_operator_t)(H5Object& obj,
+ const H5std_string attr_name,
+ const H5O_info_t *oinfo,
+ void *operator_data);
// User data for attribute iteration
class UserData4Aiterate {
public:
attr_operator_t op;
void* opData;
- H5Object* location;
+ H5Object* location; // Consider changing to H5Location
+};
+
+// User data for visit iteration
+class UserData4Visit {
+ public:
+ visit_operator_t op;
+ void* opData;
+ H5Object* obj;
};
class H5_DLLCPP H5Object : public H5Location {
@@ -71,6 +85,9 @@ class H5_DLLCPP H5Object : public H5Location {
// Iterate user's function over the attributes of this object.
int iterateAttrs(attr_operator_t user_op, unsigned* idx = NULL, void* op_data = NULL);
+ // Recursively visit elements reachable from this object.
+ void visit(H5_index_t idx_type, H5_iter_order_t order, visit_operator_t user_op, void *op_data, unsigned int fields);
+
// Returns the object header version of an object
unsigned objVersion() const;
@@ -98,6 +115,7 @@ class H5_DLLCPP H5Object : public H5Location {
ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
H5std_string getObjName() const;
+
#ifndef DOXYGEN_SHOULD_SKIP_THIS
protected:
diff --git a/c++/src/cpp_doc_config b/c++/src/cpp_doc_config
index 697fb77..14ca90c 100644
--- a/c++/src/cpp_doc_config
+++ b/c++/src/cpp_doc_config
@@ -38,7 +38,7 @@ PROJECT_NAME =
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = "1.11.4"
+PROJECT_NUMBER = "1.11.6"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt
index 8e2d685..95ca9b1 100644
--- a/c++/test/CMakeLists.txt
+++ b/c++/test/CMakeLists.txt
@@ -38,16 +38,17 @@ set (srcdir ${CMAKE_CURRENT_SOURCE_DIR})
configure_file (${HDF5_CPP_TEST_SOURCE_DIR}/H5srcdir_str.h.in H5srcdir_str.h @ONLY)
add_executable (cpp_testhdf5 ${CPP_TEST_SOURCES} )
-target_include_directories(cpp_testhdf5 PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};${HDF5_TEST_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_include_directories (cpp_testhdf5 PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};${HDF5_TEST_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
target_compile_definitions(cpp_testhdf5
PRIVATE $<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPICH_SKIP_MPICXX;MPICH_IGNORE_CXX_SEEK># Parallel/MPI, prevent spurious cpp/cxx warnings
)
-TARGET_C_PROPERTIES (cpp_testhdf5 STATIC)
-target_link_libraries (cpp_testhdf5 PRIVATE
- ${HDF5_CPP_LIB_TARGET}
- ${HDF5_LIB_TARGET}
- ${HDF5_TEST_LIB_TARGET}
-)
+if (NOT BUILD_SHARED_LIBS)
+ TARGET_C_PROPERTIES (cpp_testhdf5 STATIC)
+ target_link_libraries (cpp_testhdf5 PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
+else ()
+ TARGET_C_PROPERTIES (cpp_testhdf5 SHARED)
+ target_link_libraries (cpp_testhdf5 PRIVATE ${HDF5_CPP_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${HDF5_TEST_LIBSH_TARGET})
+endif ()
set_target_properties (cpp_testhdf5 PROPERTIES FOLDER test/cpp)
include (CMakeTests.cmake)
diff --git a/c++/test/tarray.cpp b/c++/test/tarray.cpp
index 6bd4ca6..fccc556 100644
--- a/c++/test/tarray.cpp
+++ b/c++/test/tarray.cpp
@@ -286,7 +286,7 @@ H5::DataType getArr()
*dims = 5;
H5::ArrayType ret;
ret = H5::ArrayType(H5::PredType::NATIVE_INT, 1, dims);
- delete[] dims;
+ delete dims;
return ret;
}
@@ -371,7 +371,6 @@ static void test_array_info()
s1_t rdata[SPACE1_DIM1][ARRAY1_DIM1]; // Information read in
hsize_t sdims1[] = {SPACE1_DIM1};
hsize_t tdims1[] = {ARRAY1_DIM1};
- int nmemb; // Number of compound members
int ii; // counting variables
hsize_t idxi, idxj, idxk; // dimension indicing variables
H5T_class_t mclass; // Datatype class for field
diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp