diff options
Diffstat (limited to 'java')
117 files changed, 3862 insertions, 1655 deletions
diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt index fc057f7..ffc3b94 100644 --- a/java/CMakeLists.txt +++ b/java/CMakeLists.txt @@ -1,8 +1,9 @@ cmake_minimum_required (VERSION 3.10) -PROJECT ( HDF5_JAVA C Java ) +project (HDF5_JAVA C Java) set (CMAKE_MODULE_PATH "${HDF_RESOURCES_DIR};${HDF_RESOURCES_EXT_DIR}") find_package (Java) + #----------------------------------------------------------------------------- # Include some macros for reusable code #----------------------------------------------------------------------------- @@ -13,7 +14,6 @@ find_package (JNI) message ("JNI_LIBRARIES=${JNI_LIBRARIES}") message ("JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}") -INCLUDE_DIRECTORIES ( ${JNI_INCLUDE_DIRS} ) if (WIN32) set (HDF_JRE_DIRECTORY "C:/Program Files/Java/jre8") @@ -25,13 +25,14 @@ endif () # Include the main src and config directories #----------------------------------------------------------------------------- set (HDF5_JAVA_INCLUDE_DIRECTORIES + ${JNI_INCLUDE_DIRS} ${HDF5_JAVA_JNI_SRC_DIR} ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2} ) -INCLUDE_DIRECTORIES (${HDF5_JAVA_INCLUDE_DIRECTORIES}) -set (CMAKE_JAVA_INCLUDE_PATH "") +set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "${HDF5_JAVA_INCLUDE_DIRECTORIES}") +set (CMAKE_JAVA_INCLUDE_PATH "") #----------------------------------------------------------------------------- # Traverse source subdirectory diff --git a/java/Makefile.in b/java/Makefile.in index aed83d1..268b4d1 100644 --- a/java/Makefile.in +++ b/java/Makefile.in @@ -542,6 +542,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -589,6 +590,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ diff --git a/java/examples/CMakeLists.txt b/java/examples/CMakeLists.txt index 3d1e30e..828b96a 100644 --- a/java/examples/CMakeLists.txt +++ b/java/examples/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDFJAVA_EXAMPLES) +project (HDFJAVA_EXAMPLES Java) add_subdirectory (datasets) add_subdirectory (datatypes) diff --git a/java/examples/Makefile.in b/java/examples/Makefile.in index 7b3416e..cbbfded 100644 --- a/java/examples/Makefile.in +++ b/java/examples/Makefile.in @@ -542,6 +542,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -589,6 +590,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ diff --git a/java/examples/datasets/CMakeLists.txt b/java/examples/datasets/CMakeLists.txt index 6a90cd1..1375372 100644 --- a/java/examples/datasets/CMakeLists.txt +++ b/java/examples/datasets/CMakeLists.txt @@ -1,13 +1,8 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDFJAVA_EXAMPLES_DATASETS Java) +project (HDFJAVA_EXAMPLES_DATASETS Java) set (CMAKE_VERBOSE_MAKEFILE 1) -INCLUDE_DIRECTORIES ( - ${HDF5_JAVA_JNI_BINARY_DIR} - ${HDF5_JAVA_HDF5_LIB_DIR} -) - set (HDF_JAVA_EXAMPLES H5Ex_D_Alloc H5Ex_D_Checksum @@ -15,13 +10,9 @@ set (HDF_JAVA_EXAMPLES H5Ex_D_Compact H5Ex_D_External H5Ex_D_FillValue - H5Ex_D_Gzip H5Ex_D_Hyperslab H5Ex_D_ReadWrite - H5Ex_D_Shuffle - H5Ex_D_Szip H5Ex_D_UnlimitedAdd - H5Ex_D_UnlimitedGzip H5Ex_D_UnlimitedMod H5Ex_D_Nbit H5Ex_D_Transform @@ -29,6 +20,25 @@ set (HDF_JAVA_EXAMPLES H5Ex_D_Soint ) +set (HDF_JAVA_ZLIB_EXAMPLES + H5Ex_D_Gzip + H5Ex_D_Shuffle + H5Ex_D_UnlimitedGzip +) + +set (HDF_JAVA_SZIP_EXAMPLES + H5Ex_D_Szip +) + +# detect whether the encoder is present. + if (H5_HAVE_FILTER_DEFLATE) + set (${HDF_JAVA_EXAMPLES} ${HDF_JAVA_EXAMPLES} ${HDF_JAVA_ZLIB_EXAMPLES}) + endif () + + if (H5_HAVE_FILTER_SZIP) + set (${HDF_JAVA_EXAMPLES} ${HDF_JAVA_EXAMPLES} ${HDF_JAVA_SZIP_EXAMPLES}) + endif (H5_HAVE_FILTER_SZIP) + if (WIN32) set (CMAKE_JAVA_INCLUDE_FLAG_SEP ";") else () @@ -85,15 +95,6 @@ ENDMACRO () if (BUILD_TESTING) -# detect whether the encoder is present. - if (H5_HAVE_FILTER_DEFLATE) - set (USE_FILTER_DEFLATE "true") - endif () - - if (H5_HAVE_FILTER_SZIP) - set (USE_FILTER_SZIP "true") - endif (H5_HAVE_FILTER_SZIP) - foreach (example ${HDF_JAVA_EXAMPLES}) if ("${example}" STREQUAL "H5Ex_D_External") add_test ( @@ -123,13 +124,7 @@ if (BUILD_TESTING) ) set_tests_properties (JAVA_datasets-${example}-copy-objects PROPERTIES DEPENDS JAVA_datasets-${example}-clear-objects) set (last_test "JAVA_datasets-${example}-copy-objects") - if ("${example}" STREQUAL "H5Ex_D_Szip") - if (USE_FILTER_SZIP) - ADD_H5_TEST (${example} 0) - endif () - else () - ADD_H5_TEST (${example} 0) - endif () + ADD_H5_TEST (${example} 0) endforeach () endif () diff --git a/java/examples/datasets/JavaDatasetExample.sh.in b/java/examples/datasets/JavaDatasetExample.sh.in index 740b07d..cb16d45 100644 --- a/java/examples/datasets/JavaDatasetExample.sh.in +++ b/java/examples/datasets/JavaDatasetExample.sh.in @@ -52,8 +52,8 @@ test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR # Comment '#' without space can be used. # -------------------------------------------------------------------- LIST_LIBRARY_FILES=" -$HDFLIB_HOME/slf4j-api-1.7.5.jar -$HDFLIB_HOME/ext/slf4j-simple-1.7.5.jar +$HDFLIB_HOME/slf4j-api-1.7.25.jar +$HDFLIB_HOME/ext/slf4j-simple-1.7.25.jar $top_builddir/src/.libs/libhdf5.* $top_builddir/java/src/jni/.libs/libhdf5_java.* $top_builddir/java/src/$JARFILE @@ -117,7 +117,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR() # skip rm if srcdir is same as destdir # this occurs when build/test performed in source dir and # make cp fail - SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar` + SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.25.jar` INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'` INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'` if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then @@ -183,7 +183,7 @@ JAVAEXEFLAGS=@H5_JAVAFLAGS@ COPY_LIBFILES_TO_BLDLIBDIR COPY_DATAFILES_TO_BLDDIR -CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.5.jar:"$BLDLIBDIR"/slf4j-simple-1.7.5.jar:"$TESTJARFILE"" +CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.25.jar:"$BLDLIBDIR"/slf4j-simple-1.7.25.jar:"$TESTJARFILE"" TEST=/usr/bin/test if [ ! -x /usr/bin/test ] diff --git a/java/examples/datasets/Makefile.am b/java/examples/datasets/Makefile.am index ddd6d39..b442603 100644 --- a/java/examples/datasets/Makefile.am +++ b/java/examples/datasets/Makefile.am @@ -28,7 +28,7 @@ classes: pkgpath = examples/datasets hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)datasets.jar diff --git a/java/examples/datasets/Makefile.in b/java/examples/datasets/Makefile.in index 052d6e2..4bd266c 100644 --- a/java/examples/datasets/Makefile.in +++ b/java/examples/datasets/Makefile.in @@ -482,6 +482,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -529,6 +530,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -680,7 +682,7 @@ JAVA_API = yes JAVAROOT = .classes pkgpath = examples/datasets hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)datasets.jar TESTPACKAGE = noinst_JAVA = \ diff --git a/java/examples/datatypes/CMakeLists.txt b/java/examples/datatypes/CMakeLists.txt index 73111ed..4a8b2a4 100644 --- a/java/examples/datatypes/CMakeLists.txt +++ b/java/examples/datatypes/CMakeLists.txt @@ -1,13 +1,8 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDFJAVA_EXAMPLES_DATATYPES Java) +project (HDFJAVA_EXAMPLES_DATATYPES Java) set (CMAKE_VERBOSE_MAKEFILE 1) -INCLUDE_DIRECTORIES ( - ${HDF5_JAVA_JNI_BINARY_DIR} - ${HDF5_JAVA_HDF5_LIB_DIR} -) - set (HDF_JAVA_EXAMPLES H5Ex_T_Array H5Ex_T_ArrayAttribute diff --git a/java/examples/datatypes/JavaDatatypeExample.sh.in b/java/examples/datatypes/JavaDatatypeExample.sh.in index 590a547..033442a 100644 --- a/java/examples/datatypes/JavaDatatypeExample.sh.in +++ b/java/examples/datatypes/JavaDatatypeExample.sh.in @@ -49,8 +49,8 @@ test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR # Comment '#' without space can be used. # -------------------------------------------------------------------- LIST_LIBRARY_FILES=" -$HDFLIB_HOME/slf4j-api-1.7.5.jar -$HDFLIB_HOME/ext/slf4j-simple-1.7.5.jar +$HDFLIB_HOME/slf4j-api-1.7.25.jar +$HDFLIB_HOME/ext/slf4j-simple-1.7.25.jar $top_builddir/src/.libs/libhdf5.* $top_builddir/java/src/jni/.libs/libhdf5_java.* $top_builddir/java/src/$JARFILE @@ -114,7 +114,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR() # skip rm if srcdir is same as destdir # this occurs when build/test performed in source dir and # make cp fail - SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar` + SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.25.jar` INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'` INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'` if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then @@ -179,7 +179,7 @@ JAVAEXEFLAGS=@H5_JAVAFLAGS@ COPY_LIBFILES_TO_BLDLIBDIR COPY_DATAFILES_TO_BLDDIR -CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.5.jar:"$BLDLIBDIR"/slf4j-simple-1.7.5.jar:"$TESTJARFILE"" +CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.25.jar:"$BLDLIBDIR"/slf4j-simple-1.7.25.jar:"$TESTJARFILE"" TEST=/usr/bin/test if [ ! -x /usr/bin/test ] diff --git a/java/examples/datatypes/Makefile.am b/java/examples/datatypes/Makefile.am index f6e58f1..5e0e971 100644 --- a/java/examples/datatypes/Makefile.am +++ b/java/examples/datatypes/Makefile.am @@ -28,7 +28,7 @@ classes: pkgpath = examples/datatypes hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)datatypes.jar diff --git a/java/examples/datatypes/Makefile.in b/java/examples/datatypes/Makefile.in index f86724a..1db68a7 100644 --- a/java/examples/datatypes/Makefile.in +++ b/java/examples/datatypes/Makefile.in @@ -482,6 +482,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -529,6 +530,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -680,7 +682,7 @@ JAVA_API = yes JAVAROOT = .classes pkgpath = examples/datatypes hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)datatypes.jar TESTPACKAGE = noinst_JAVA = \ diff --git a/java/examples/groups/CMakeLists.txt b/java/examples/groups/CMakeLists.txt index 6b55359..2c5d33b 100644 --- a/java/examples/groups/CMakeLists.txt +++ b/java/examples/groups/CMakeLists.txt @@ -1,13 +1,8 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDFJAVA_EXAMPLES_GROUPS Java) +project (HDFJAVA_EXAMPLES_GROUPS Java) set (CMAKE_VERBOSE_MAKEFILE 1) -INCLUDE_DIRECTORIES ( - ${HDF5_JAVA_JNI_BINARY_DIR} - ${HDF5_JAVA_HDF5_LIB_DIR} -) - set (HDF_JAVA_EXAMPLES H5Ex_G_Create H5Ex_G_Iterate diff --git a/java/examples/groups/JavaGroupExample.sh.in b/java/examples/groups/JavaGroupExample.sh.in index 53c0045..36df02e 100644 --- a/java/examples/groups/JavaGroupExample.sh.in +++ b/java/examples/groups/JavaGroupExample.sh.in @@ -51,8 +51,8 @@ test -d $BLDREFDIR || mkdir -p $BLDREFDIR # Comment '#' without space can be used. # -------------------------------------------------------------------- LIST_LIBRARY_FILES=" -$HDFLIB_HOME/slf4j-api-1.7.5.jar -$HDFLIB_HOME/ext/slf4j-simple-1.7.5.jar +$HDFLIB_HOME/slf4j-api-1.7.25.jar +$HDFLIB_HOME/ext/slf4j-simple-1.7.25.jar $top_builddir/src/.libs/libhdf5.* $top_builddir/java/src/jni/.libs/libhdf5_java.* $top_builddir/java/src/$JARFILE @@ -109,7 +109,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR() # skip rm if srcdir is same as destdir # this occurs when build/test performed in source dir and # make cp fail - SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar` + SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.25.jar` INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'` INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'` if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then @@ -225,7 +225,7 @@ COPY_LIBFILES_TO_BLDLIBDIR COPY_DATAFILES_TO_BLDDIR COPY_REFFILES_TO_BLDREFDIR -CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.5.jar:"$BLDLIBDIR"/slf4j-simple-1.7.5.jar:"$TESTJARFILE"" +CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.25.jar:"$BLDLIBDIR"/slf4j-simple-1.7.25.jar:"$TESTJARFILE"" TEST=/usr/bin/test if [ ! -x /usr/bin/test ] diff --git a/java/examples/groups/Makefile.am b/java/examples/groups/Makefile.am index 4da17f9..09df743 100644 --- a/java/examples/groups/Makefile.am +++ b/java/examples/groups/Makefile.am @@ -28,7 +28,7 @@ classes: pkgpath = examples/groups hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)groups.jar diff --git a/java/examples/groups/Makefile.in b/java/examples/groups/Makefile.in index 6f6a9be..53027b7 100644 --- a/java/examples/groups/Makefile.in +++ b/java/examples/groups/Makefile.in @@ -482,6 +482,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -529,6 +530,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -680,7 +682,7 @@ JAVA_API = yes JAVAROOT = .classes pkgpath = examples/groups hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)groups.jar TESTPACKAGE = noinst_JAVA = \ diff --git a/java/examples/intro/CMakeLists.txt b/java/examples/intro/CMakeLists.txt index 65db3fe..8d56b86 100644 --- a/java/examples/intro/CMakeLists.txt +++ b/java/examples/intro/CMakeLists.txt @@ -1,13 +1,8 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDFJAVA_EXAMPLES_INTRO Java) +project (HDFJAVA_EXAMPLES_INTRO Java) set (CMAKE_VERBOSE_MAKEFILE 1) -INCLUDE_DIRECTORIES ( - ${HDF5_JAVA_JNI_BINARY_DIR} - ${HDF5_JAVA_HDF5_LIB_DIR} -) - set (HDF_JAVA_EXAMPLES H5_CreateAttribute H5_CreateDataset diff --git a/java/examples/intro/JavaIntroExample.sh.in b/java/examples/intro/JavaIntroExample.sh.in index 3c3036a..077146d 100644 --- a/java/examples/intro/JavaIntroExample.sh.in +++ b/java/examples/intro/JavaIntroExample.sh.in @@ -49,8 +49,8 @@ test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR # Comment '#' without space can be used. # -------------------------------------------------------------------- LIST_LIBRARY_FILES=" -$HDFLIB_HOME/slf4j-api-1.7.5.jar -$HDFLIB_HOME/ext/slf4j-simple-1.7.5.jar +$HDFLIB_HOME/slf4j-api-1.7.25.jar +$HDFLIB_HOME/ext/slf4j-simple-1.7.25.jar $top_builddir/src/.libs/libhdf5.* $top_builddir/java/src/jni/.libs/libhdf5_java.* $top_builddir/java/src/$JARFILE @@ -103,7 +103,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR() # skip rm if srcdir is same as destdir # this occurs when build/test performed in source dir and # make cp fail - SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar` + SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.25.jar` INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'` INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'` if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then @@ -168,7 +168,7 @@ JAVAEXEFLAGS=@H5_JAVAFLAGS@ COPY_LIBFILES_TO_BLDLIBDIR COPY_DATAFILES_TO_BLDDIR -CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.5.jar:"$BLDLIBDIR"/slf4j-simple-1.7.5.jar:"$TESTJARFILE"" +CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/slf4j-api-1.7.25.jar:"$BLDLIBDIR"/slf4j-simple-1.7.25.jar:"$TESTJARFILE"" TEST=/usr/bin/test if [ ! -x /usr/bin/test ] diff --git a/java/examples/intro/Makefile.am b/java/examples/intro/Makefile.am index 0df08cb..33f44c2 100644 --- a/java/examples/intro/Makefile.am +++ b/java/examples/intro/Makefile.am @@ -28,7 +28,7 @@ classes: pkgpath = examples/intro hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)intro.jar diff --git a/java/examples/intro/Makefile.in b/java/examples/intro/Makefile.in index 28b89a5..52f937a 100644 --- a/java/examples/intro/Makefile.in +++ b/java/examples/intro/Makefile.in @@ -482,6 +482,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -529,6 +530,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -680,7 +682,7 @@ JAVA_API = yes JAVAROOT = .classes pkgpath = examples/intro hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)intro.jar TESTPACKAGE = noinst_JAVA = \ diff --git a/java/lib/ext/slf4j-nop-1.7.25.jar b/java/lib/ext/slf4j-nop-1.7.25.jar Binary files differnew file mode 100644 index 0000000..78c7295 --- /dev/null +++ b/java/lib/ext/slf4j-nop-1.7.25.jar diff --git a/java/lib/ext/slf4j-nop-1.7.5.jar b/java/lib/ext/slf4j-nop-1.7.5.jar Binary files differdeleted file mode 100644 index e55bdd8..0000000 --- a/java/lib/ext/slf4j-nop-1.7.5.jar +++ /dev/null diff --git a/java/lib/ext/slf4j-simple-1.7.25.jar b/java/lib/ext/slf4j-simple-1.7.25.jar Binary files differnew file mode 100644 index 0000000..b29ca12 --- /dev/null +++ b/java/lib/ext/slf4j-simple-1.7.25.jar diff --git a/java/lib/ext/slf4j-simple-1.7.5.jar b/java/lib/ext/slf4j-simple-1.7.5.jar Binary files differdeleted file mode 100644 index 9dece31..0000000 --- a/java/lib/ext/slf4j-simple-1.7.5.jar +++ /dev/null diff --git a/java/lib/slf4j-api-1.7.25.jar b/java/lib/slf4j-api-1.7.25.jar Binary files differnew file mode 100644 index 0000000..7e62f13 --- /dev/null +++ b/java/lib/slf4j-api-1.7.25.jar diff --git a/java/lib/slf4j-api-1.7.5.jar b/java/lib/slf4j-api-1.7.5.jar Binary files differdeleted file mode 100644 index 8766455..0000000 --- a/java/lib/slf4j-api-1.7.5.jar +++ /dev/null diff --git a/java/src/CMakeLists.txt b/java/src/CMakeLists.txt index 0c00923..3f80d8f 100644 --- a/java/src/CMakeLists.txt +++ b/java/src/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 3.10) -PROJECT ( HDF5_JAVA_SRC C Java ) +project (HDF5_JAVA_SRC C) #----------------------------------------------------------------------------- # Traverse source subdirectory diff --git a/java/src/Makefile.am b/java/src/Makefile.am index 64eef0c..bd55c39 100644 --- a/java/src/Makefile.am +++ b/java/src/Makefile.am @@ -37,7 +37,7 @@ jarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar hdf5_javadir = $(libdir) pkgpath = hdf/hdf5lib -CLASSPATH_ENV=CLASSPATH=.:$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV=CLASSPATH=.:$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$$CLASSPATH AM_JAVACFLAGS = $(H5_JAVACFLAGS) -deprecation diff --git a/java/src/Makefile.in b/java/src/Makefile.in index 3f165ec..1523e8a 100644 --- a/java/src/Makefile.in +++ b/java/src/Makefile.in @@ -373,6 +373,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -420,6 +421,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -573,7 +575,7 @@ JAVAROOT = .classes jarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar hdf5_javadir = $(libdir) pkgpath = hdf/hdf5lib -CLASSPATH_ENV = CLASSPATH=.:$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$$CLASSPATH +CLASSPATH_ENV = CLASSPATH=.:$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$$CLASSPATH hdf5_java_JAVA = \ ${pkgpath}/callbacks/Callbacks.java \ ${pkgpath}/callbacks/H5A_iterate_cb.java \ diff --git a/java/src/hdf/CMakeLists.txt b/java/src/hdf/CMakeLists.txt index ecff984..161ddf1 100644 --- a/java/src/hdf/CMakeLists.txt +++ b/java/src/hdf/CMakeLists.txt @@ -1,4 +1,4 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDF5_JAVA_HDF) +project (HDF5_JAVA_HDF C) add_subdirectory (hdf5lib) diff --git a/java/src/hdf/hdf5lib/CMakeLists.txt b/java/src/hdf/hdf5lib/CMakeLists.txt index 9506fc1..c171ea8 100644 --- a/java/src/hdf/hdf5lib/CMakeLists.txt +++ b/java/src/hdf/hdf5lib/CMakeLists.txt @@ -1,14 +1,9 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDF5_JAVA_HDF_HDF5 Java) +project (HDF5_JAVA_HDF_HDF5 Java) set (CMAKE_VERBOSE_MAKEFILE 1) -INCLUDE_DIRECTORIES ( - ${HDF5_JAVA_HDF_HDF5_SOURCE_DIR} - ${HDF5_JAVA_HDF_HDF5_BINARY_DIR} - ${HDF5_JAVA_LIB_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${HDF5_JAVA_HDF5_LIB_CORENAME}.dir/hdf/hdf5lib -) +set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "${HDF5_JAVA_HDF_HDF5_SOURCE_DIR};${HDF5_JAVA_HDF_HDF5_BINARY_DIR};${HDF5_JAVA_LIB_DIR};${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${HDF5_JAVA_HDF5_LIB_CORENAME}.dir/hdf/hdf5lib") SET_GLOBAL_VARIABLE (HDF5_JAVA_SOURCE_PACKAGES "${HDF5_JAVA_SOURCE_PACKAGES};hdf.hdf5lib.callbacks;hdf.hdf5lib.exceptions;hdf.hdf5lib.structs;hdf.hdf5lib" diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java index 7c1ff5b..9c62538 100644 --- a/java/src/hdf/hdf5lib/H5.java +++ b/java/src/hdf/hdf5lib/H5.java @@ -214,7 +214,7 @@ import hdf.hdf5lib.structs.H5O_info_t; * exception handlers to print out the HDF-5 error stack. * <hr> * - * @version HDF5 1.10.2 <BR> + * @version HDF5 1.10.3 <BR> * <b>See also: <a href ="./hdf.hdf5lib.HDFArray.html"> hdf.hdf5lib.HDFArray</a> </b><BR> * <a href ="./hdf.hdf5lib.HDF5Constants.html"> hdf.hdf5lib.HDF5Constants</a><BR> * <a href ="./hdf.hdf5lib.HDF5CDataTypes.html"> hdf.hdf5lib.HDF5CDataTypes</a><BR> @@ -237,7 +237,7 @@ public class H5 implements java.io.Serializable { * * Make sure to update the versions number when a different library is used. */ - public final static int LIB_VERSION[] = { 1, 10, 2 }; + public final static int LIB_VERSION[] = { 1, 10, 3 }; public final static String H5PATH_PROPERTY_KEY = "hdf.hdf5lib.H5.hdf5lib"; @@ -1276,6 +1276,38 @@ public class H5 implements java.io.Serializable { // //////////////////////////////////////////////////////////// // // + // H5AC: Cache Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // + // H5B: B-link-tree Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // + // H5B2: v2 B-tree Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // + // H5C: Cache Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // // H5D: Datasets Interface Functions // // // // //////////////////////////////////////////////////////////// @@ -1714,20 +1746,15 @@ public class H5 implements java.io.Serializable { status = H5Dread_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (double[]) obj, isCriticalPinning); } - else if (H5.H5Tequal(mem_type_id, HDF5Constants.H5T_STD_REF_DSETREG)) { + else if ((H5.H5Tdetect_class(mem_type_id, HDF5Constants.H5T_REFERENCE) && (is1D && (dataClass.getComponentType() == String.class))) || H5.H5Tequal(mem_type_id, HDF5Constants.H5T_STD_REF_DSETREG)) { log.trace("H5Dread_reg_ref"); status = H5Dread_reg_ref(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (String[]) obj); } else if (is1D && (dataClass.getComponentType() == String.class)) { log.trace("H5Dread_string type"); - if (H5.H5Tis_variable_str(mem_type_id)) { - status = H5Dread_VLStrings(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (Object[]) obj); - } - else { - status = H5Dread_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, + status = H5Dread_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (String[]) obj); - } } else { // Create a data buffer to hold the data into a Java Array @@ -1947,7 +1974,7 @@ public class H5 implements java.io.Serializable { Class dataClass = obj.getClass(); if (!dataClass.isArray()) { - throw (new HDF5JavaException("H5Dread: data is not an array")); + throw (new HDF5JavaException("H5Dwrite: data is not an array")); } String cname = dataClass.getName(); @@ -1980,13 +2007,8 @@ public class H5 implements java.io.Serializable { } else if (is1D && (dataClass.getComponentType() == String.class)) { log.trace("H5Dwrite_string type"); - if (H5.H5Tis_variable_str(mem_type_id)) { - status = H5Dwrite_VLStrings(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (Object[]) obj); - } - else { - status = H5Dwrite_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, + status = H5Dwrite_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (String[]) obj); - } } else { HDFArray theArray = new HDFArray(obj); @@ -2052,6 +2074,9 @@ public class H5 implements java.io.Serializable { public synchronized static native int H5Dwrite_string(long dataset_id, long mem_type_id, long mem_space_id, long file_space_id, long xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException; + public synchronized static native int H5DwriteVL(long dataset_id, long mem_type_id, long mem_space_id, + long file_space_id, long xfer_plist_id, Object[] buf) throws HDF5LibraryException, NullPointerException; + /** * H5Dwrite_VLStrings writes a (partial) variable length String dataset, specified by its identifier dataset_id, from * the application memory buffer buf into the file. @@ -2109,6 +2134,10 @@ public class H5 implements java.io.Serializable { // /////// unimplemented //////// // H5_DLL herr_t H5Ddebug(hid_t dset_id); + // H5_DLL herr_t H5Dget_chunk_storage_size(hid_t dset_id, const hsize_t *offset, hsize_t *chunk_bytes); + // H5_DLL herr_t H5Dformat_convert(hid_t dset_id); + // H5_DLL herr_t H5Dget_chunk_index_type(hid_t did, H5D_chunk_index_t *idx_type); + // herr_t H5Dgather(hid_t src_space_id, const void *src_buf, hid_t type_id, // size_t dst_buf_size, void *dst_buf, H5D_gather_func_t op, void *op_data); // herr_t H5Dscatter(H5D_scatter_func_t op, void *op_data, hid_t type_id, hid_t dst_space_id, void *dst_buf); @@ -2912,12 +2941,22 @@ public class H5 implements java.io.Serializable { public synchronized static native void H5Fget_mdc_logging_status(long file_id, boolean[] mdc_logging_status) throws HDF5LibraryException, NullPointerException; - - // /////// unimplemented //////// + // H5_DLL herr_t H5Fget_eoa(hid_t file_id, haddr_t *eoa); + // H5_DLL herr_t H5Fincrement_filesize(hid_t file_id, hsize_t increment); // ssize_t H5Fget_file_image(hid_t file_id, void * buf_ptr, size_t buf_len); // herr_t H5Fget_metadata_read_retry_info(hid_t file_id, H5F_retry_info_t *info); // ssize_t H5Fget_free_sections(hid_t file_id, H5F_mem_t type, size_t nsects, H5F_sect_info_t *sect_info/*out*/); + // H5_DLL herr_t H5Fset_libver_bounds(hid_t file_id, H5F_libver_t low, H5F_libver_t high); + // H5_DLL herr_t H5Fformat_convert(hid_t fid); + // H5_DLL herr_t H5Freset_page_buffering_stats(hid_t file_id); + // H5_DLL herr_t H5Fget_page_buffering_stats(hid_t file_id, unsigned accesses[2], + // unsigned hits[2], unsigned misses[2], unsigned evictions[2], unsigned bypasses[2]); + // H5_DLL herr_t H5Fget_mdc_image_info(hid_t file_id, haddr_t *image_addr, hsize_t *image_size); + // #ifdef H5_HAVE_PARALLEL + // H5_DLL herr_t H5Fset_mpi_atomicity(hid_t file_id, hbool_t flag); + // H5_DLL herr_t H5Fget_mpi_atomicity(hid_t file_id, hbool_t *flag); + // #endif /* H5_HAVE_PARALLEL */ // /** // * H5Fget_vfd_handle returns a pointer to the file handle from the @@ -2971,6 +3010,41 @@ public class H5 implements java.io.Serializable { // //////////////////////////////////////////////////////////// // // + // H5FD: File Driver Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // /////// unimplemented //////// + // H5_DLL hid_t H5FDregister(const H5FD_class_t *cls); + // H5_DLL herr_t H5FDunregister(hid_t driver_id); + // H5_DLL H5FD_t *H5FDopen(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr); + // H5_DLL herr_t H5FDclose(H5FD_t *file); + // H5_DLL int H5FDcmp(const H5FD_t *f1, const H5FD_t *f2); + // H5_DLL int H5FDquery(const H5FD_t *f, unsigned long *flags); + // H5_DLL haddr_t H5FDalloc(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size); + // H5_DLL herr_t H5FDfree(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size); + // H5_DLL haddr_t H5FDget_eoa(H5FD_t *file, H5FD_mem_t type); + // H5_DLL herr_t H5FDset_eoa(H5FD_t *file, H5FD_mem_t type, haddr_t eoa); + // H5_DLL haddr_t H5FDget_eof(H5FD_t *file, H5FD_mem_t type); + // H5_DLL herr_t H5FDget_vfd_handle(H5FD_t *file, hid_t fapl, void**file_handle); + // H5_DLL herr_t H5FDread(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, size_t size, void *buf/*out*/); + // H5_DLL herr_t H5FDwrite(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, size_t size, const void *buf); + // H5_DLL herr_t H5FDflush(H5FD_t *file, hid_t dxpl_id, hbool_t closing); + // H5_DLL herr_t H5FDtruncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing); + // H5_DLL herr_t H5FDlock(H5FD_t *file, hbool_t rw); + // H5_DLL herr_t H5FDunlock(H5FD_t *file); + // H5_DLL herr_t H5FDdriver_query(hid_t driver_id, unsigned long *flags/*out*/); + + // //////////////////////////////////////////////////////////// + // // + // H5FS: File Free Space Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // // H5G: Group Interface Functions // // // // //////////////////////////////////////////////////////////// @@ -3408,6 +3482,30 @@ public class H5 implements java.io.Serializable { // //////////////////////////////////////////////////////////// // // + // H5HF: Fractal Heap Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // + // H5HG: Global Heap Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // + // H5HL: Local Heap Interface Functions // + // // + // //////////////////////////////////////////////////////////// + + // No public Functions + + // //////////////////////////////////////////////////////////// + // // // H5I: HDF5 1.8 Identifier Interface API Functions // // // // //////////////////////////////////////////////////////////// @@ -4033,6 +4131,15 @@ public class H5 implements java.io.Serializable { // H5_index_t idx_type, H5_iter_order_t order, hsize_t n, // void *buf/*out*/, size_t size, hid_t lapl_id); + // //////////////////////////////////////////////////////////// + // // + // H5MM: Memory Management Interface API Functions // + // // + // //////////////////////////////////////////////////////////// + + // /////// unimplemented //////// + // typedef void *(*H5MM_allocate_t)(size_t size, void *alloc_info); + // typedef void (*H5MM_free_t)(void *mem, void *free_info); // //////////////////////////////////////////////////////////// // // @@ -4173,7 +4280,27 @@ public class H5 implements java.io.Serializable { * @exception NullPointerException * - name is null. **/ - public synchronized static native H5O_info_t H5Oget_info(long loc_id) throws HDF5LibraryException, + public static H5O_info_t H5Oget_info(long loc_id) throws HDF5LibraryException, + NullPointerException { + return H5Oget_info(loc_id, HDF5Constants.H5O_INFO_ALL); + } + + /** + * H5Oget_info retrieves the metadata for an object specified by an identifier. + * + * @param loc_id + * IN: Identifier for target object + * @param fields + * IN: Object fields to select + * + * @return object information + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + * @exception NullPointerException + * - name is null. + **/ + public synchronized static native H5O_info_t H5Oget_info(long loc_id, int fields) throws HDF5LibraryException, NullPointerException; /** @@ -4200,8 +4327,39 @@ public class H5 implements java.io.Serializable { * @exception NullPointerException * - name is null. **/ + public static H5O_info_t H5Oget_info_by_idx(long loc_id, String group_name, int idx_type, + int order, long n, long lapl_id) throws HDF5LibraryException, NullPointerException { + return H5Oget_info_by_idx(loc_id, group_name, idx_type, order, n, HDF5Constants.H5O_INFO_ALL, lapl_id); + } + + /** + * H5Oget_info_by_idx retrieves the metadata for an object, identifying the object by an index position. + * + * @param loc_id + * IN: File or group identifier + * @param group_name + * IN: Name of group, relative to loc_id, in which object is located + * @param idx_type + * IN: Type of index by which objects are ordered + * @param order + * IN: Order of iteration within index + * @param n + * IN: Object to open + * @param fields + * IN: Object fields to select + * @param lapl_id + * IN: Access property list identifier for the link pointing to the object (Not currently used; pass as + * H5P_DEFAULT.) + * + * @return object information + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + * @exception NullPointerException + * - name is null. + **/ public synchronized static native H5O_info_t H5Oget_info_by_idx(long loc_id, String group_name, int idx_type, - int order, long n, long lapl_id) throws HDF5LibraryException, NullPointerException; + int order, long n, int fields, long lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Oget_info_by_name retrieves the metadata for an object, identifying the object by location and relative name. @@ -4221,7 +4379,32 @@ public class H5 implements java.io.Serializable { * @exception NullPointerException * - name is null. **/ - public synchronized static native H5O_info_t H5Oget_info_by_name(long loc_id, String name, long lapl_id) + public static H5O_info_t H5Oget_info_by_name(long loc_id, String name, long lapl_id) + throws HDF5LibraryException, NullPointerException { + return H5Oget_info_by_name(loc_id, name, HDF5Constants.H5O_INFO_ALL, lapl_id); + } + + /** + * H5Oget_info_by_name retrieves the metadata for an object, identifying the object by location and relative name. + * + * @param loc_id + * IN: File or group identifier specifying location of group in which object is located + * @param name + * IN: Relative name of group + * @param fields + * IN: Object fields to select + * @param lapl_id + * IN: Access property list identifier for the link pointing to the object (Not currently used; pass as + * H5P_DEFAULT.) + * + * @return object information + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + * @exception NullPointerException + * - name is null. + **/ + public synchronized static native H5O_info_t H5Oget_info_by_name(long loc_id, String name, int fields, long lapl_id) throws HDF5LibraryException, NullPointerException; /** @@ -4298,8 +4481,37 @@ public class H5 implements java.io.Serializable { * @exception NullPointerException * - name is null. **/ + public static int H5Ovisit(long obj_id, int idx_type, int order, H5O_iterate_cb op, H5O_iterate_t op_data) + throws HDF5LibraryException, NullPointerException { + return H5Ovisit(obj_id, idx_type, order, op, op_data, HDF5Constants.H5O_INFO_ALL); + } + + /** + * H5Ovisit recursively visits all objects accessible from a specified object. + * + * @param obj_id + * IN: Identifier of the object at which the recursive iteration begins. + * @param idx_type + * IN: Type of index + * @param order + * IN: Order of iteration within index + * @param 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: Object fields to select + * + * @return returns the return value of the first operator that returns a positive value, or zero if all members were + * processed with no operator returning non-zero. + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + * @exception NullPointerException + * - name is null. + **/ public synchronized static native int H5Ovisit(long obj_id, int idx_type, int order, H5O_iterate_cb op, - H5O_iterate_t op_data) throws HDF5LibraryException, NullPointerException; + H5O_iterate_t op_data, int fields) throws HDF5LibraryException, NullPointerException; /** * H5Ovisit_by_name recursively visits all objects starting from a specified object. @@ -4327,8 +4539,41 @@ public class H5 implements java.io.Serializable { * @exception NullPointerException * - name is null. **/ + public static int H5Ovisit_by_name(long loc_id, String obj_name, int idx_type, int order, + H5O_iterate_cb op, H5O_iterate_t op_data, long lapl_id) throws HDF5LibraryException, NullPointerException { + return H5Ovisit_by_name(loc_id, obj_name, idx_type, order, op, op_data, HDF5Constants.H5O_INFO_ALL, lapl_id); + } + + /** + * H5Ovisit_by_name recursively visits all objects starting from a specified object. + * + * @param loc_id + * IN: File or group identifier + * @param obj_name + * IN: Relative path to the object + * @param idx_type + * IN: Type of index + * @param order + * IN: Order of iteration within index + * @param 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: Object fields to select + * @param lapl_id + * IN: Link access property list identifier + * + * @return returns the return value of the first operator that returns a positive value, or zero if all members were + * processed with no operator returning non-zero. + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + * @exception NullPointerException + * - name is null. + **/ public synchronized static native int H5Ovisit_by_name(long loc_id, String obj_name, int idx_type, int order, - H5O_iterate_cb op, H5O_iterate_t op_data, long lapl_id) throws HDF5LibraryException, NullPointerException; + H5O_iterate_cb op, H5O_iterate_t op_data, int fields, long lapl_id) throws HDF5LibraryException, NullPointerException; /** @@ -4450,6 +4695,9 @@ public class H5 implements java.io.Serializable { public synchronized static native void H5Orefresh(long object_id) throws HDF5LibraryException; // /////// unimplemented //////// + // H5_DLL herr_t H5Odisable_mdc_flushes(hid_t object_id); + // H5_DLL herr_t H5Oenable_mdc_flushes(hid_t object_id); + // H5_DLL herr_t H5Oare_mdc_flushes_disabled(hid_t object_id, hbool_t *are_disabled); // //////////////////////////////////////////////////////////// // // @@ -7273,9 +7521,15 @@ public class H5 implements java.io.Serializable { // herr_t H5Pset_file_image_callbacks(hid_t fapl_id, H5FD_file_image_callbacks_t *callbacks_ptr); // herr_t H5Pset_core_write_tracking(hid_t fapl_id, hbool_t is_enabled, size_t page_size); // herr_t H5Pget_core_write_tracking(hid_t fapl_id, hbool_t *is_enabled, size_t *page_size); + // #ifdef H5_HAVE_PARALLEL // herr_t H5Pset_all_coll_metadata_ops(hid_t accpl_id, hbool_t is_collective); + // H5_DLL herr_t H5Pget_all_coll_metadata_ops(hid_t plist_id, hbool_t *is_collective); // herr_t H5Pset_coll_metadata_write(hid_t fapl_id, hbool_t is_collective); // herr_t H5Pget_coll_metadata_write(hid_t fapl_id, hbool_t *is_collective); + // #endif /* H5_HAVE_PARALLEL */ + // H5_DLL herr_t H5Pset_mdc_image_config(hid_t plist_id, H5AC_cache_image_config_t *config_ptr); + // H5_DLL herr_t H5Pget_mdc_image_config(hid_t plist_id, H5AC_cache_image_config_t *config_ptr /*out*/); + // H5_DLL herr_t H5Pset_page_buffer_size(hid_t plist_id, size_t buf_size, unsigned min_meta_per, unsigned min_raw_per); // herr_t H5Pget_page_buffer_size(hid_t fapl_id, size_t *buf_size, unsigned *min_meta_perc, unsigned *min_raw_perc); // herr_t H5Pset_object_flush_cb (hid_t fapl_id, H5F_flush_cb_t func, void *user_data); // herr_t H5Pget_object_flush_cb (hid_t fapl_id, H5F_flush_cb_t *func, void **user_data); @@ -7297,6 +7551,11 @@ public class H5 implements java.io.Serializable { // *free_info ) // herr_t H5Pget_type_conv_cb(hid_t plist, H5T_conv_except_func_t *func, void **op_data) // herr_t H5Pset_type_conv_cb( hid_t plist, H5T_conv_except_func_t func, void *op_data) + // #ifdef H5_HAVE_PARALLEL + // H5_DLL herr_t H5Pget_mpio_actual_chunk_opt_mode(hid_t plist_id, H5D_mpio_actual_chunk_opt_mode_t *actual_chunk_opt_mode); + // H5_DLL herr_t H5Pget_mpio_actual_io_mode(hid_t plist_id, H5D_mpio_actual_io_mode_t *actual_io_mode); + // H5_DLL herr_t H5Pget_mpio_no_collective_cause(hid_t plist_id, uint32_t *local_no_collective_cause, uint32_t *global_no_collective_cause); + // #endif /* H5_HAVE_PARALLEL */ // Link creation property list (LCPL) routines // @@ -7314,21 +7573,6 @@ public class H5 implements java.io.Serializable { // herr_t H5Pget_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t *func, void **op_data); // herr_t H5Pset_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t func, void *op_data); - - // Other/Older property list routines // - // herr_t H5Pget_fapl_mpio( int fapl_id, MPI_Comm *comm, MPI_Info *info ) - // herr_t H5Pset_fapl_mpio( int fapl_id, MPI_Comm comm, MPI_Info info ) - - // herr_t H5Pget_fapl_mpiposix( int fapl_id, MPI_Comm *comm, hbool_t *use_gpfs_hints ) - // herr_t H5Pset_fapl_mpiposix( int fapl_id, MPI_Comm comm, hbool_t use_gpfs_hints ) - - // herr_t H5Pget_dxpl_mpio( hid_t dxpl_id, H5FD_mpio_xfer_t *xfer_mode ) - // herr_t H5Pset_dxpl_mpio( hid_t dxpl_id, H5FD_mpio_xfer_t xfer_mode ) - // herr_t H5Pset_dxpl_mpio_chunk_opt (hid_t dxpl_id, H5FD_mpio_chunk_opt_t opt_mode) - // herr_t H5Pset_dxpl_mpio_chunk_opt_num (hid_t dxpl_id, unsigned num_chunk_per_proc) - // herr_t H5Pset_dxpl_mpio_chunk_opt_ratio (hid_t dxpl_id, unsigned percent_proc_per_chunk) - // herr_t H5Pset_dxpl_mpio_collective_opt (hid_t dxpl_id, H5FD_mpio_collective_opt_t opt_mode) - // //////////////////////////////////////////////////////////// // // // H5PL: HDF5 1.8 Plugin API Functions // @@ -8252,6 +8496,17 @@ public class H5 implements java.io.Serializable { public synchronized static native boolean H5Sis_regular_hyperslab(long space_id) throws HDF5LibraryException; // /////// unimplemented //////// + // #ifdef NEW_HYPERSLAB_API + // H5_DLL hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op, + // const hsize_t start[], + // const hsize_t _stride[], + // const hsize_t count[], + // const hsize_t _block[]); + // H5_DLL herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op, + // hid_t space2_id); + // H5_DLL hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op, + // hid_t space2_id); + // #endif /* NEW_HYPERSLAB_API */ diff --git a/java/src/hdf/hdf5lib/HDF5Constants.java b/java/src/hdf/hdf5lib/HDF5Constants.java index eb4055d..7eddac0 100644 --- a/java/src/hdf/hdf5lib/HDF5Constants.java +++ b/java/src/hdf/hdf5lib/HDF5Constants.java @@ -330,6 +330,12 @@ public class HDF5Constants { public static final int H5O_COPY_EXPAND_REFERENCE_FLAG = H5O_COPY_EXPAND_REFERENCE_FLAG(); public static final int H5O_COPY_WITHOUT_ATTR_FLAG = H5O_COPY_WITHOUT_ATTR_FLAG(); public static final int H5O_COPY_PRESERVE_NULL_FLAG = H5O_COPY_PRESERVE_NULL_FLAG(); + public static final int H5O_INFO_BASIC = H5O_INFO_BASIC(); + public static final int H5O_INFO_TIME = H5O_INFO_TIME(); + public static final int H5O_INFO_NUM_ATTRS = H5O_INFO_NUM_ATTRS(); + public static final int H5O_INFO_HDR = H5O_INFO_HDR(); + public static final int H5O_INFO_META_SIZE = H5O_INFO_META_SIZE(); + public static final int H5O_INFO_ALL = H5O_INFO_ALL(); public static final int H5O_SHMESG_NONE_FLAG = H5O_SHMESG_NONE_FLAG(); public static final int H5O_SHMESG_SDSPACE_FLAG = H5O_SHMESG_SDSPACE_FLAG(); public static final int H5O_SHMESG_DTYPE_FLAG = H5O_SHMESG_DTYPE_FLAG(); @@ -617,6 +623,7 @@ public class HDF5Constants { public static final long H5T_UNIX_D64LE = H5T_UNIX_D64LE(); public static final long H5T_VARIABLE = H5T_VARIABLE(); public static final int H5T_VLEN = H5T_VLEN(); + public static final int H5T_VL_T = H5T_VL_T(); public static final int H5Z_CB_CONT = H5Z_CB_CONT(); public static final int H5Z_CB_ERROR = H5Z_CB_ERROR(); public static final int H5Z_CB_FAIL = H5Z_CB_FAIL(); @@ -1239,6 +1246,18 @@ public class HDF5Constants { private static native final int H5O_COPY_PRESERVE_NULL_FLAG(); + private static native final int H5O_INFO_BASIC(); + + private static native final int H5O_INFO_TIME(); + + private static native final int H5O_INFO_NUM_ATTRS(); + + private static native final int H5O_INFO_HDR(); + + private static native final int H5O_INFO_META_SIZE(); + + private static native final int H5O_INFO_ALL(); + private static native final int H5O_SHMESG_NONE_FLAG(); private static native final int H5O_SHMESG_SDSPACE_FLAG(); @@ -1807,6 +1826,8 @@ public class HDF5Constants { private static native final int H5T_VLEN(); + private static native final int H5T_VL_T(); + private static native final int H5Z_CB_CONT(); private static native final int H5Z_CB_ERROR(); diff --git a/java/src/hdf/hdf5lib/HDFArray.java b/java/src/hdf/hdf5lib/HDFArray.java index 529aecb..30f0fc8 100644 --- a/java/src/hdf/hdf5lib/HDFArray.java +++ b/java/src/hdf/hdf5lib/HDFArray.java @@ -1025,8 +1025,11 @@ class ArrayDescriptor { NTsize = 8; } else if (css.startsWith("Ljava.lang.String")) { + NT = 'L'; + className = "java.lang.String"; + NTsize = 1; throw new HDF5JavaException(new String( - "ArrayDesciptor: Error: String array not supported yet")); + "ArrayDesciptor: Warning: String array not fully supported yet")); } else { /* diff --git a/java/src/hdf/hdf5lib/exceptions/HDF5Exception.java b/java/src/hdf/hdf5lib/exceptions/HDF5Exception.java index 1b55437..1e4b5fd 100644 --- a/java/src/hdf/hdf5lib/exceptions/HDF5Exception.java +++ b/java/src/hdf/hdf5lib/exceptions/HDF5Exception.java @@ -30,7 +30,7 @@ package hdf.hdf5lib.exceptions; * error code returned by the HDF5 library. * */ -public class HDF5Exception extends Exception { +public class HDF5Exception extends RuntimeException { protected String detailMessage; /** diff --git a/java/src/hdf/hdf5lib/exceptions/HDF5LibraryException.java b/java/src/hdf/hdf5lib/exceptions/HDF5LibraryException.java index 5ae977d..3a1361a 100644 --- a/java/src/hdf/hdf5lib/exceptions/HDF5LibraryException.java +++ b/java/src/hdf/hdf5lib/exceptions/HDF5LibraryException.java @@ -30,6 +30,9 @@ import hdf.hdf5lib.HDF5Constants; @SuppressWarnings("serial") public class HDF5LibraryException extends HDF5Exception { + private final long majorErrorNumber; + private final long minorErrorNumber; + /** * Constructs an <code>HDF5LibraryException</code> with no specified detail * message. @@ -44,9 +47,10 @@ public class HDF5LibraryException extends HDF5Exception { } catch (Exception e) { } - ; - detailMessage = getMinorError(getMinorErrorNumber()); + this.majorErrorNumber = _getMajorErrorNumber(); + this.minorErrorNumber = _getMinorErrorNumber(); + detailMessage = getMinorError(minorErrorNumber); } /** @@ -65,7 +69,8 @@ public class HDF5LibraryException extends HDF5Exception { } catch (Exception e) { } - ; + this.majorErrorNumber = _getMajorErrorNumber(); + this.minorErrorNumber = _getMinorErrorNumber(); } /** @@ -74,7 +79,11 @@ public class HDF5LibraryException extends HDF5Exception { * * @return the major error number */ - public native long getMajorErrorNumber(); + public long getMajorErrorNumber() + { + return majorErrorNumber; + } + private native long _getMajorErrorNumber(); /** * Get the minor error number of the first error on the HDF5 library error @@ -82,7 +91,11 @@ public class HDF5LibraryException extends HDF5Exception { * * @return the minor error number */ - public native long getMinorErrorNumber(); + public long getMinorErrorNumber() + { + return minorErrorNumber; + } + private native long _getMinorErrorNumber(); /** * Return a error message for the minor error number. diff --git a/java/src/hdf/overview.html b/java/src/hdf/overview.html index 9c19442..52dabf7 100644 --- a/java/src/hdf/overview.html +++ b/java/src/hdf/overview.html @@ -6,18 +6,19 @@ The <b>Java HD5 Interface (JHI5)</b> is a Java package (<a href="../../hdf-java-html/javadocs/hdf/hdf5lib/package-summary.html">hdf.hdf5lib</a>) that ``wraps around'' the HDF5 library. -<p />There are a large number of functions in the HDF5 +<p>There are a large number of functions in the HDF5 library (version 1.10). Some of the functions are not supported in JHI5. Most of the unsupported functions have C function pointers, which is not currently -implemented in JHI5. +implemented in JHI5.</p> -<center><table BORDER=1 COLS=1 WIDTH="71%" BGCOLOR="#dbeaf5" > +<table style="width:71%;text-align:center;background-color:#dbeaf5" border="1"> +<caption>Java HD5 Interface (JHI5)</caption> <tr> -<td> -<center>Note: The JHI5 does not support HDF4 or earlier.</center> +<td style="text-align:center;"> +Note: The JHI5 does not support HDF4 or earlier. </td> </tr> -</table></center> +</table> <p>The JHI5 may be used by any Java application that needs to access HDF5 files. It is extremely important to emphasize that <i>this package is not @@ -91,6 +92,6 @@ and the HDF5 library. <h3> <a NAME="DOWNLOAD"></a>To Obtain</h3> -The JHI5 is included with the <a href="http://www.hdfgroup.org/HDF5/index.html">HDF5</a> library. +The JHI5 is included with the <a href="https://portal.hdfgroup.org/display/support/Downloads">HDF5</a> library. </body> diff --git a/java/src/jni/CMakeLists.txt b/java/src/jni/CMakeLists.txt index 96e7035..a0228e1 100644 --- a/java/src/jni/CMakeLists.txt +++ b/java/src/jni/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDF5_JAVA_JNI C CXX) +project (HDF5_JAVA_JNI C) set (HDF5_JAVA_JNI_CSRCS ${HDF5_JAVA_JNI_SOURCE_DIR}/exceptionImp.c @@ -44,17 +44,16 @@ set (HDF5_JAVA_JNI_CHDRS ${HDF5_JAVA_JNI_SOURCE_DIR}/nativeData.h ) -INCLUDE_DIRECTORIES( ${HDF5_JAVA_JNI_SOURCE_DIR} ) - set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) ########### JNI libraries always must be built shared ############### add_library (${HDF5_JAVA_JNI_LIB_TARGET} SHARED ${HDF5_JAVA_JNI_CSRCS} ${HDF5_JAVA_JNI_CHDRS}) -TARGET_C_PROPERTIES (${HDF5_JAVA_JNI_LIB_TARGET} SHARED " " " ") +target_include_directories(${HDF5_JAVA_JNI_LIB_TARGET} PRIVATE ${HDF5_BINARY_DIR} ${HDF5_JAVA_JNI_SOURCE_DIR}) +TARGET_C_PROPERTIES (${HDF5_JAVA_JNI_LIB_TARGET} SHARED) target_link_libraries (${HDF5_JAVA_JNI_LIB_TARGET} PUBLIC ${HDF5_LIB_TARGET}) set_target_properties (${HDF5_JAVA_JNI_LIB_TARGET} PROPERTIES FOLDER libraries/jni) SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_JAVA_JNI_LIB_TARGET}") -H5_SET_LIB_OPTIONS (${HDF5_JAVA_JNI_LIB_TARGET} ${HDF5_JAVA_JNI_LIB_NAME} SHARED ${HDF5_JAVA_PACKAGE_SOVERSION}) +H5_SET_LIB_OPTIONS (${HDF5_JAVA_JNI_LIB_TARGET} ${HDF5_JAVA_JNI_LIB_NAME} SHARED "JAVA") if (WIN32) get_filename_component (HDF5_JAVA_JNI_DLL_NAME ${HDF5_JAVA_JNI_LIB_TARGET} NAME_WE) set (HDF5_JAVA_JNI_DLL_NAME "${HDF5_JAVA_JNI_DLL_NAME}$<$<CONFIG:Debug>:_D>") diff --git a/java/src/jni/Makefile.in b/java/src/jni/Makefile.in index 683f872..d0862c3 100644 --- a/java/src/jni/Makefile.in +++ b/java/src/jni/Makefile.in @@ -540,6 +540,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -587,6 +588,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -732,29 +734,29 @@ TRACE = perl $(top_srcdir)/bin/trace # .chklog files are output from those tests. # *.clog and *.clog2 are from the MPE option. CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 -LT_VERS_INTERFACE = 102 +LT_VERS_INTERFACE = 103 LT_VERS_REVISION = 0 -LT_VERS_AGE = 1 -LT_CXX_VERS_INTERFACE = 102 +LT_VERS_AGE = 0 +LT_CXX_VERS_INTERFACE = 103 LT_CXX_VERS_REVISION = 0 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 101 -LT_F_VERS_REVISION = 1 +LT_F_VERS_REVISION = 2 LT_F_VERS_AGE = 1 LT_HL_VERS_INTERFACE = 101 -LT_HL_VERS_REVISION = 0 +LT_HL_VERS_REVISION = 1 LT_HL_VERS_AGE = 1 LT_HL_CXX_VERS_INTERFACE = 101 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 100 -LT_HL_F_VERS_REVISION = 2 +LT_HL_F_VERS_REVISION = 3 LT_HL_F_VERS_AGE = 0 -LT_JAVA_VERS_INTERFACE = 102 +LT_JAVA_VERS_INTERFACE = 103 LT_JAVA_VERS_REVISION = 0 -LT_JAVA_VERS_AGE = 2 +LT_JAVA_VERS_AGE = 3 LT_TOOLS_VERS_INTERFACE = 101 -LT_TOOLS_VERS_REVISION = 0 +LT_TOOLS_VERS_REVISION = 1 LT_TOOLS_VERS_AGE = 1 # Mark this directory as part of the JNI API diff --git a/java/src/jni/exceptionImp.c b/java/src/jni/exceptionImp.c index afad5d5..ccda0d2 100644 --- a/java/src/jni/exceptionImp.c +++ b/java/src/jni/exceptionImp.c @@ -83,11 +83,16 @@ typedef struct H5E_num_t { } \ jm = ENVPTR->GetMethodID(ENVPAR jc, "<init>", "(Ljava/lang/String;)V"); \ if (jm == NULL) { \ + printf("THROWEXCEPTION FATAL ERROR: GetMethodID failed\n"); \ return JNI_FALSE; \ } \ ex = ENVPTR->NewObjectA (ENVPAR jc, jm, (jvalue*)(args)); \ + if (ex == NULL) { \ + printf("THROWEXCEPTION FATAL ERROR: %s: Creation failed\n", (className)); \ + return JNI_FALSE; \ + } \ if (ENVPTR->Throw(ENVPAR (jthrowable)ex) < 0) { \ - printf("FATAL ERROR: %s: Throw failed\n", (className)); \ + printf("THROWEXCEPTION FATAL ERROR: %s: Throw failed\n", (className)); \ return JNI_FALSE; \ } \ return JNI_TRUE; \ @@ -174,13 +179,13 @@ Java_hdf_hdf5lib_exceptions_HDF5LibraryException_printStackTrace0 /* * Class: hdf_hdf5lib_exceptions_HDFLibraryException - * Method: getMajorErrorNumber + * Method: _getMajorErrorNumber * Signature: ()J * * Extract the HDF-5 major error number from the HDF-5 error stack. */ JNIEXPORT jlong JNICALL -Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMajorErrorNumber +Java_hdf_hdf5lib_exceptions_HDF5LibraryException__1getMajorErrorNumber (JNIEnv *env, jobject obj) { H5E_num_t err_nums; @@ -190,17 +195,17 @@ Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMajorErrorNumber H5Ewalk2(H5E_DEFAULT, H5E_WALK_DOWNWARD, walk_error_callback, &err_nums); return err_nums.maj_num; -} /* end Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMajorErrorNumber() */ +} /* end Java_hdf_hdf5lib_exceptions_HDF5LibraryException__1getMajorErrorNumber() */ /* * Class: hdf_hdf5lib_exceptions_HDFLibraryException - * Method: getMinorErrorNumber + * Method: _getMinorErrorNumber * Signature: ()J * * Extract the HDF-5 minor error number from the HDF-5 error stack. */ JNIEXPORT jlong JNICALL -Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMinorErrorNumber +Java_hdf_hdf5lib_exceptions_HDF5LibraryException__1getMinorErrorNumber (JNIEnv *env, jobject obj) { H5E_num_t err_nums; @@ -210,7 +215,7 @@ Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMinorErrorNumber H5Ewalk2(H5E_DEFAULT, H5E_WALK_DOWNWARD, walk_error_callback, &err_nums); return err_nums.min_num; -} /* end Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMinorErrorNumber() */ +} /* end Java_hdf_hdf5lib_exceptions_HDF5LibraryException__1getMinorErrorNumber() */ /* * Routine to raise particular Java exceptions from C diff --git a/java/src/jni/exceptionImp.h b/java/src/jni/exceptionImp.h index 423e537..5873202 100644 --- a/java/src/jni/exceptionImp.h +++ b/java/src/jni/exceptionImp.h @@ -55,20 +55,20 @@ Java_hdf_hdf5lib_exceptions_HDF5LibraryException_printStackTrace0 /* * Class: hdf_hdf5lib_exceptions_HDFLibraryException - * Method: getMajorErrorNumber + * Method: _getMajorErrorNumber * Signature: ()J */ JNIEXPORT jlong JNICALL -Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMajorErrorNumber +Java_hdf_hdf5lib_exceptions_HDF5LibraryException__1getMajorErrorNumber (JNIEnv *env, jobject obj); /* * Class: hdf_hdf5lib_exceptions_HDFLibraryException - * Method: getMinorErrorNumber + * Method: _getMinorErrorNumber * Signature: ()J */ JNIEXPORT jlong JNICALL -Java_hdf_hdf5lib_exceptions_HDF5LibraryException_getMinorErrorNumber +Java_hdf_hdf5lib_exceptions_HDF5LibraryException__1getMinorErrorNumber (JNIEnv *env, jobject obj); #ifdef __cplusplus diff --git a/java/src/jni/h5Constants.c b/java/src/jni/h5Constants.c index 900316e..c99745d 100644 --- a/java/src/jni/h5Constants.c +++ b/java/src/jni/h5Constants.c @@ -643,6 +643,18 @@ Java_hdf_hdf5lib_HDF5Constants_H5O_1COPY_1WITHOUT_1ATTR_1FLAG(JNIEnv *env, jclas JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5O_1COPY_1PRESERVE_1NULL_1FLAG(JNIEnv *env, jclass cls){return H5O_COPY_PRESERVE_NULL_FLAG; } JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5O_1INFO_1BASIC(JNIEnv *env, jclass cls) { return H5O_INFO_BASIC; } +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5O_1INFO_1TIME(JNIEnv *env, jclass cls) { return H5O_INFO_TIME; } +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5O_1INFO_1NUM_1ATTRS(JNIEnv *env, jclass cls) { return H5O_INFO_NUM_ATTRS; } +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5O_1INFO_1HDR(JNIEnv *env, jclass cls) { return H5O_INFO_HDR; } +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5O_1INFO_1META_1SIZE(JNIEnv *env, jclass cls) { return H5O_INFO_META_SIZE; } +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5O_1INFO_1ALL(JNIEnv *env, jclass cls) { return H5O_INFO_ALL; } +JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5O_1SHMESG_1NONE_1FLAG(JNIEnv *env, jclass cls){return H5O_SHMESG_NONE_FLAG; } JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5O_1SHMESG_1SDSPACE_1FLAG(JNIEnv *env, jclass cls){return H5O_SHMESG_SDSPACE_FLAG; } @@ -1219,6 +1231,8 @@ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5T_1VARIABLE(JNIEnv *env, jclass cls) { return (int)H5T_VARIABLE; } JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5T_1VLEN(JNIEnv *env, jclass cls) { return H5T_VLEN; } +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5T_1VL_1T(JNIEnv *env, jclass cls) { return sizeof(hvl_t); } JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5Z_1CB_1CONT(JNIEnv *env, jclass cls) { return H5Z_CB_CONT; } diff --git a/java/src/jni/h5aImp.c b/java/src/jni/h5aImp.c index 26ec4fc..c0dc182 100644 --- a/java/src/jni/h5aImp.c +++ b/java/src/jni/h5aImp.c @@ -49,6 +49,10 @@ extern jobject visit_callback; /* Local Prototypes */ /********************/ +static herr_t H5AwriteVL_asstr (JNIEnv *env, hid_t attr_id, hid_t mem_id, jobjectArray buf); +static herr_t H5AwriteVL_str (JNIEnv *env, hid_t attr_id, hid_t mem_id, jobjectArray buf); +static herr_t H5AreadVL_asstr (JNIEnv *env, hid_t attr_id, hid_t mem_id, jobjectArray buf); +static herr_t H5AreadVL_str (JNIEnv *env, hid_t attr_id, hid_t mem_id, jobjectArray buf); static herr_t H5A_iterate_cb(hid_t g_id, const char *name, const H5A_info_t *info, void *op_data); @@ -178,7 +182,6 @@ Java_hdf_hdf5lib_H5_H5Aread } /* end if */ else { status = H5Aread((hid_t)attr_id, (hid_t)mem_type_id, byteP); - if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR buf, byteP, JNI_ABORT); h5libraryError(env); @@ -194,6 +197,323 @@ Java_hdf_hdf5lib_H5_H5Aread /* * Class: hdf_hdf5lib_H5 + * Method: H5AwriteVL + * Signature: (JJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5AwriteVL + (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf) +{ + herr_t status = -1; + htri_t isStr = 0; + htri_t isVlenStr = 0; + htri_t isComplex = 0; + + if (buf == NULL) { + h5nullArgument(env, "H5AwriteVL: buf is NULL"); + } /* end if */ + else { + isStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING); + if (H5Tget_class((hid_t)mem_type_id) == H5T_COMPOUND) { + unsigned i; + int nm = H5Tget_nmembers(mem_type_id); + for(i = 0; i <nm; i++) { + hid_t nested_tid = H5Tget_member_type((hid_t)mem_type_id, i); + isComplex = H5Tdetect_class((hid_t)nested_tid, H5T_COMPOUND) || + H5Tdetect_class((hid_t)nested_tid, H5T_VLEN); + H5Tclose(nested_tid); + } + } + else if (H5Tget_class((hid_t)mem_type_id) == H5T_VLEN) { + isVlenStr = 1; /* strings created by H5Tvlen_create(H5T_C_S1) */ + } + if (isStr == 0 || isComplex>0 || isVlenStr) { + status = H5AwriteVL_asstr(env, (hid_t)attr_id, (hid_t)mem_type_id, buf); + } + else if (isStr > 0) { + status = H5AwriteVL_str(env, (hid_t)attr_id, (hid_t)mem_type_id, buf); + } + } /* end else */ + + return (jint)status; +} /* end Java_hdf_hdf5lib_H5_H5Awrite_1VL */ + +herr_t +H5AwriteVL_str + (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf) +{ + herr_t status = -1; + char **wdata; + jsize size; + jint i; + + size = ENVPTR->GetArrayLength(ENVPAR (jarray) buf); + + wdata = (char**)HDcalloc((size_t)size + 1, sizeof(char*)); + if (!wdata) { + h5JNIFatalError(env, "H5AwriteVL_str: cannot allocate buffer"); + } /* end if */ + else { + HDmemset(wdata, 0, (size_t)size * sizeof(char*)); + for (i = 0; i < size; ++i) { + jstring obj = (jstring) ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray) buf, i); + if (obj != 0) { + jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj); + const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0); + + if (utf8) { + wdata[i] = (char*)HDmalloc((size_t)length + 1); + if (wdata[i]) { + HDmemset(wdata[i], 0, ((size_t)length + 1)); + HDstrncpy(wdata[i], utf8, (size_t)length); + } /* end if */ + } /* end if */ + + ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8); + ENVPTR->DeleteLocalRef(ENVPAR obj); + } /* end if */ + } /* end for (i = 0; i < size; ++i) */ + + status = H5Awrite((hid_t)aid, (hid_t)tid, wdata); + + for (i = 0; i < size; i++) { + if(wdata[i]) { + HDfree(wdata[i]); + } /* end if */ + } /* end for */ + HDfree(wdata); + + if (status < 0) + h5libraryError(env); + } /* end else */ + + return (jint)status; +} + +herr_t +H5AwriteVL_asstr + (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf) +{ + char **strs; + jstring jstr; + jint i; + jint n; + hid_t sid; + hsize_t dims[H5S_MAX_RANK]; + herr_t status = -1; + + n = ENVPTR->GetArrayLength(ENVPAR buf); + strs =(hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t)); + + if (strs == NULL) { + h5JNIFatalError(env, "H5AwriteVL_asstr: failed to allocate buff for read variable length strings"); + } /* end if */ + else { + status = H5Awrite(aid, tid, strs); + + if (status < 0) { + dims[0] = (hsize_t)n; + sid = H5Screate_simple(1, dims, NULL); + H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, strs); + H5Sclose(sid); + HDfree(strs); + h5JNIFatalError(env, "H5AwriteVL_str: failed to read variable length strings"); + } /* end if */ + else { + for (i=0; i < n; i++) { + jstr = ENVPTR->NewStringUTF(ENVPAR strs[i]); + ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); + H5free_memory (strs[i]); + } /* end for */ + + /* + for repeatedly reading a dataset with a large number of strs (e.g., 1,000,000 strings, + H5Dvlen_reclaim() may crash on Windows because the Java GC will not be able to collect + free space in time. Instead, use "H5free_memory(strs[i])" above to free individual strings + after it is done. + H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, strs); + */ + + HDfree(strs); + } /* end else */ + } /* end else */ + + return status; +} /* end H5AwriteVL_str */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5AreadVL + * Signature: (JJJJJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5AreadVL + (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf) +{ + herr_t status = -1; + htri_t isStr = 0; + htri_t isVlenStr = 0; + htri_t isComplex = 0; + + if (buf == NULL) { + h5nullArgument(env, "H5AreadVL: buf is NULL"); + } /* end if */ + else { + isStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING); + if (H5Tget_class((hid_t)mem_type_id) == H5T_COMPOUND) { + unsigned i; + int nm = H5Tget_nmembers(mem_type_id); + for(i = 0; i <nm; i++) { + hid_t nested_tid = H5Tget_member_type((hid_t)mem_type_id, i); + isComplex = H5Tdetect_class((hid_t)nested_tid, H5T_COMPOUND) || + H5Tdetect_class((hid_t)nested_tid, H5T_VLEN); + H5Tclose(nested_tid); + } + } + else if (H5Tget_class((hid_t)mem_type_id) == H5T_VLEN) { + isVlenStr = 1; /* strings created by H5Tvlen_create(H5T_C_S1) */ + } + if (isStr == 0 || isComplex>0 || isVlenStr) { + status = H5AreadVL_asstr(env, (hid_t)attr_id, (hid_t)mem_type_id, buf); + } + else if (isStr > 0) { + status = H5AreadVL_str(env, (hid_t)attr_id, (hid_t)mem_type_id, buf); + } + } /* end else */ + + return (jint)status; +} /* end Java_hdf_hdf5lib_H5_H5Aread_1VL */ + +herr_t +H5AreadVL_asstr + (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf) +{ + jint i; + jint n; + hid_t sid; + jstring jstr; + h5str_t h5str; + hvl_t *rdata; + hsize_t dims[H5S_MAX_RANK]; + size_t size; + size_t max_len = 0; + herr_t status = -1; + + /* Get size of string array */ + n = ENVPTR->GetArrayLength(ENVPAR buf); + /* we will need to read n number of hvl_t structures */ + rdata = (hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t)); + if (rdata == NULL) { + h5JNIFatalError(env, "H5AreadVL_asstr: failed to allocate buff for read"); + } /* end if */ + else { + status = H5Aread(aid, tid, rdata); + + if (status < 0) { + dims[0] = (hsize_t)n; + sid = H5Screate_simple(1, dims, NULL); + H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, rdata); + H5Sclose(sid); + HDfree(rdata); + h5JNIFatalError(env, "H5AreadVL_asstr: failed to read data"); + } /* end if */ + else { + /* calculate the largest size of all the hvl_t structures read */ + max_len = 1; + for (i=0; i < n; i++) { + if ((rdata + i)->len > max_len) + max_len = (rdata + i)->len; + } + + /* create one malloc to hold largest element */ + size = H5Tget_size(tid) * max_len; + HDmemset(&h5str, 0, sizeof(h5str_t)); + h5str_new(&h5str, 4 * size); + + if (h5str.s == NULL) { + dims[0] = (hsize_t)n; + sid = H5Screate_simple(1, dims, NULL); + H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, rdata); + H5Sclose(sid); + HDfree(rdata); + h5JNIFatalError(env, "H5AreadVL_asstr: failed to allocate buf"); + } /* end if */ + else { + H5T_class_t tclass = H5Tget_class(tid); + /* convert each element to char string */ + for (i=0; i < n; i++) { + h5str.s[0] = '\0'; + h5str_vlsprintf(&h5str, aid, tid, rdata+i, 0); + jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s); + ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); + } /* end for */ + h5str_free(&h5str); + + dims[0] = (hsize_t)n; + sid = H5Screate_simple(1, dims, NULL); + H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, rdata); + H5Sclose(sid); + HDfree(rdata); + } /* end else */ + } /* end else */ + } /* end else */ + + return status; +} + +herr_t +H5AreadVL_str + (JNIEnv *env, hid_t aid, hid_t tid, jobjectArray buf) +{ + char **strs; + jstring jstr; + jint i; + jint n; + hid_t sid; + hsize_t dims[H5S_MAX_RANK]; + herr_t status = -1; + + n = ENVPTR->GetArrayLength(ENVPAR buf); + strs =(char**)HDcalloc((size_t)n, sizeof(char*)); + + if (strs == NULL) { + h5JNIFatalError(env, "H5AreadVL_str: failed to allocate buff for read variable length strings"); + } /* end if */ + else { + status = H5Aread(aid, tid, strs); + + if (status < 0) { + dims[0] = (hsize_t)n; + sid = H5Screate_simple(1, dims, NULL); + H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, strs); + H5Sclose(sid); + HDfree(strs); + h5JNIFatalError(env, "H5AreadVL_str: failed to read variable length strings"); + } /* end if */ + else { + for (i=0; i < n; i++) { + jstr = ENVPTR->NewStringUTF(ENVPAR strs[i]); + ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); + H5free_memory (strs[i]); + } /* end for */ + + /* + for repeatedly reading a dataset with a large number of strs (e.g., 1,000,000 strings, + H5Dvlen_reclaim() may crash on Windows because the Java GC will not be able to collect + free space in time. Instead, use "H5free_memory(strs[i])" above to free individual strings + after it is done. + H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, strs); + */ + + HDfree(strs); + } /* end else */ + } /* end else */ + + return status; +} /* end H5AreadVL_str */ + +/* + * Class: hdf_hdf5lib_H5 * Method: H5Aget_space * Signature: (J)J */ @@ -646,7 +966,7 @@ Java_hdf_hdf5lib_H5_H5Aget_1info_1by_1idx UNPIN_JAVA_STRING(obj_name, aName); if (status < 0) { - h5libraryError(env); + h5libraryError(env); } /* end if */ else { args[0].z = ainfo.corder_valid; @@ -682,7 +1002,7 @@ Java_hdf_hdf5lib_H5_H5Aget_1info_1by_1name UNPIN_JAVA_STRING_TWO(obj_name, aName, attr_name, attrName); if (status < 0) { - h5libraryError(env); + h5libraryError(env); } /* end if */ else { args[0].z = ainfo.corder_valid; @@ -846,8 +1166,12 @@ H5A_iterate_cb constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(ZJIJ)V"); if (constructor != 0) { cb_info_t = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - - status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, g_id, str, cb_info_t, op_data); + if (cb_info_t == NULL) { + printf("FATAL ERROR: hdf/hdf5lib/structs/H5A_info_t: Creation failed\n"); + } + else { + status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, g_id, str, cb_info_t, op_data); + } } /* end if (constructor != 0) */ } /* end if (cls != 0) */ } /* end if (mid != 0) */ diff --git a/java/src/jni/h5aImp.h b/java/src/jni/h5aImp.h index 62769fd..f3758eb 100644 --- a/java/src/jni/h5aImp.h +++ b/java/src/jni/h5aImp.h @@ -69,6 +69,24 @@ Java_hdf_hdf5lib_H5_H5Aread /* * Class: hdf_hdf5lib_H5 + * Method: H5AwriteVL + * Signature: (JJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5AwriteVL + (JNIEnv *, jclass, jlong, jlong, jobjectArray); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5AreadVL + * Signature: (JJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5AreadVL + (JNIEnv *, jclass, jlong, jlong, jobjectArray); + +/* + * Class: hdf_hdf5lib_H5 * Method: H5Aget_space * Signature: (J)J */ diff --git a/java/src/jni/h5dImp.c b/java/src/jni/h5dImp.c index 9784055..205e9fb 100644 --- a/java/src/jni/h5dImp.c +++ b/java/src/jni/h5dImp.c @@ -56,6 +56,7 @@ extern jobject visit_callback; static herr_t H5DreadVL_asstr (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf); static herr_t H5DreadVL_str (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf); static herr_t H5DreadVL_array (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf); +static herr_t H5DwriteVL_asstr (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf); static herr_t H5DwriteVL_str (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf); static herr_t H5DwriteVL_array (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf); @@ -993,96 +994,6 @@ Java_hdf_hdf5lib_H5_H5Dwrite_1double /* * Class: hdf_hdf5lib_H5 - * Method: H5DreadVL - * Signature: (JJJJJ[Ljava/lang/String;)I - */ -JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_H5_H5DreadVL - (JNIEnv *env, jclass clss, jlong dataset_id, jlong mem_type_id, jlong mem_space_id, - jlong file_space_id, jlong xfer_plist_id, jobjectArray buf) -{ - herr_t status = -1; - htri_t isVlenStr=0; - - if (buf == NULL) { - h5nullArgument(env, "H5DreadVL: buf is NULL"); - } /* end if */ - else { - isVlenStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING); - - if (isVlenStr) - h5badArgument(env, "H5DreadVL: type is not variable length non-string"); - else - status = H5DreadVL_asstr(env, (hid_t)dataset_id, (hid_t)mem_type_id, - (hid_t)mem_space_id, (hid_t)file_space_id, - (hid_t)xfer_plist_id, buf); - } /* end else */ - - return (jint)status; -} /* end Java_hdf_hdf5lib_H5_H5Dread_1VL */ - -herr_t -H5DreadVL_asstr - (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf) -{ - jint i; - jint n; - jstring jstr; - h5str_t h5str; - hvl_t *rdata; - size_t size; - size_t max_len = 0; - herr_t status = -1; - - n = ENVPTR->GetArrayLength(ENVPAR buf); - rdata = (hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t)); - if (rdata == NULL) { - h5JNIFatalError(env, "H5DreadVL_notstr: failed to allocate buff for read"); - } /* end if */ - else { - status = H5Dread(did, tid, mem_sid, file_sid, xfer_plist_id, rdata); - - if (status < 0) { - H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, rdata); - HDfree(rdata); - h5JNIFatalError(env, "H5DreadVL_notstr: failed to read data"); - } /* end if */ - else { - max_len = 1; - for (i=0; i < n; i++) { - if ((rdata + i)->len > max_len) - max_len = (rdata + i)->len; - } - - size = H5Tget_size(tid) * max_len; - HDmemset(&h5str, 0, sizeof(h5str_t)); - h5str_new(&h5str, 4 * size); - - if (h5str.s == NULL) { - H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, rdata); - HDfree(rdata); - h5JNIFatalError(env, "H5DreadVL_notstr: failed to allocate buf"); - } /* end if */ - else { - for (i=0; i < n; i++) { - h5str.s[0] = '\0'; - h5str_sprintf(&h5str, did, tid, rdata+i, 0); - jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s); - ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); - } /* end for */ - h5str_free(&h5str); - - H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, rdata); - HDfree(rdata); - } /* end else */ - } /* end else */ - } /* end else */ - - return status; -} - -/* - * Class: hdf_hdf5lib_H5 * Method: H5Dread_string * Signature: (JJJJJ[Ljava/lang/String;)I */ @@ -1218,6 +1129,120 @@ Java_hdf_hdf5lib_H5_H5Dwrite_1string return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Dwrite_1string */ +/* + * Class: hdf_hdf5lib_H5 + * Method: H5DreadVL + * Signature: (JJJJJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5DreadVL + (JNIEnv *env, jclass clss, jlong dataset_id, jlong mem_type_id, jlong mem_space_id, + jlong file_space_id, jlong xfer_plist_id, jobjectArray buf) +{ + herr_t status = -1; + htri_t isStr = 0; + htri_t isVlenStr = 0; + htri_t isComplex = 0; + + if (buf == NULL) { + h5nullArgument(env, "H5DreadVL: buf is NULL"); + } /* end if */ + else { + isStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING); + if (H5Tget_class((hid_t)mem_type_id) == H5T_COMPOUND) { + unsigned i; + int nm = H5Tget_nmembers(mem_type_id); + for(i = 0; i <nm; i++) { + hid_t nested_tid = H5Tget_member_type((hid_t)mem_type_id, i); + isComplex = H5Tdetect_class((hid_t)nested_tid, H5T_COMPOUND) || + H5Tdetect_class((hid_t)nested_tid, H5T_VLEN); + H5Tclose(nested_tid); + } + } + else if (H5Tget_class((hid_t)mem_type_id) == H5T_VLEN) { + isVlenStr = 1; /* strings created by H5Tvlen_create(H5T_C_S1) */ + } + if (isStr == 0 || isComplex>0 || isVlenStr) { + status = H5DreadVL_asstr(env, (hid_t)dataset_id, (hid_t)mem_type_id, + (hid_t)mem_space_id, (hid_t)file_space_id, + (hid_t)xfer_plist_id, buf); + } + else if (isStr > 0) { + status = H5DreadVL_str(env, (hid_t)dataset_id, (hid_t)mem_type_id, + (hid_t)mem_space_id, (hid_t)file_space_id, + (hid_t)xfer_plist_id, buf); + } + } /* end else */ + + return (jint)status; +} /* end Java_hdf_hdf5lib_H5_H5Dread_1VL */ + +herr_t +H5DreadVL_asstr + (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf) +{ + jint i; + jint n; + jstring jstr; + h5str_t h5str; + hvl_t *rdata; + size_t size; + size_t max_len = 0; + herr_t status = -1; + + /* Get size of string array */ + n = ENVPTR->GetArrayLength(ENVPAR buf); + /* we will need to read n number of hvl_t structures */ + rdata = (hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t)); + if (rdata == NULL) { + h5JNIFatalError(env, "H5DreadVL_asstr: failed to allocate buff for read"); + } /* end if */ + else { + status = H5Dread(did, tid, mem_sid, file_sid, xfer_plist_id, rdata); + + if (status < 0) { + H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, rdata); + HDfree(rdata); + h5JNIFatalError(env, "H5DreadVL_asstr: failed to read data"); + } /* end if */ + else { + /* calculate the largest size of all the hvl_t structures read */ + max_len = 1; + for (i=0; i < n; i++) { + if ((rdata + i)->len > max_len) + max_len = (rdata + i)->len; + } + + /* create one malloc to hold largest element */ + size = H5Tget_size(tid) * max_len; + HDmemset(&h5str, 0, sizeof(h5str_t)); + h5str_new(&h5str, 4 * size); + + if (h5str.s == NULL) { + H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, rdata); + HDfree(rdata); + h5JNIFatalError(env, "H5DreadVL_asstr: failed to allocate buf"); + } /* end if */ + else { + H5T_class_t tclass = H5Tget_class(tid); + /* convert each element to char string */ + for (i=0; i < n; i++) { + h5str.s[0] = '\0'; + h5str_vlsprintf(&h5str, did, tid, rdata+i, 0); + jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s); + ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); + } /* end for */ + h5str_free(&h5str); + + H5Dvlen_reclaim(tid, mem_sid, xfer_plist_id, rdata); + HDfree(rdata); + } /* end else */ + } /* end else */ + } /* end else */ + + return status; +} + /** * Read VLEN data into array of arrays. * Object[] buf contains VL arrays of data points @@ -1305,6 +1330,108 @@ H5DreadVL_str /* * Class: hdf_hdf5lib_H5 + * Method: H5DwriteVL + * Signature: (JJJJJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5DwriteVL + (JNIEnv *env, jclass clss, jlong dataset_id, jlong mem_type_id, jlong mem_space_id, + jlong file_space_id, jlong xfer_plist_id, jobjectArray buf) +{ + herr_t status = -1; + htri_t isStr = 0; + htri_t isVlenStr = 0; + htri_t isComplex = 0; + + if (buf == NULL) { + h5nullArgument(env, "H5DwriteVL: buf is NULL"); + } /* end if */ + else { + isStr = H5Tdetect_class((hid_t)mem_type_id, H5T_STRING); + if (H5Tget_class((hid_t)mem_type_id) == H5T_COMPOUND) { + unsigned i; + int nm = H5Tget_nmembers(mem_type_id); + for(i = 0; i <nm; i++) { + hid_t nested_tid = H5Tget_member_type((hid_t)mem_type_id, i); + isComplex = H5Tdetect_class((hid_t)nested_tid, H5T_COMPOUND) || + H5Tdetect_class((hid_t)nested_tid, H5T_VLEN); + H5Tclose(nested_tid); + } + } + else if (H5Tget_class((hid_t)mem_type_id) == H5T_VLEN) { + isVlenStr = 1; /* strings created by H5Tvlen_create(H5T_C_S1) */ + } + if (isStr == 0 || isComplex>0 || isVlenStr) { + h5unimplemented(env, "H5DwriteVL: VL types, which are not string type, not implemented"); + status = -1; +#ifdef notdef + status = H5DwriteVL_asstr(env, (hid_t)dataset_id, (hid_t)mem_type_id, + (hid_t)mem_space_id, (hid_t)file_space_id, + (hid_t)xfer_plist_id, buf); +#endif + } + else if (isStr > 0) { + status = H5DwriteVL_str(env, (hid_t)dataset_id, (hid_t)mem_type_id, + (hid_t)mem_space_id, (hid_t)file_space_id, + (hid_t)xfer_plist_id, buf); + } + } /* end else */ + + return (jint)status; +} /* end Java_hdf_hdf5lib_H5_H5Dwrite_1VL */ + +herr_t +H5DwriteVL_asstr + (JNIEnv *env, hid_t did, hid_t tid, hid_t mem_sid, hid_t file_sid, hid_t xfer_plist_id, jobjectArray buf) +{ + herr_t status = -1; + hvl_t *wdata; + jsize size; + jint i; + jint n; + + /* Get size of string array */ + n = ENVPTR->GetArrayLength(ENVPAR buf); + wdata = (hvl_t*)HDcalloc((size_t)n, sizeof(hvl_t)); + + if (wdata == NULL) { + h5JNIFatalError(env, "H5DwriteVL_asstr: failed to allocate buff for write"); + } /* end if */ + else { + for (i = 0; i < n; ++i) { + jstring obj = (jstring) ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray)buf, i); + if (obj != 0) { + jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj); + const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0); + + if (utf8) { + h5str_vlconvert(utf8, did, tid, wdata+i, 0); + } /* end if */ + + ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8); + ENVPTR->DeleteLocalRef(ENVPAR obj); + } /* end if */ + } /* end for (i = 0; i < size; ++i) */ + + status = H5Dwrite(did, tid, mem_sid, file_sid, xfer_plist_id, wdata); + + /* now free memory*/ + for (i = 0; i < n; i++) { + if(wdata+i) { + HDfree(wdata+i); + } /* end if */ + } /* end for */ + HDfree(wdata); + + if (status < 0) + h5libraryError(env); + } /* end else */ + + return status; +} /* end H5DwriteVL_asstr */ + +/* + * Class: hdf_hdf5lib_H5 * Method: H5Dwrite_VLStrings * Signature: (JJJJJ[Ljava/lang/String;)I */ @@ -1347,7 +1474,7 @@ H5DwriteVL_str wdata = (char**)HDmalloc((size_t)size * sizeof (char*)); if (!wdata) { - h5JNIFatalError(env, "H5DwriteVL_string: cannot allocate buffer"); + h5JNIFatalError(env, "H5DwriteVL_str: cannot allocate buffer"); } /* end if */ else { HDmemset(wdata, 0, (size_t)size * sizeof(char*)); @@ -1433,7 +1560,7 @@ Java_hdf_hdf5lib_H5_H5Dread_1reg_1ref h5str_new(&h5str, 1024); for (i=0; i<n; i++) { h5str.s[0] = '\0'; - h5str_sprintf(&h5str, did, tid, ref_data[i], 0); + h5str_sprintf(&h5str, did, tid, ref_data[i], 0, 0); jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s); ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); diff --git a/java/src/jni/h5dImp.h b/java/src/jni/h5dImp.h index 3cf24fe..1fe71a8 100644 --- a/java/src/jni/h5dImp.h +++ b/java/src/jni/h5dImp.h @@ -213,6 +213,15 @@ Java_hdf_hdf5lib_H5_H5DreadVL /* * Class: hdf_hdf5lib_H5 + * Method: H5DwriteVL + * Signature: (JJJJJ[Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_H5_H5DwriteVL +(JNIEnv*, jclass, jlong, jlong, jlong, jlong, jlong, jobjectArray); + +/* + * Class: hdf_hdf5lib_H5 * Method: H5Dread_string * Signature: (JJJJJ[Ljava/lang/String;)I */ diff --git a/java/src/jni/h5eImp.c b/java/src/jni/h5eImp.c index 24ddcbc..10a02b0 100644 --- a/java/src/jni/h5eImp.c +++ b/java/src/jni/h5eImp.c @@ -508,8 +508,12 @@ H5E_walk_cb constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(JJJILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); if (constructor != 0) { cb_info_t = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - - status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, nindx, cb_info_t, op_data); + if (cb_info_t == NULL) { + printf("FATAL ERROR: hdf/hdf5lib/structs/H5E_error2_t: Creation failed\n"); + } + else { + status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, nindx, cb_info_t, op_data); + } } /* end if (constructor != 0) */ } /* end if(cls != 0) */ } /* end if (mid != 0) */ diff --git a/java/src/jni/h5lImp.c b/java/src/jni/h5lImp.c index ac71845..f1734fd 100644 --- a/java/src/jni/h5lImp.c +++ b/java/src/jni/h5lImp.c @@ -574,8 +574,12 @@ H5L_iterate_cb constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(IZJIJ)V"); if (constructor != 0) { cb_info_t = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - - status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, g_id, str, cb_info_t, op_data); + if (cb_info_t == NULL) { + printf("FATAL ERROR: hdf/hdf5lib/structs/H5L_info_t: Creation failed\n"); + } + else { + status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, g_id, str, cb_info_t, op_data); + } } /* end if */ } /* end if */ } /* end if */ diff --git a/java/src/jni/h5oImp.c b/java/src/jni/h5oImp.c index e8abead..6093e46 100644 --- a/java/src/jni/h5oImp.c +++ b/java/src/jni/h5oImp.c @@ -105,11 +105,11 @@ Java_hdf_hdf5lib_H5_H5Ocopy /* * Class: hdf_hdf5lib_H5 * Method: H5Oget_info - * Signature: (J)Lhdf/hdf5lib/structs/H5O_info_t; + * Signature: (JI)Lhdf/hdf5lib/structs/H5O_info_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Oget_1info - (JNIEnv *env, jclass clss, jlong loc_id) + (JNIEnv *env, jclass clss, jlong loc_id, jint fields) { herr_t status = -1; H5O_info_t infobuf; @@ -119,7 +119,7 @@ Java_hdf_hdf5lib_H5_H5Oget_1info jobject ihinfobuf2; jobject ret_obj = NULL; - status = H5Oget_info((hid_t)loc_id, &infobuf); + status = H5Oget_info2((hid_t)loc_id, &infobuf, (unsigned)fields); if (status < 0) { h5libraryError(env); @@ -168,11 +168,11 @@ Java_hdf_hdf5lib_H5_H5Oget_1info /* * Class: hdf_hdf5lib_H5 * Method: H5Oget_info_by_name - * Signature: (JLjava/lang/String;J)Lhdf/hdf5lib/structs/H5O_info_t; + * Signature: (JLjava/lang/String;IJ)Lhdf/hdf5lib/structs/H5O_info_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1name - (JNIEnv *env, jclass clss, jlong loc_id, jstring name, jlong access_id) + (JNIEnv *env, jclass clss, jlong loc_id, jstring name, jint fields, jlong access_id) { const char *lName; herr_t status = -1; @@ -185,7 +185,7 @@ Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1name PIN_JAVA_STRING(name, lName); if (lName != NULL) { - status = H5Oget_info_by_name((hid_t)loc_id, lName, &infobuf, (hid_t)access_id); + status = H5Oget_info_by_name2((hid_t)loc_id, lName, &infobuf, (unsigned)fields, (hid_t)access_id); UNPIN_JAVA_STRING(name, lName); @@ -237,12 +237,12 @@ Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1name /* * Class: hdf_hdf5lib_H5 * Method: H5Oget_info_by_idx - * Signature: (JLjava/lang/String;IIJJ)Lhdf/hdf5lib/structs/H5O_info_t; + * Signature: (JLjava/lang/String;IIJIJ)Lhdf/hdf5lib/structs/H5O_info_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1idx (JNIEnv *env, jclass clss, jlong loc_id, - jstring name, jint index_field, jint order, jlong link_n, jlong access_id) + jstring name, jint index_field, jint order, jlong link_n, jint fields, jlong access_id) { const char *lName; herr_t status; @@ -255,7 +255,7 @@ Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1idx PIN_JAVA_STRING(name, lName); if (lName != NULL) { - status = H5Oget_info_by_idx((hid_t)loc_id, lName, (H5_index_t)index_field, (H5_iter_order_t)order, (hsize_t)link_n, &infobuf, (hid_t)access_id); + status = H5Oget_info_by_idx2((hid_t)loc_id, lName, (H5_index_t)index_field, (H5_iter_order_t)order, (hsize_t)link_n, &infobuf, (unsigned)fields, (hid_t)access_id); UNPIN_JAVA_STRING(name, lName); @@ -372,41 +372,58 @@ H5O_iterate_cb constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(IIIIJJJJJJ)V"); if (constructor != 0) { hdrinfobuf = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - - args[0].j = (jlong)info->meta_size.obj.index_size; - args[1].j = (jlong)info->meta_size.obj.heap_size; - // get a reference to the H5_ih_info_t class - cls = CBENVPTR->FindClass(CBENVPAR "hdf/hdf5lib/structs/H5_ih_info_t"); - if (cls != 0) { - // get a reference to the constructor; the name is <init> - constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(JJ)V"); - if (constructor != 0) { - ihinfobuf1 = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - args[0].j = (jlong)info->meta_size.attr.index_size; - args[1].j = (jlong)info->meta_size.attr.heap_size; - ihinfobuf2 = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - - args[0].j = (jlong)info->fileno; - args[1].j = (jlong)info->addr; - args[2].i = info->type; - args[3].i = (jint)info->rc; - args[4].j = (jlong)info->num_attrs; - args[5].j = info->atime; - args[6].j = info->mtime; - args[7].j = info->ctime; - args[8].j = info->btime; - args[9].l = hdrinfobuf; - args[10].l = ihinfobuf1; - args[11].l = ihinfobuf2; - // get a reference to the H5O_info_t class - cls = CBENVPTR->FindClass(CBENVPAR "hdf/hdf5lib/structs/H5O_info_t"); - if (cls != 0) { - // get a reference to the constructor; the name is <init> - constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(JJIIJJJJJLhdf/hdf5lib/structs/H5O_hdr_info_t;Lhdf/hdf5lib/structs/H5_ih_info_t;Lhdf/hdf5lib/structs/H5_ih_info_t;)V"); - if (constructor != 0) { - cb_info_t = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); - - status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, g_id, str, cb_info_t, op_data); + if (hdrinfobuf == NULL) { + printf("H5O_iterate_cb ERROR: hdf/hdf5lib/structs/H5O_hdr_info_t: Creation failed\n"); + } + else { + args[0].j = (jlong)info->meta_size.obj.index_size; + args[1].j = (jlong)info->meta_size.obj.heap_size; + // get a reference to the H5_ih_info_t class + cls = CBENVPTR->FindClass(CBENVPAR "hdf/hdf5lib/structs/H5_ih_info_t"); + if (cls != 0) { + // get a reference to the constructor; the name is <init> + constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(JJ)V"); + if (constructor != 0) { + ihinfobuf1 = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); + if (ihinfobuf1 == NULL) { + printf("H5O_iterate_cb ERROR: hdf/hdf5lib/structs/H5_ih_info_t: Creation failed\n"); + } + else { + args[0].j = (jlong)info->meta_size.attr.index_size; + args[1].j = (jlong)info->meta_size.attr.heap_size; + ihinfobuf2 = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); + if (ihinfobuf2 == NULL) { + printf("H5O_iterate_cb ERROR: hdf/hdf5lib/structs/H5_ih_info_t: Creation failed\n"); + } + else { + args[0].j = (jlong)info->fileno; + args[1].j = (jlong)info->addr; + args[2].i = info->type; + args[3].i = (jint)info->rc; + args[4].j = (jlong)info->num_attrs; + args[5].j = info->atime; + args[6].j = info->mtime; + args[7].j = info->ctime; + args[8].j = info->btime; + args[9].l = hdrinfobuf; + args[10].l = ihinfobuf1; + args[11].l = ihinfobuf2; + // get a reference to the H5O_info_t class + cls = CBENVPTR->FindClass(CBENVPAR "hdf/hdf5lib/structs/H5O_info_t"); + if (cls != 0) { + // get a reference to the constructor; the name is <init> + constructor = CBENVPTR->GetMethodID(CBENVPAR cls, "<init>", "(JJIIJJJJJLhdf/hdf5lib/structs/H5O_hdr_info_t;Lhdf/hdf5lib/structs/H5_ih_info_t;Lhdf/hdf5lib/structs/H5_ih_info_t;)V"); + if (constructor != 0) { + cb_info_t = CBENVPTR->NewObjectA(CBENVPAR cls, constructor, args); + if (cb_info_t == NULL) { + printf("H5O_iterate_cb ERROR: hdf/hdf5lib/structs/H5O_info_t: Creation failed\n"); + } + else { + status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, g_id, str, cb_info_t, op_data); + } + } + } + } } } } @@ -423,12 +440,12 @@ H5O_iterate_cb /* * Class: hdf_hdf5lib_H5 * Method: H5Ovisit - * Signature: (JIILjava/lang/Object;Ljava/lang/Object;)I + * Signature: (JIILjava/lang/Object;Ljava/lang/Object;I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Ovisit (JNIEnv *env, jclass clss, jlong grp_id, jint idx_type, jint order, - jobject callback_op, jobject op_data) + jobject callback_op, jobject op_data, jint fields) { herr_t status = -1; @@ -442,7 +459,7 @@ Java_hdf_hdf5lib_H5_H5Ovisit h5nullArgument(env, "H5Ovisit: callback_op is NULL"); } /* end if */ else { - status = H5Ovisit((hid_t)grp_id, (H5_index_t)idx_type, (H5_iter_order_t)order, (H5O_iterate_t)H5O_iterate_cb, (void*)op_data); + status = H5Ovisit2((hid_t)grp_id, (H5_index_t)idx_type, (H5_iter_order_t)order, (H5O_iterate_t)H5O_iterate_cb, (void*)op_data, (unsigned)fields); if (status < 0) h5libraryError(env); @@ -454,12 +471,12 @@ Java_hdf_hdf5lib_H5_H5Ovisit /* * Class: hdf_hdf5lib_H5 * Method: H5Ovisit_by_name - * Signature: (JLjava/lang/String;IILjava/lang/Object;Ljava/lang/Object;J)I + * Signature: (JLjava/lang/String;IILjava/lang/Object;Ljava/lang/Object;IJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Ovisit_1by_1name (JNIEnv *env, jclass clss, jlong grp_id, jstring name, jint idx_type, jint order, - jobject callback_op, jobject op_data, jlong access_id) + jobject callback_op, jobject op_data, jint fields, jlong access_id) { herr_t status = -1; const char *lName; @@ -478,7 +495,7 @@ Java_hdf_hdf5lib_H5_H5Ovisit_1by_1name else { PIN_JAVA_STRING(name, lName); if (lName != NULL) { - status = H5Ovisit_by_name((hid_t)grp_id, lName, (H5_index_t)idx_type, (H5_iter_order_t)order, (H5O_iterate_t)H5O_iterate_cb, (void*)op_data, (hid_t)access_id); + status = H5Ovisit_by_name2((hid_t)grp_id, lName, (H5_index_t)idx_type, (H5_iter_order_t)order, (H5O_iterate_t)H5O_iterate_cb, (void*)op_data, (unsigned)fields, (hid_t)access_id); UNPIN_JAVA_STRING(name, lName); diff --git a/java/src/jni/h5oImp.h b/java/src/jni/h5oImp.h index 224f298..cb8c776 100644 --- a/java/src/jni/h5oImp.h +++ b/java/src/jni/h5oImp.h @@ -52,29 +52,29 @@ Java_hdf_hdf5lib_H5_H5Ocopy /* * Class: hdf_hdf5lib_H5 * Method: H5Oget_info - * Signature: (J)Lhdf/hdf5lib/structs/H5O_info_t; + * Signature: (JI)Lhdf/hdf5lib/structs/H5O_info_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Oget_1info -(JNIEnv*, jclass, jlong); +(JNIEnv*, jclass, jlong, jint fields); /* * Class: hdf_hdf5lib_H5 * Method: H5Oget_info_by_name - * Signature: (JLjava/lang/String;J)Lhdf/hdf5lib/structs/H5O_info_t; + * Signature: (JLjava/lang/String;IJ)Lhdf/hdf5lib/structs/H5O_info_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1name -(JNIEnv*, jclass, jlong, jstring, jlong); +(JNIEnv*, jclass, jlong, jstring, jint fields, jlong); /* * Class: hdf_hdf5lib_H5 * Method: H5Oget_info_by_idx - * Signature: (JLjava/lang/String;IIJJ)Lhdf/hdf5lib/structs/H5O_info_t; + * Signature: (JLjava/lang/String;IIJIJ)Lhdf/hdf5lib/structs/H5O_info_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Oget_1info_1by_1idx -(JNIEnv*, jclass, jlong, jstring, jint, jint, jlong, jlong); +(JNIEnv*, jclass, jlong, jstring, jint, jint, jlong, jint fields, jlong); /* * Class: hdf_hdf5lib_H5 @@ -88,20 +88,20 @@ Java_hdf_hdf5lib_H5_H5Olink /* * Class: hdf_hdf5lib_H5 * Method: H5Ovisit - * Signature: (JIILjava/lang/Object;Ljava/lang/Object;)I + * Signature: (JIILjava/lang/Object;Ljava/lang/Object;I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Ovisit - (JNIEnv*, jclass, jlong, jint, jint, jobject, jobject); + (JNIEnv*, jclass, jlong, jint, jint, jobject, jobject, jint); /* * Class: hdf_hdf5lib_H5 * Method: H5Ovisit_by_name - * Signature: (JLjava/lang/String;IILjava/lang/Object;Ljava/lang/Object;J)I + * Signature: (JLjava/lang/String;IILjava/lang/Object;Ljava/lang/Object;IJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Ovisit_1by_1name - (JNIEnv*, jclass, jlong, jstring, jint, jint, jobject, jobject, jlong); + (JNIEnv*, jclass, jlong, jstring, jint, jint, jobject, jobject, jint, jlong); /* * Class: hdf_hdf5lib_H5 diff --git a/java/src/jni/h5pImp.c b/java/src/jni/h5pImp.c index 49cfeb9..3ff7436 100644 --- a/java/src/jni/h5pImp.c +++ b/java/src/jni/h5pImp.c @@ -5204,10 +5204,10 @@ Java_hdf_hdf5lib_H5_H5Pset_1append_1flush visit_callback = callback_op; if (op_data == NULL) { - h5nullArgument(env, "H5Ovisit: op_data is NULL"); + h5nullArgument(env, "H5Pset_append_flush: op_data is NULL"); } /* end if */ else if (callback_op == NULL) { - h5nullArgument(env, "H5Ovisit: callback_op is NULL"); + h5nullArgument(env, "H5Pset_append_flush: callback_op is NULL"); } /* end if */ else { status = H5Pset_append_flush((hid_t)plist_id, (unsigned)ndims, (const hsize_t*)boundary, (H5D_append_cb_t)H5D_append_cb, (void*)op_data); diff --git a/java/src/jni/h5util.c b/java/src/jni/h5util.c index fdabd76..33dca7f 100644 --- a/java/src/jni/h5util.c +++ b/java/src/jni/h5util.c @@ -21,6 +21,7 @@ extern "C" { #endif /* __cplusplus */ +#include <jni.h> #include <stdio.h> #include <string.h> #include <stdlib.h> @@ -152,6 +153,513 @@ h5str_append return HDstrcat(str->s, cstr); } /* end h5str_append */ +/** print value of a vlen data point into string. + Return Value: + On success, the total number of characters printed is returned. + On error, a negative number is returned. + */ +size_t +h5str_vlconvert + (char *str, hid_t container, hid_t tid, hvl_t *ptr, int expand_data) +{ + unsigned char tmp_uchar = 0; + char tmp_char = 0; + unsigned short tmp_ushort = 0; + short tmp_short = 0; + unsigned int tmp_uint = 0; + int tmp_int = 0; + unsigned long tmp_ulong = 0; + long tmp_long = 0; + unsigned long long tmp_ullong = 0; + long long tmp_llong = 0; + float tmp_float = 0.0; + double tmp_double = 0.0; + long double tmp_ldouble = 0.0; + static char fmt_llong[8], fmt_ullong[8]; + + hid_t mtid = -1; + size_t offset; + size_t nll; + char *this_str; + size_t this_strlen; + int n; + H5T_class_t tclass = H5Tget_class(tid); + size_t size = H5Tget_size(tid); + H5T_sign_t nsign = H5Tget_sign(tid); + int bdata_print = 0; + + if (!str || !ptr) + return 0; + + this_str = NULL; + this_strlen = 0; + + switch (tclass) { + case H5T_COMPOUND: + { + unsigned i; + n = H5Tget_nmembers(tid); + + /* remove compound indicators */ + if (str[0] == ' ') + str++; + if (str[0] == '{') + str++; + + ptr->p = HDcalloc((size_t)1, size); + ptr->len = size; + for (i = 0; i < n; i++) { + offset = H5Tget_member_offset(tid, i); + mtid = H5Tget_member_type(tid, i); + str += offset; + h5str_convert(&str, container, mtid, ptr, 0, expand_data); + /* remove compound indicators */ + if (str[0] == ',') + str++; + if (str[0] == ' ') + str++; + H5Tclose(mtid); + } + /* remove compound indicators */ + if (str[0] == '}') + str++; + if (str[0] == ' ') + str++; + } + break; + case H5T_ARRAY: + { + int rank = 0; + hsize_t i, dims[H5S_MAX_RANK], total_elmts; + + /* remove array indicators */ + if (str[0] == '[') + str++; + if (str[0] == ' ') + str++; + + mtid = H5Tget_super(tid); + size = H5Tget_size(mtid); + rank = H5Tget_array_ndims(tid); + + H5Tget_array_dims2(tid, dims); + + total_elmts = 1; + for (i = 0; i < rank; i++) + total_elmts *= dims[i]; + + ptr->p = HDcalloc((size_t)total_elmts, size); + ptr->len = total_elmts; + h5str_convert(&str, container, mtid, ptr, 0, expand_data); + H5Tclose(mtid); + /* remove array indicators */ + if (str[0] == ' ') + str++; + if (str[0] == ']') + str++; + if (str[0] == ' ') + str++; + } + break; + default: + ptr->len = size; + ptr->p = HDcalloc(1, size); + this_strlen = h5str_convert(&str, container, tid, ptr, 0, expand_data); + break; + } /* end switch */ + + return this_strlen; +} /* end h5str_vlconvert */ + +/** print value of a data point into string. + Return Value: + On success, the total number of characters printed is returned. + On error, a negative number is returned. + */ +size_t +h5str_convert + (char **str, hid_t container, hid_t tid, hvl_t *ptr, int ptroffset, int expand_data) +{ + unsigned char tmp_uchar = 0; + char tmp_char = 0; + unsigned short tmp_ushort = 0; + short tmp_short = 0; + unsigned int tmp_uint = 0; + int tmp_int = 0; + unsigned long tmp_ulong = 0; + long tmp_long = 0; + unsigned long long tmp_ullong = 0; + long long tmp_llong = 0; + float tmp_float = 0.0; + double tmp_double = 0.0; + long double tmp_ldouble = 0.0; + static char fmt_llong[8], fmt_ullong[8]; + const char delimiter[] = " ,}]"; + + char *token; + hid_t mtid = -1; + size_t offset; + size_t nll; + char *this_str = *str; + size_t this_strlen; + int n; + char *cptr = ((char*) ((hvl_t *) ptr)->p) + ptroffset; + unsigned char *ucptr = ((unsigned char*) ((hvl_t *) ptr)->p) + ptroffset; + H5T_class_t tclass = H5Tget_class(tid); + size_t size = H5Tget_size(tid); + H5T_sign_t nsign = H5Tget_sign(tid); + int bdata_print = 0; + + if (!str || !ptr) + return 0; + + /* Build default formats for long long types */ + if (!fmt_llong[0]) { + sprintf(fmt_llong, "%%%sd", H5_PRINTF_LL_WIDTH); + sprintf(fmt_ullong, "%%%su", H5_PRINTF_LL_WIDTH); + } /* end if */ + + this_strlen = HDstrlen(this_str); + + switch (tclass) { + case H5T_FLOAT: + token = HDstrtok (this_str, delimiter); + if (sizeof(float) == size) { + /* if (H5Tequal(tid, H5T_NATIVE_FLOAT)) */ + tmp_float = 0; + sscanf(token, "%f", &tmp_float); + HDmemcpy(cptr, &tmp_float, sizeof(float)); + } + else if (sizeof(double) == size) { + /* if (H5Tequal(tid, H5T_NATIVE_DOUBLE)) */ + tmp_double = 0; + sscanf(token, "%%lf", &tmp_double); + HDmemcpy(cptr, &tmp_double, sizeof(double)); + } +#if H5_SIZEOF_LONG_DOUBLE !=0 + else if (sizeof(long double) == size) { + /* if (H5Tequal(tid, H5T_NATIVE_LDOUBLE)) */ + tmp_ldouble = 0; + sscanf(token, "%Lf", &tmp_ldouble); + HDmemcpy(cptr, &tmp_ldouble, sizeof(long double)); + } +#endif + break; + case H5T_STRING: + { + if (this_strlen > 0) { + HDstrncpy(cptr, this_str, size); + } + else { + cptr = NULL; + } + } + break; + case H5T_INTEGER: + token = HDstrtok (this_str, delimiter); + if (sizeof(char) == size) { + if(H5T_SGN_NONE == nsign) { + /* if (H5Tequal(tid, H5T_NATIVE_UCHAR)) */ + tmp_uchar = 0; + sscanf(token, "%hu", &tmp_uchar); + HDmemcpy(cptr, &tmp_uchar, sizeof(unsigned char)); + } + else { + /* if (H5Tequal(tid, H5T_NATIVE_SCHAR)) */ + tmp_char = 0; + sscanf(token, "%hd", &tmp_char); + HDmemcpy(cptr, &tmp_char, sizeof(char)); + } + } + else if (sizeof(int) == size) { + if(H5T_SGN_NONE == nsign) { + /* if (H5Tequal(tid, H5T_NATIVE_UINT)) */ + tmp_uint = 0; + sscanf(token, "%u", &tmp_uint); + HDmemcpy(cptr, &tmp_uint, sizeof(unsigned int)); + } + else { + /* if (H5Tequal(tid, H5T_NATIVE_INT)) */ + tmp_int = 0; + sscanf(token, "%d", &tmp_int); + HDmemcpy(cptr, &tmp_int, sizeof(int)); + } + } + else if (sizeof(short) == size) { + if(H5T_SGN_NONE == nsign) { + /* if (H5Tequal(tid, H5T_NATIVE_USHORT)) */ + tmp_ushort = 0; + sscanf(token, "%u", &tmp_ushort); + HDmemcpy(&tmp_ushort, cptr, sizeof(unsigned short)); + } + else { + /* if (H5Tequal(tid, H5T_NATIVE_SHORT)) */ + tmp_short = 0; + sscanf(token, "%d", &tmp_short); + HDmemcpy(&tmp_short, cptr, sizeof(short)); + } + } + else if (sizeof(long) == size) { + if(H5T_SGN_NONE == nsign) { + /* if (H5Tequal(tid, H5T_NATIVE_ULONG)) */ + tmp_ulong = 0; + sscanf(token, "%lu", &tmp_ulong); + HDmemcpy(cptr, &tmp_ulong, sizeof(unsigned long)); + } + else { + /* if (H5Tequal(tid, H5T_NATIVE_LONG)) */ + tmp_long = 0; + sscanf(token, "%ld", &tmp_long); + HDmemcpy(cptr, &tmp_long, sizeof(long)); + } + } + else if (sizeof(long long) == size) { + if(H5T_SGN_NONE == nsign) { + /* if (H5Tequal(tid, H5T_NATIVE_ULLONG)) */ + tmp_ullong = 0; + sscanf(token, fmt_ullong, &tmp_ullong); + HDmemcpy(cptr, &tmp_ullong, sizeof(unsigned long long)); + } + else { + /* if (H5Tequal(tid, H5T_NATIVE_LLONG)) */ + tmp_llong = 0; + sscanf(token, fmt_llong, &tmp_llong); + HDmemcpy(cptr, &tmp_llong, sizeof(long long)); + } + } + break; + case H5T_COMPOUND: + { + unsigned i; + n = H5Tget_nmembers(tid); + /* remove compound indicators */ + if ((*str)[0] == ' ') + (*str)++; + if ((*str)[0] == '{') + (*str)++; + + for (i = 0; i < n; i++) { + offset = H5Tget_member_offset(tid, i); + mtid = H5Tget_member_type(tid, i); + h5str_convert(str, container, mtid, ptr, offset, expand_data); + /* remove compound indicators */ + if ((*str)[0] == ',') + (*str)++; + if ((*str)[0] == ' ') + (*str)++; + H5Tclose(mtid); + } + /* remove compound indicators */ + if ((*str)[0] == '}') + (*str)++; + if ((*str)[0] == ' ') + (*str)++; + } + break; + case H5T_ENUM: + { + char enum_name[1024]; + void *value; + if (sizeof(char) == size) { + tmp_uchar = 0; + value = &tmp_uchar; + } + else if (sizeof(short) == size) { + tmp_ushort = 0; + value = &tmp_ushort; + } + else if (sizeof(long) == size) { + tmp_ulong = 0; + value = &tmp_ulong; + } + else if (sizeof(long long) == size) { + tmp_ullong = 0; + value = &tmp_ullong; + } + else { + tmp_uint = 0; + value = &tmp_uint; + } + token = HDstrtok (this_str, delimiter); + H5Tenum_valueof(tid, token, value); + HDmemcpy(ucptr, value, size); + } + break; + case H5T_REFERENCE: + /* TODO handle reference writing */ + cptr = NULL; + break; + case H5T_ARRAY: + { + int rank = 0; + hsize_t i, dims[H5S_MAX_RANK], total_elmts; + /* remove array indicators */ + if ((*str)[0] == '[') + (*str)++; + if ((*str)[0] == ' ') + (*str)++; + + mtid = H5Tget_super(tid); + offset = H5Tget_size(mtid); + rank = H5Tget_array_ndims(tid); + + H5Tget_array_dims2(tid, dims); + + total_elmts = 1; + for (i = 0; i < rank; i++) + total_elmts *= dims[i]; + + cptr = HDcalloc((size_t)total_elmts, offset); + for (i = 0; i < total_elmts; i++) { + h5str_convert(str, container, mtid, cptr + (i*offset), offset, expand_data); + /* remove array indicators */ + if ((*str)[0] == ',') + (*str)++; + if ((*str)[0] == ' ') + (*str)++; + } + H5Tclose(mtid); + /* remove array indicators */ + if ((*str)[0] == ' ') + (*str)++; + if ((*str)[0] == ']') + (*str)++; + if ((*str)[0] == ' ') + (*str)++; + } + break; + case H5T_VLEN: + { + unsigned int i; + mtid = H5Tget_super(tid); + offset = H5Tget_size(mtid); + + /* remove vlen indicators */ + if ((*str)[0] == '{') + (*str)++; + cptr = HDcalloc(offset, sizeof(hvl_t)); + for (i = 0; (i*offset) < (int)size; i++) { + h5str_convert(str, container, mtid, cptr + (i*offset), offset, expand_data); + /* remove vlen indicators */ + if ((*str)[0] == ',') + (*str)++; + if ((*str)[0] == ' ') + (*str)++; + if ((*str)[0] == '}') + break; + } + H5Tclose(mtid); + /* remove vlen indicators */ + if ((*str)[0] == '}') + (*str)++; + } + break; + + default: + { + /* All other types get copied raw */ + HDmemcpy(ucptr, this_str, size); + } + break; + } /* end switch */ + + return this_strlen; +} /* end h5str_convert */ + +/** print value of a vlen data point into string. + Return Value: + On success, the total number of characters printed is returned. + On error, a negative number is returned. + */ +size_t +h5str_vlsprintf + (h5str_t *str, hid_t container, hid_t tid, hvl_t *ptr, int expand_data) +{ + unsigned char tmp_uchar = 0; + char tmp_char = 0; + unsigned short tmp_ushort = 0; + short tmp_short = 0; + unsigned int tmp_uint = 0; + int tmp_int = 0; + unsigned long tmp_ulong = 0; + long tmp_long = 0; + unsigned long long tmp_ullong = 0; + long long tmp_llong = 0; + float tmp_float = 0.0; + double tmp_double = 0.0; + long double tmp_ldouble = 0.0; + static char fmt_llong[8], fmt_ullong[8]; + + hid_t mtid = -1; + size_t offset; + size_t nll; + char *this_str; + size_t this_strlen; + int n; + H5T_class_t tclass = H5Tget_class(tid); + size_t size = H5Tget_size(tid); + H5T_sign_t nsign = H5Tget_sign(tid); + int bdata_print = 0; + + if (!str || !ptr) + return 0; + + /* Build default formats for long long types */ + if (!fmt_llong[0]) { + sprintf(fmt_llong, "%%%sd", H5_PRINTF_LL_WIDTH); + sprintf(fmt_ullong, "%%%su", H5_PRINTF_LL_WIDTH); + } /* end if */ + + this_str = NULL; + this_strlen = 0; + + switch (tclass) { + case H5T_COMPOUND: + { + unsigned i; + n = H5Tget_nmembers(tid); + h5str_append(str, " {"); + + for (i = 0; i < n; i++) { + offset = H5Tget_member_offset(tid, i); + mtid = H5Tget_member_type(tid, i); + h5str_sprintf(str, container, mtid, ((char *) (ptr->p)) + offset, ptr->len, expand_data); + if ((i + 1) < n) + h5str_append(str, ", "); + H5Tclose(mtid); + } + h5str_append(str, "} "); + } + break; + case H5T_ARRAY: + { + int rank = 0; + hsize_t i, dims[H5S_MAX_RANK], total_elmts; + h5str_append(str, "[ "); + + mtid = H5Tget_super(tid); + size = H5Tget_size(mtid); + rank = H5Tget_array_ndims(tid); + + H5Tget_array_dims2(tid, dims); + + total_elmts = 1; + for (i = 0; i < rank; i++) + total_elmts *= dims[i]; + + h5str_sprintf(str, container, mtid, ((char *) (ptr->p)), ptr->len, expand_data); + H5Tclose(mtid); + h5str_append(str, " ] "); + } + break; + default: + this_strlen = h5str_sprintf(str, container, tid, ((char *) (ptr->p)), ptr->len, expand_data); + break; + } /* end switch */ + + return this_strlen; +} /* end h5str_vlsprintf */ + /** print value of a data point into string. Return Value: On success, the total number of characters printed is returned. @@ -159,7 +667,7 @@ h5str_append */ size_t h5str_sprintf - (h5str_t *str, hid_t container, hid_t tid, void *ptr, int expand_data) + (h5str_t *str, hid_t container, hid_t tid, void *ptr, int ptr_len, int expand_data) { unsigned char tmp_uchar = 0; char tmp_char = 0; @@ -182,9 +690,8 @@ h5str_sprintf char *this_str; size_t this_strlen; int n; - hvl_t *vlptr; - char *cptr = (char*) ptr; - unsigned char *ucptr = (unsigned char*) ptr; + char *cptr = (char*) (ptr); + unsigned char *ucptr = (unsigned char*) (ptr); H5T_class_t tclass = H5Tget_class(tid); size_t size = H5Tget_size(tid); H5T_sign_t nsign = H5Tget_sign(tid); @@ -206,20 +713,20 @@ h5str_sprintf case H5T_FLOAT: if (sizeof(float) == size) { /* if (H5Tequal(tid, H5T_NATIVE_FLOAT)) */ - HDmemcpy(&tmp_float, ptr, sizeof(float)); + HDmemcpy(&tmp_float, cptr, sizeof(float)); this_str = (char*)HDmalloc(25); sprintf(this_str, "%g", tmp_float); } else if (sizeof(double) == size) { /* if (H5Tequal(tid, H5T_NATIVE_DOUBLE)) */ - HDmemcpy(&tmp_double, ptr, sizeof(double)); + HDmemcpy(&tmp_double, cptr, sizeof(double)); this_str = (char*)HDmalloc(25); sprintf(this_str, "%g", tmp_double); } #if H5_SIZEOF_LONG_DOUBLE !=0 else if (sizeof(long double) == size) { /* if (H5Tequal(tid, H5T_NATIVE_LDOUBLE)) */ - HDmemcpy(&tmp_ldouble, ptr, sizeof(long double)); + HDmemcpy(&tmp_ldouble, cptr, sizeof(long double)); this_str = (char*)HDmalloc(27); sprintf(this_str, "%Lf", tmp_ldouble); } @@ -256,13 +763,13 @@ h5str_sprintf if (sizeof(char) == size) { if(H5T_SGN_NONE == nsign) { /* if (H5Tequal(tid, H5T_NATIVE_UCHAR)) */ - HDmemcpy(&tmp_uchar, ptr, sizeof(unsigned char)); + HDmemcpy(&tmp_uchar, cptr, sizeof(unsigned char)); this_str = (char*)HDmalloc(7); sprintf(this_str, "%u", tmp_uchar); } else { /* if (H5Tequal(tid, H5T_NATIVE_SCHAR)) */ - HDmemcpy(&tmp_char, ptr, sizeof(char)); + HDmemcpy(&tmp_char, cptr, sizeof(char)); this_str = (char*)HDmalloc(7); sprintf(this_str, "%hhd", tmp_char); } @@ -270,13 +777,13 @@ h5str_sprintf else if (sizeof(int) == size) { if(H5T_SGN_NONE == nsign) { /* if (H5Tequal(tid, H5T_NATIVE_UINT)) */ - HDmemcpy(&tmp_uint, ptr, sizeof(unsigned int)); + HDmemcpy(&tmp_uint, cptr, sizeof(unsigned int)); this_str = (char*)HDmalloc(14); sprintf(this_str, "%u", tmp_uint); } else { /* if (H5Tequal(tid, H5T_NATIVE_INT)) */ - HDmemcpy(&tmp_int, ptr, sizeof(int)); + HDmemcpy(&tmp_int, cptr, sizeof(int)); this_str = (char*)HDmalloc(14); sprintf(this_str, "%d", tmp_int); } @@ -284,13 +791,13 @@ h5str_sprintf else if (sizeof(short) == size) { if(H5T_SGN_NONE == nsign) { /* if (H5Tequal(tid, H5T_NATIVE_USHORT)) */ - HDmemcpy(&tmp_ushort, ptr, sizeof(unsigned short)); + HDmemcpy(&tmp_ushort, cptr, sizeof(unsigned short)); this_str = (char*)HDmalloc(9); sprintf(this_str, "%u", tmp_ushort); } else { /* if (H5Tequal(tid, H5T_NATIVE_SHORT)) */ - HDmemcpy(&tmp_short, ptr, sizeof(short)); + HDmemcpy(&tmp_short, cptr, sizeof(short)); this_str = (char*)HDmalloc(9); sprintf(this_str, "%d", tmp_short); } @@ -298,13 +805,13 @@ h5str_sprintf else if (sizeof(long) == size) { if(H5T_SGN_NONE == nsign) { /* if (H5Tequal(tid, H5T_NATIVE_ULONG)) */ - HDmemcpy(&tmp_ulong, ptr, sizeof(unsigned long)); + HDmemcpy(&tmp_ulong, cptr, sizeof(unsigned long)); this_str = (char*)HDmalloc(23); sprintf(this_str, "%lu", tmp_ulong); } else { /* if (H5Tequal(tid, H5T_NATIVE_LONG)) */ - HDmemcpy(&tmp_long, ptr, sizeof(long)); + HDmemcpy(&tmp_long, cptr, sizeof(long)); this_str = (char*)HDmalloc(23); sprintf(this_str, "%ld", tmp_long); } @@ -312,13 +819,13 @@ h5str_sprintf else if (sizeof(long long) == size) { if(H5T_SGN_NONE == nsign) { /* if (H5Tequal(tid, H5T_NATIVE_ULLONG)) */ - HDmemcpy(&tmp_ullong, ptr, sizeof(unsigned long long)); + HDmemcpy(&tmp_ullong, cptr, sizeof(unsigned long long)); this_str = (char*)HDmalloc(25); sprintf(this_str, fmt_ullong, tmp_ullong); } else { /* if (H5Tequal(tid, H5T_NATIVE_LLONG)) */ - HDmemcpy(&tmp_llong, ptr, sizeof(long long)); + HDmemcpy(&tmp_llong, cptr, sizeof(long long)); this_str = (char*)HDmalloc(25); sprintf(this_str, fmt_llong, tmp_llong); } @@ -333,8 +840,8 @@ h5str_sprintf for (i = 0; i < n; i++) { offset = H5Tget_member_offset(tid, i); mtid = H5Tget_member_type(tid, i); - h5str_sprintf(str, container, mtid, cptr + offset, expand_data); - if (i < n - 1) + h5str_sprintf(str, container, mtid, cptr + offset, ptr_len, expand_data); + if ((i + 1) < n) h5str_append(str, ", "); H5Tclose(mtid); } @@ -344,7 +851,7 @@ h5str_sprintf case H5T_ENUM: { char enum_name[1024]; - if (H5Tenum_nameof(tid, ptr, enum_name, sizeof enum_name) >= 0) { + if (H5Tenum_nameof(tid, cptr, enum_name, sizeof enum_name) >= 0) { h5str_append(str, enum_name); } else { @@ -363,7 +870,7 @@ h5str_sprintf } break; case H5T_REFERENCE: - if (h5str_is_zero(ptr, size)) { + if (h5str_is_zero(cptr, size)) { h5str_append(str, "NULL"); } else { @@ -379,9 +886,9 @@ h5str_sprintf H5S_sel_type region_type; /* get name of the dataset the region reference points to using H5Rget_name */ - region_obj = H5Rdereference2(container, H5P_DEFAULT, H5R_DATASET_REGION, ptr); + region_obj = H5Rdereference2(container, H5P_DEFAULT, H5R_DATASET_REGION, cptr); if (region_obj >= 0) { - region = H5Rget_region(container, H5R_DATASET_REGION, ptr); + region = H5Rget_region(container, H5R_DATASET_REGION, cptr); if (region >= 0) { if(expand_data) { region_type = H5Sget_select_type(region); @@ -393,7 +900,7 @@ h5str_sprintf } } else { - if(H5Rget_name(region_obj, H5R_DATASET_REGION, ptr, (char*)ref_name, 1024) >= 0) { + if(H5Rget_name(region_obj, H5R_DATASET_REGION, cptr, (char*)ref_name, 1024) >= 0) { h5str_append(str, ref_name); } @@ -424,8 +931,8 @@ h5str_sprintf hid_t obj; this_str = (char*)HDmalloc(64); - obj = H5Rdereference2(container, H5P_DEFAULT, H5R_OBJECT, ptr); - H5Oget_info(obj, &oi); + obj = H5Rdereference2(container, H5P_DEFAULT, H5R_OBJECT, cptr); + H5Oget_info2(obj, &oi, H5O_INFO_ALL); /* Print object data and close object */ sprintf(this_str, "%u-%lu", (unsigned) oi.type, oi.addr); @@ -450,31 +957,30 @@ h5str_sprintf total_elmts *= dims[i]; for (i = 0; i < total_elmts; i++) { - h5str_sprintf(str, container, mtid, cptr + i * size, expand_data); - if (i < total_elmts - 1) + h5str_sprintf(str, container, mtid, cptr + i * size, ptr_len, expand_data); + if ((i + 1) < total_elmts) h5str_append(str, ", "); } H5Tclose(mtid); - h5str_append(str, "] "); + h5str_append(str, " ] "); } break; case H5T_VLEN: - { - unsigned int i; - mtid = H5Tget_super(tid); - size = H5Tget_size(mtid); - - vlptr = (hvl_t *) cptr; - - nll = vlptr->len; - for (i = 0; i < (int)nll; i++) { - h5str_sprintf(str, container, mtid, ((char *) (vlptr->p)) + i * size, expand_data); - if (i < (int)nll - 1) - h5str_append(str, ", "); + { + unsigned int i; + mtid = H5Tget_super(tid); + size = H5Tget_size(mtid); + + h5str_append(str, "{"); + for (i = 0; i < (int)ptr_len; i++) { + h5str_sprintf(str, container, mtid, cptr + i * size, ptr_len, expand_data); + if ((i + 1) < (int)ptr_len) + h5str_append(str, ", "); + } + H5Tclose(mtid); + h5str_append(str, "}"); } - H5Tclose(mtid); - } - break; + break; default: { @@ -563,7 +1069,7 @@ h5str_print_region_data_blocks if(H5Dread(region_id, type_id, mem_space, sid1, H5P_DEFAULT, region_buf) >= 0) { if(H5Sget_simple_extent_dims(mem_space, total_size, NULL) >= 0) { for (numindex = 0; numindex < numelem; numindex++) { - h5str_sprintf(str, region_id, type_id, ((char*)region_buf + numindex * type_size), 1); + h5str_sprintf(str, region_id, type_id, ((char*)region_buf + numindex * type_size), 0, 1); if (numindex + 1 < numelem) h5str_append(str, ", "); @@ -763,7 +1269,7 @@ h5str_print_region_data_points for (jndx = 0; jndx < npoints; jndx++) { if(H5Sget_simple_extent_dims(mem_space, total_size, NULL) >= 0) { - h5str_sprintf(str, region_id, type_id, ((char*)region_buf + jndx * type_size), 1); + h5str_sprintf(str, region_id, type_id, ((char*)region_buf + jndx * type_size), 0, 1); if (jndx + 1 < npoints) h5str_append(str, ", "); @@ -1883,7 +2389,7 @@ h5tools_dump_simple_data /* Render the data element*/ h5str_new(&buffer, 32 * size); - bytes_in = h5str_sprintf(&buffer, container, type, memref, 1); + bytes_in = h5str_sprintf(&buffer, container, type, memref, 0, 1); if(i > 0) { HDfprintf(stream, ", "); if (line_count >= H5TOOLS_TEXT_BLOCK) { @@ -1909,116 +2415,6 @@ h5tools_dump_simple_data /* * Class: hdf_hdf5lib_H5 - * Method: H5AwriteVL - * Signature: (JJ[Ljava/lang/String;)I - */ -JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_H5_H5AwriteVL - (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf) -{ - herr_t status = -1; - char **wdata; - jsize size; - jint i; - - size = ENVPTR->GetArrayLength(ENVPAR (jarray) buf); - - wdata = (char**)HDcalloc((size_t)size + 1, sizeof(char*)); - if (!wdata) { - h5JNIFatalError(env, "H5AwriteVL: cannot allocate buffer"); - } /* end if */ - else { - HDmemset(wdata, 0, (size_t)size * sizeof(char*)); - for (i = 0; i < size; ++i) { - jstring obj = (jstring) ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray) buf, i); - if (obj != 0) { - jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj); - const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0); - - if (utf8) { - wdata[i] = (char*)HDmalloc((size_t)length + 1); - if (wdata[i]) { - HDmemset(wdata[i], 0, ((size_t)length + 1)); - HDstrncpy(wdata[i], utf8, (size_t)length); - } /* end if */ - } /* end if */ - - ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8); - ENVPTR->DeleteLocalRef(ENVPAR obj); - } /* end if */ - } /* end for (i = 0; i < size; ++i) */ - - status = H5Awrite((hid_t)attr_id, (hid_t)mem_type_id, wdata); - - for (i = 0; i < size; i++) { - if(wdata[i]) { - HDfree(wdata[i]); - } /* end if */ - } /* end for */ - HDfree(wdata); - - if (status < 0) - h5libraryError(env); - } /* end else */ - - return (jint)status; -} /* end Java_hdf_hdf5lib_H5_H5AwriteVL */ - -/* - * Class: hdf_hdf5lib_H5 - * Method: H5AreadVL - * Signature: (JJ[Ljava/lang/String;)I - */ -JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_H5_H5AreadVL - (JNIEnv *env, jclass clss, jlong attr_id, jlong mem_type_id, jobjectArray buf) -{ - herr_t status = -1; - jstring jstr; - char **strs; - int i, n; - hid_t sid; - hsize_t dims[H5S_MAX_RANK]; - - n = ENVPTR->GetArrayLength(ENVPAR buf); - - strs =(char **)HDmalloc((size_t)n * sizeof(char *)); - if (strs == NULL) { - h5JNIFatalError( env, "H5AreadVL: failed to allocate buff for read variable length strings"); - } /* end if */ - else { - status = H5Aread(attr_id, mem_type_id, strs); - if (status < 0) { - dims[0] = (hsize_t)n; - sid = H5Screate_simple(1, dims, NULL); - H5Dvlen_reclaim(mem_type_id, sid, H5P_DEFAULT, strs); - H5Sclose(sid); - HDfree(strs); - h5JNIFatalError(env, "H5AreadVL: failed to read variable length strings"); - } /* end if */ - else { - for (i=0; i<n; i++) { - jstr = ENVPTR->NewStringUTF(ENVPAR strs[i]); - ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); - HDfree (strs[i]); - } /* end for */ - - /* - for repeatedly reading an attribute with a large number of strs (e.g., 1,000,000 strings, - H5Dvlen_reclaim() may crash on Windows because the Java GC will not be able to collect - free space in time. Instead, use "free(strs[i])" to free individual strings - after it is done. - H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, strs); - */ - - HDfree(strs); - } /* end else */ - } /* end else */ - return status; -} /* end Java_hdf_hdf5lib_H5_H5AreadVL */ - -/* - * Class: hdf_hdf5lib_H5 * Method: H5AreadComplex * Signature: (JJ[Ljava/lang/String;)I */ @@ -2059,7 +2455,7 @@ Java_hdf_hdf5lib_H5_H5AreadComplex else { for (i = 0; i < n; i++) { h5str.s[0] = '\0'; - h5str_sprintf(&h5str, attr_id, mem_type_id, rdata + ((size_t)i * size), 0); + h5str_sprintf(&h5str, attr_id, mem_type_id, rdata + ((size_t)i * size), 0, 0); jstr = ENVPTR->NewStringUTF(ENVPAR h5str.s); ENVPTR->SetObjectArrayElement(ENVPAR buf, i, jstr); } /* end for */ @@ -2552,7 +2948,7 @@ obj_info_all info_all_t *datainfo = (info_all_t*)op_data; H5O_info_t object_info; - retVal = H5Oget_info_by_name(loc_id, name, &object_info, H5P_DEFAULT); + retVal = H5Oget_info_by_name2(loc_id, name, &object_info, H5O_INFO_ALL, H5P_DEFAULT); if (retVal < 0) { *(datainfo->otype+datainfo->count) = -1; @@ -2591,7 +2987,7 @@ obj_info_max info_all_t *datainfo = (info_all_t*)op_data; H5O_info_t object_info; - retVal = H5Oget_info(loc_id, &object_info); + retVal = H5Oget_info2(loc_id, &object_info, H5O_INFO_ALL); if (retVal < 0) { *(datainfo->otype+datainfo->count) = -1; *(datainfo->ltype+datainfo->count) = -1; diff --git a/java/src/jni/h5util.h b/java/src/jni/h5util.h index 434a107..23bc424 100644 --- a/java/src/jni/h5util.h +++ b/java/src/jni/h5util.h @@ -39,7 +39,10 @@ extern void h5str_new (h5str_t *str, size_t len); extern void h5str_free (h5str_t *str); extern void h5str_resize (h5str_t *str, size_t new_len); extern char* h5str_append (h5str_t *str, const char* cstr); -extern size_t h5str_sprintf(h5str_t *str, hid_t container, hid_t tid, void *buf, int expand_data); +extern size_t h5str_vlsprintf(h5str_t *str, hid_t container, hid_t tid, hvl_t *buf, int expand_data); +extern size_t h5str_sprintf(h5str_t *str, hid_t container, hid_t tid, void *buf, int ptrlen, int expand_data); +extern size_t h5str_vlsconvert(char *str, hid_t container, hid_t tid, hvl_t *buf, int expand_data); +extern size_t h5str_convert(char **str, hid_t container, hid_t tid, hvl_t *buf, int ptroffset, int expand_data); extern void h5str_array_free(char **strs, size_t len); extern int h5str_dump_simple_dset(FILE *stream, hid_t dset, int binary_order); extern int h5str_dump_region_blocks_data(h5str_t *str, hid_t region, hid_t region_obj); @@ -47,24 +50,6 @@ extern int h5str_dump_region_points_data(h5str_t *str, hid_t region, hid_t r /* * Class: hdf_hdf5lib_H5 - * Method: H5AwriteVL - * Signature: (JJ[Ljava/lang/String;)I - */ -JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_H5_H5AwriteVL - (JNIEnv *, jclass, jlong, jlong, jobjectArray); - -/* - * Class: hdf_hdf5lib_H5 - * Method: H5AreadVL - * Signature: (JJ[Ljava/lang/String;)I - */ -JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_H5_H5AreadVL - (JNIEnv *, jclass, jlong, jlong, jobjectArray); - -/* - * Class: hdf_hdf5lib_H5 * Method: H5AreadComplex * Signature: (JJ[Ljava/lang/String;)I */ diff --git a/java/test/CMakeLists.txt b/java/test/CMakeLists.txt index 6158055..b76f572 100644 --- a/java/test/CMakeLists.txt +++ b/java/test/CMakeLists.txt @@ -1,78 +1,84 @@ cmake_minimum_required (VERSION 3.10) -PROJECT (HDF5_JAVA_TEST Java) +project (HDF5_JAVA_TEST Java) set (CMAKE_VERBOSE_MAKEFILE 1) -INCLUDE_DIRECTORIES ( - ${HDF5_JAVA_JNI_BINARY_DIR} - ${HDF5_JAVA_HDF5_LIB_DIR} -) +set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "${HDF5_JAVA_JNI_BINARY_DIR};${HDF5_JAVA_HDF5_LIB_DIR}") set (HDF5_JAVA_TEST_SOURCES - TestH5.java - TestH5E.java - TestH5Edefault.java - TestH5Eregister.java - TestH5Fparams.java - TestH5Fbasic.java - TestH5F.java - TestH5Fswmr.java - TestH5Gbasic.java - TestH5G.java - TestH5Giterate.java - TestH5Sbasic.java - TestH5S.java - TestH5Tparams.java - TestH5Tbasic.java - TestH5T.java - TestH5Dparams.java - TestH5D.java - TestH5Dplist.java - TestH5Lparams.java - TestH5Lbasic.java - TestH5Lcreate.java - TestH5R.java - TestH5P.java - TestH5PData.java - TestH5Pfapl.java - TestH5Pvirtual.java - TestH5Plist.java - TestH5A.java - TestH5Oparams.java - TestH5Obasic.java - TestH5Ocreate.java - TestH5Ocopy.java - TestH5PL.java - TestH5Z.java - TestAll.java + TestH5 + TestH5Eparams + TestH5Eregister + TestH5Fparams + TestH5Fbasic + TestH5F + TestH5Fswmr + TestH5Gbasic + TestH5G + TestH5Sbasic + TestH5S + TestH5Tparams + TestH5Tbasic + TestH5T + TestH5Dparams + TestH5D + TestH5Dplist + TestH5Lparams + TestH5Lbasic + TestH5Lcreate + TestH5R + TestH5P + TestH5PData + TestH5Pfapl + TestH5Pvirtual + TestH5Plist + TestH5A + TestH5Oparams + TestH5Obasic + TestH5Ocreate + TestH5Ocopy + TestH5PL + TestH5Z ) -file (WRITE ${PROJECT_BINARY_DIR}/Manifest.txt -"Main-Class: test.TestAll -" -) +if (NOT HDF5_ENABLE_DEBUG_APIS) + set (HDF5_JAVA_TEST_SOURCES + ${HDF5_JAVA_TEST_SOURCES} + TestH5E + TestH5Edefault + TestH5Giterate + ) +endif () set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_LIB_DIR}/junit.jar;${HDF5_JAVA_LIB_DIR}/hamcrest-core.jar;${HDF5_JAVA_JARS};${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}") -add_jar (${HDF5_JAVA_TEST_LIB_TARGET} MANIFEST ${PROJECT_BINARY_DIR}/Manifest.txt ${HDF5_JAVA_TEST_SOURCES}) +foreach (test_file ${HDF5_JAVA_TEST_SOURCES}) -get_target_property (${HDF5_JAVA_TEST_LIB_TARGET}_JAR_FILE ${HDF5_JAVA_TEST_LIB_TARGET} JAR_FILE) -#install_jar (${HDF5_JAVA_TEST_LIB_TARGET} ${HJAVA_INSTALL_DATA_DIR}/tests tests) -#get_target_property (${HDF5_JAVA_TEST_LIB_TARGET}_CLASSPATH ${HDF5_JAVA_TEST_LIB_TARGET} CLASSDIR) + file (WRITE ${PROJECT_BINARY_DIR}/${test_file}Manifest.txt + "Main-Class: test.${test_file} +" + ) -add_dependencies (${HDF5_JAVA_TEST_LIB_TARGET} ${HDF5_JAVA_HDF5_LIB_TARGET}) -set_target_properties (${HDF5_JAVA_TEST_LIB_TARGET} PROPERTIES FOLDER test/java) + add_jar (${HDF5_JAVA_TEST_LIB_TARGET}_${test_file} MANIFEST ${PROJECT_BINARY_DIR}/${test_file}Manifest.txt ${test_file}.java) -set (HDF_JAVA_TEST_FILES - JUnit-interface.txt - JUnit-interface.ert -) + get_target_property (${HDF5_JAVA_TEST_LIB_TARGET}_${test_file}_JAR_FILE ${HDF5_JAVA_TEST_LIB_TARGET}_${test_file} JAR_FILE) + #install_jar (${HDF5_JAVA_TEST_LIB_TARGET}_${test_file} ${HJAVA_INSTALL_DATA_DIR}/tests tests) + #get_target_property (${HDF5_JAVA_TEST_LIB_TARGET}_${test_file}_CLASSPATH ${HDF5_JAVA_TEST_LIB_TARGET}_${test_file} CLASSDIR) + + add_dependencies (${HDF5_JAVA_TEST_LIB_TARGET}_${test_file} ${HDF5_JAVA_HDF5_LIB_TARGET}) + set_target_properties (${HDF5_JAVA_TEST_LIB_TARGET}_${test_file} PROPERTIES FOLDER test/java) +endforeach () -foreach (h5_file ${HDF_JAVA_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +foreach (h5_file ${HDF5_JAVA_TEST_SOURCES}) + HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/JUnit-${h5_file}.txt" "${PROJECT_BINARY_DIR}/JUnit-${h5_file}.txt" "${HDF5_JAVA_TEST_LIB_TARGET}_files") endforeach () HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterate.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateL1.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateL2.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateO1.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateO2.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") + add_custom_target(${HDF5_JAVA_TEST_LIB_TARGET}_files ALL COMMENT "Copying files needed by ${HDF5_JAVA_TEST_LIB_TARGET} tests" DEPENDS ${${HDF5_JAVA_TEST_LIB_TARGET}_files_list}) if (WIN32) @@ -81,41 +87,44 @@ else () set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":") endif () -set (CMAKE_JAVA_CLASSPATH ".") -foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH}) - set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}") -endforeach () -set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${HDF5_JAVA_TEST_LIB_TARGET}_JAR_FILE}") -set (testfilter "OK (598 tests)") - - set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=$<TARGET_PROPERTY:${HDF5_JAVA_JNI_LIB_TARGET},OUTPUT_NAME$<$<CONFIG:Debug>:_DEBUG>>;") -add_test ( - NAME JUnit-interface-clearall-objects - COMMAND ${CMAKE_COMMAND} - -E remove - JUnit-interface.out - JUnit-interface.out.err -) +set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=$<TARGET_PROPERTY:${HDF5_JAVA_JNI_LIB_TARGET},OUTPUT_NAME$<$<CONFIG:Debug>:_DEBUG>>;") -add_test ( - NAME JUnit-interface - COMMAND "${CMAKE_COMMAND}" - -D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}" - -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}" - -D "TEST_ARGS:STRING=${CMD_ARGS}-ea;org.junit.runner.JUnitCore" - -D "TEST_PROGRAM=test.TestAll" - -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_OUTPUT_DIRECTORY}" - -D "TEST_FOLDER=${HDF5_BINARY_DIR}/java/test" - -D "TEST_OUTPUT=JUnit-interface.out" -# -D "TEST_LOG_LEVEL=trace" - -D "TEST_EXPECT=0" - -D "SKIP_APPEND=1" - -D "TEST_MASK_ERROR=TRUE" - -D "TEST_FILTER:STRING=${testfilter}" - -D "TEST_REFERENCE=JUnit-interface.txt" - -P "${HDF_RESOURCES_DIR}/jrunTest.cmake" -) -set_tests_properties (JUnit-interface PROPERTIES - ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir2" - DEPENDS "JUnit-interface-clearall-objects" -) +foreach (test_file ${HDF5_JAVA_TEST_SOURCES}) + + set (CMAKE_JAVA_CLASSPATH ".") + foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH}) + set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}") + endforeach () + set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${HDF5_JAVA_TEST_LIB_TARGET}_${test_file}_JAR_FILE}") + + add_test ( + NAME JUnit-${test_file}-clearall-objects + COMMAND ${CMAKE_COMMAND} + -E remove + JUnit-${test_file}.out + JUnit-${test_file}.out.err + ) + add_test ( + NAME JUnit-${test_file} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}" + -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}" + -D "TEST_ARGS:STRING=${CMD_ARGS}-ea;org.junit.runner.JUnitCore" + -D "TEST_PROGRAM=test.${test_file}" + -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_OUTPUT_DIRECTORY}" + -D "TEST_FOLDER=${HDF5_BINARY_DIR}/java/test" + -D "TEST_OUTPUT=JUnit-${test_file}.out" +# -D "TEST_LOG_LEVEL=trace" + -D "TEST_EXPECT=0" + -D "SKIP_APPEND=1" + -D "TEST_MASK_ERROR=TRUE" +# -D "TEST_FILTER:STRING=${testfilter}" + -D "TEST_REFERENCE=JUnit-${test_file}.txt" + -P "${HDF_RESOURCES_DIR}/jrunTest.cmake" + ) + + set_tests_properties (JUnit-${test_file} PROPERTIES + ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir2" + DEPENDS "JUnit-${test_file}-clearall-objects" + ) +endforeach () diff --git a/java/test/JUnit-interface.ert b/java/test/JUnit-interface.ert deleted file mode 100644 index 5771a4f..0000000 --- a/java/test/JUnit-interface.ert +++ /dev/null @@ -1,2 +0,0 @@ -[main] INFO hdf.hdf5lib.H5 - HDF5 library: hdf5_java -[main] INFO hdf.hdf5lib.H5 - successfully loaded from java.library.path diff --git a/java/test/JUnit-interface.txt b/java/test/JUnit-interface.txt deleted file mode 100644 index 91ea286..0000000 --- a/java/test/JUnit-interface.txt +++ /dev/null @@ -1,671 +0,0 @@ -JUnit version 4.11 -.testJ2C -.testIsSerializable -.testH5garbage_collect -.testH5error_off -.serializeToDisk -.testH5open -.testH5check_version -.testH5get_libversion -.testH5set_free_list_limits -.testH5Eregister_class_lib_name_null -.testH5Eregister_class_version_null -.testH5Eunregister_class_invalid_classid -.testH5Eregister_class -.testH5Eregister_class_cls_name_null -.testH5EprintInt -.testH5Eset_current_stack_invalid_stkid -.testH5Eset_current_stack -.testH5Eget_num -.testH5Eclear -.testH5Eprint -.testH5Epush_null_name -.testH5Eget_num_with_msg -.testH5Eclear2_with_msg -.testH5Epush_invalid_stkid -.testH5Eget_current_stack -.testH5Ecreate_stack -.testH5Eget_msg_invalid_msgid -.testH5Eauto_is_v2 -.testH5EclearInt -.testH5Eauto_is_v2_invalid_stkid -.testH5Eclose_msg_invalid_errid -.testH5Eclose_stack_invalid_stackid -.testH5Eget_class_name_invalid_classname -.testH5Eget_num_invalid_stkid -.testH5EprintInt_invalid_classid -.testH5Epop -.testH5Epop_invalid_stkid -.testH5Eget_current_stack_pop -.testH5Eget_class_name_invalid_classid -.testH5Ecreate_msg_invalid_errid -.testH5Eclear2_invalid_stkid -.testH5Eprint2_invalid_classid -.testH5EprintInt -.testH5Eget_msg_major -.testH5Eget_msg_minor -.testH5Eget_msg -.testH5Eget_num -.testH5Epush -.testH5Ewalk -.testH5Eget_class_name -.testH5Eget_num_with_msg -.testH5Eclear2 -.testH5Eprint2 -.testH5Ecreate_msg_major -.testH5Ecreate_msg_minor -.testH5Ecreate_stack -.testH5Ecreate_msg_name_null -.testH5Eauto_is_v2 -.testH5EclearInt -.testH5Epop -.testH5Fcreate_null -.testH5Fflush_local -.testH5Fget_info -.testH5Fmount_null -.testH5Fcreate -.testH5Fflush_global -.testH5Funmount_null -.testH5Fclose_negative -.testH5Fopen_null -.testH5Fis_hdf5_null -.testH5Fis_hdf5_text -.testH5Fget_mdc_size -.testH5Fget_mdc_hit_rate -.testH5Fis_hdf5 -.testH5Fget_freespace -.testH5Fclose -.testH5Fget_filesize -.testH5Fcreate_EXCL -.testH5Freopen_closed -.testH5Freset_mdc_hit_rate_stats -.testH5Fget_name -.testH5Fcreate -.testH5Fclear_elink_file_cache -.testH5Fclose_twice -.testH5Freopen -.testH5Fopen_read_only -.testH5Fget_access_plist -.testH5Fget_obj_ids -.testH5Fget_intent_rdwr -.testH5Fget_access_plist_closed -.testH5Fget_create_plist_closed -.testH5Fget_intent_rdonly -.testH5Fget_create_plist -.testH5Fget_obj_count -.testH5Fstart_swmr_write -.testH5Fswmr_read_attempts -.testH5Gget_info_by_name_not_exists -.testH5Gget_info_by_idx_not_exists -.testH5Gget_info_by_name -.testH5Gget_create_plist -.testH5Gopen -.testH5Gget_info_by_idx_null -.testH5Gopen_not_exists -.testH5Gclose -.testH5Gcreate_anon -.testH5Gcreate_null -.testH5Gget_info_by_idx_fileid -.testH5Gclose_invalid -.testH5Gflush_invalid -.testH5Gopen_invalid -.testH5Grefresh_invalid -.testH5Gget_info_invalid -.testH5Gcreate_invalid -.testH5Gcreate_exists -.testH5Gget_info_by_name_null -.testH5Gget_info_by_name_invalid -.testH5Gget_create_plist_invalid -.testH5Gcreate -.testH5Gget_info_by_name_fileid -.testH5Gget_info_by_idx_invalid -.testH5Gopen_null -.testH5Gget_info_by_idx -.testH5Gget_info -.testH5Gget_info_by_name -.testH5Gget_create_plist -.testH5Gopen -.testH5Gget_obj_info_all_gid2 -.testH5Gget_obj_info_all_byIndexType -.testH5Gget_obj_info_max_limit -.testH5Gget_obj_info_all -.testH5Gget_obj_info_max -.testH5Gget_obj_info_all_gid -.testH5Gget_info_by_idx -.testH5Gget_info -.testH5Gget_obj_info_all -.testH5Sclose_invalid -.testH5Screate_simple_max_default -.testH5Screate_simple_dims_null -.testH5Sdecode_null -.testH5Screate_simple_dims_exceed -.testH5Screate_simple_unlimted_1d -.testH5Screate_simple_dims_invalid -.testH5Screate_scalar -.testH5Screate_simple -.testH5Screate_simple_rank_invalid -.testH5Sget_simple_extent_type_invalid -.testH5Sencode_invalid -.testH5Screate_null -.testH5Screate_simple_extent -.testH5Screate_invalid -.testH5Screate_simple_unlimted -.testH5Sget_select_npoints -.testH5Sget_select_type -.testH5Sset_extent_simple -.testH5Sget_select_hyper -.testH5Sget_select_valid -.testH5Sget_select_elem_pointlist -.testH5Sset_extent_none -.testH5Sencode_decode_scalar_dataspace -.testH5Soffset_simple -.testH5Scopy -.testH5Sget_simple_extent_ndims -.testH5Sextent_equal -.testH5Sget_simple_extent_dims -.testH5Sget_simple_extent_type -.testH5Shyper_regular -.testH5Sget_select_bounds -.testH5Sget_select_elem_pointlist_invalid -.testH5Sget_simple_extent_npoints -.testH5Sextent_copy -.testH5Sencode_decode_null_dataspace -.testH5Sis_simple -.testH5Sget_simple_extent_dims_null -.testH5Sselect_none -.testH5Tget_member_type_invalid -.testH5Tenum_insert_null -.testH5Tget_offset_invalid -.testH5Tset_precision_invalid -.testH5Tget_inpad_invalid -.testH5Tenum_nameof_invalid -.testH5Tget_member_value_invalid -.testH5Tenum_nameof_value_null -.testH5Tcreate_invalid -.testH5Tget_strpad_invalid -.testH5Tenum_valueof_invalid -.testH5Tget_fields_null -.testH5Topen_null -.testH5Tpack_invalid -.testH5Tcommit_null -.testH5Tinsert_invalid -.testH5Tenum_valueof_null -.testH5Tset_norm_invalid -.testH5Tlock_invalid -.testH5Tarray_create_invalid -.testH5Tget_member_value_null -.testH5Tset_offset_invalid -.testH5Tget_fields_invalid -.testH5Tequal_invalid -.testH5Tget_ebias_long_invalid -.testH5Tget_cset_invalid -.testH5Tget_size_invalid -.testH5Tset_strpad_invalid -.testH5Tset_ebias_invalid -.testH5Tget_sign_invalid -.testH5Tget_member_index_invalid -.testH5Tget_precision_invalid -.testH5Tset_fields_invalid -.testH5Tcopy_invalid -.testH5Tget_pad_invalid -.testH5Tset_order_invalid -.testH5Tget_member_class_invalid -.testH5Tget_super_invalid -.testH5Tget_class_invalid -.testH5Topen_invalid -.testH5Tget_precision_long_invalid -.testH5Tget_ebias_invalid -.testH5Tget_native_type_invalid -.testH5Tget_fields_length_invalid -.testH5Tget_norm_invalid -.testH5Tenum_nameof_invalid_size -.testH5Tset_pad_invalid -.testH5Tget_pad_null -.testH5Tset_tag_null -.testH5Tget_order_invalid -.testH5Tcommit_invalid -.testH5Tget_array_ndims_invalid -.testH5Tset_tag_invalid -.testH5Tvlen_create_invalid -.testH5Tenum_create_invalid -.testH5Tinsert_null -.testH5Tset_inpad_invalid -.testH5Tenum_valueof_name_null -.testH5Tset_cset_invalid -.testH5Tclose_invalid -.testH5Tget_nmembers_invalid -.testH5Tarray_create_value_null -.testH5Tset_size_invalid -.testH5Tflush_invalid -.testH5Tenum_insert_invalid -.testH5Tget_array_dims_null -.testH5Tget_member_index_null -.testH5Trefresh_invalid -.testH5Tset_sign_invalid -.testH5Tenum_insert_name_null -.testH5Tequal_not -.testH5Tcopy -.testH5Tequal -.testH5Torder_size -.testH5Tconvert -.testH5Tvlen_create -.testH5Tenum_create_functions -.testH5Tenum_functions -.testH5Tget_class -.testH5Tget_array_ndims -.testH5Tequal_type_error -.testH5Tget_array_dims -.testH5Tset_size -.testH5Tis_variable_str -.testH5Tcompound_functions -.testH5Tget_size -.testH5Tarray_create -.testH5Topaque_functions -.testH5Dget_space_status_invalid -.testH5Dget_access_plist_invalid -.testH5Dget_type_invalid -.testH5Dget_create_plist_invalid -.testH5Dget_offset_invalid -.testH5Dvlen_get_buf_size_invalid -.testH5Dcreate_null -.testH5Dset_extent_status_null -.testH5Dvlen_reclaim_null -.testH5Dcreate_invalid -.testH5Dcreate_anon_invalid -.testH5Dset_extent_status_invalid -.testH5Dvlen_reclaim_invalid -.testH5Dopen_invalid -.testH5Dclose_invalid -.testH5Dflush_invalid -.testH5Drefresh_invalid -.testH5Dget_storage_size_invalid -.testH5Dget_space_invalid -.testH5Dopen_null -.testH5Dget_storage_size -.testH5Diterate_write -.testH5Dcreate -.testH5Dget_offset -.testH5Dget_type -.testH5Dfill -.testH5Dopen -.testH5Dcreate_anon -.testH5Dfill_null -.testH5Dget_storage_size_empty -.testH5Diterate -.testH5Dget_access_plist -.testH5Dvlen_read_invalid_buffer -.testH5Dvlen_get_buf_size -.testH5Dget_space_closed -.testH5Dget_space_status -.testH5Dvlen_write_read -.testH5Dget_space -.testH5Dget_type_closed -.testH5Dset_extent -.testH5Lcopy_invalid -.testH5Lget_value_by_idx_null -.testH5Lcreate_external_invalid -.testH5Lexists_null -.testH5Lget_info_invalid -.testH5Lget_name_by_idx_invalid -.testH5Lmove_null_current -.testH5Literate_by_name_nullname -.testH5Lvisit_by_name_nullname -.testH5Lvisit_null -.testH5Lget_name_by_idx_null -.testH5Lcreate_hard_null_dest -.testH5Lget_value_null -.testH5Lcreate_external_null_dest -.testH5Lcreate_external_null_file -.testH5Lcreate_external_null_current -.testH5Ldelete_null -.testH5Lexists_invalid -.testH5Lmove_invalid -.testH5Lcreate_hard_invalid -.testH5Lcopy_null_dest -.testH5Lcreate_soft_null_current -.testH5Lcopy_null_current -.testH5Lget_info_by_idx_null -.testH5Literate_null -.testH5Ldelete_invalid -.testH5Lvisit_by_name_null -.testH5Ldelete_by_idx_invalid -.testH5Lget_info_by_idx_invalid -.testH5Ldelete_by_idx_null -.testH5Lcreate_soft_invalid -.testH5Lcreate_hard_null_current -.testH5Lget_value_by_idx_invalid -.testH5Lmove_null_dest -.testH5Lget_info_null -.testH5Literate_by_name_null -.testH5Lcreate_soft_null_dest -.testH5Lget_value_invalid -.testH5Lget_info_by_idx_not_exist_name -.testH5Lget_name_by_idx_not_exist -.testH5Lvisit -.testH5Lget_name_by_idx_n0 -.testH5Lget_name_by_idx_n3 -.testH5Lvisit_by_name -.testH5Literate_by_name -.testH5Lget_info_hardlink -.testH5Literate -.testH5Lget_info_by_idx_n0 -.testH5Lget_info_by_idx_n3 -.testH5Lget_info_by_idx_name_not_exist_create -.testH5Lexists -.testH5Lget_info_by_idx_name_not_exist_name -.testH5Lget_info_by_idx_not_exist_create -.testH5Lget_info_not_exist -.testH5Lget_info_dataset -.testH5Lget_info_by_idx_n0_create -.testH5Ldelete_soft_link_dangle -.testH5Lget_value_by_idx_external_create -.testH5Ldelete_by_idx_not_exist_create -.testH5Lvisit_create -.testH5Lmove_dst_link_exists -.testH5Lcreate_soft_dangle -.testH5Literate_create -.testH5Lcopy_cur_not_exists -.testH5Lcopy -.testH5Lmove -.testH5Lget_value_by_idx_n2_create -.testH5Lget_value_soft -.testH5Ldelete_by_idx_n2_name -.testH5Lget_info_by_idx_n1_create -.testH5Lcreate_external -.testH5Lget_value_dangle -.testH5Lcreate_hard_dst_link_exists -.testH5Lget_value_by_idx_n2_name -.testH5Lcreate_soft_dst_link_exists -.testH5Lcreate_hard -.testH5Lcreate_soft -.testH5Lmove_cur_not_exists -.testH5Lcreate_hard_cur_not_exists -.testH5Lget_info_softlink_dangle -.testH5Ldelete_by_idx_n2_create -.testH5Ldelete_soft_link -.testH5Lget_info_externallink -.testH5Lcopy_dst_link_exists -.testH5Lget_value_by_idx_external_name -.testH5Ldelete_by_idx_not_exist_name -.testH5Lget_info_softlink -.testH5Lget_value_external -.testH5Lget_value_by_idx_not_exist_create -.testH5Lget_value_by_idx_not_exist_name -.testH5Ldelete_hard_link -.testH5Rgetregion_Nullreference -.testH5Rget_obj_type2_Invalidreftype -.testH5Rdereference -.testH5Rget_name -.testH5Rcreate_Invalidreftype -.testH5Rget_name_NULLreference -.testH5Rget_region -.testH5Rdereference_Nullreference -.testH5Rcreate_refobj -.testH5Rcreate_Invalidspace_id -.testH5Rdereference_Invalidreference -.testH5Rgetregion_Badreferencetype -.testH5Rcreate_regionrefobj -.testH5Rget_name_Invalidreftype -.testH5Rgetregion_Invalidreftype -.testH5Rget_obj_type2 -.testH5Rcreate_InvalidObjectName -.testH5Pset_nbit -.testH5Pset_shared_mesg_index_InvalidFlag -.testH5Pset_shared_mesg_phase_change -.testH5PH5Pset_shared_mesg_phase_change_HighMaxlistValue -.testH5P_layout -.testH5Pget_link_creation_order -.testH5Pget_efile_prefix -.testH5Pset_shared_mesg_nindexes_InvalidHIGHnindexes -.testH5P_file_space_page_size -.testH5Pget_shared_mesg_index_Invalid_indexnum -.testH5Pset_data_transform_NullExpression -.testH5Pset_elink_prefix_null -.testH5Pget_elink_prefix -.testH5Pget_nlinks -.testH5Pset_libver_bounds_invalidhigh -.testH5Pget_char_encoding -.testH5P_istore_k -.testH5Pget_link_phase_change -.testH5Pset_link_phase_change_max_compactLESSTHANmin_dense -.testH5Pget_shared_mesg_phase_change_EqualsSET -.testH5Pset_scaleoffset_Invalidscale_type -.testH5Pget_istore_k_null -.testH5Pset_libver_bounds_invalidlow -.testH5Pset_est_link_info -.testH5Pget_link_phase_change_Null -.testH5P_fill_time -.testH5Pget_userblock_null -.testH5Pset_link_creation_order_tracked -.testH5Pset_shared_mesg_index -.testH5Pset_copy_object -.testH5Pset_link_creation_order_trackedPLUSindexed -.testH5P_file_space_strategy -.testH5Pset_copy_object_invalidobject -.testH5Pset_est_link_info_InvalidValues -.testH5Pset_local_heap_size_hint -.testH5Pget_est_link_info -.testH5Pset_efile_prefix_null -.testH5Pset_scaleoffset -.testH5Pset_create_intermediate_group_invalidobject -.testH5PH5Pset_shared_mesg_phase_change_HighMinbtreeValue -.testH5Pset_create_intermediate_group -.testH5P_alloc_time -.testH5Pset_elink_acc_flags -.testH5Pset_link_phase_change_Highmax_Compact -.testH5P_chunk -.testH5P_sizes -.testH5Pset_link_creation_order_invalidvalue -.testH5P_sym_k -.testH5PH5Pset_shared_mesg_phase_change_MinbtreeGreaterThanMaxlist -.testH5Pget_version_null -.testH5Pset_scaleoffset_Invalidscale_factor -.testH5Pget_elink_prefix_null -.testH5Pget_data_transform_IllegalSize -.testH5Pget_create_intermediate_group -.testH5Pset_shared_mesg_nindexes -.testH5Pset_attr_creation_order_trackedPLUSindexed -.testH5Pget_sym_k_null -.testH5Pset_nlinks -.testH5P_obj_track_times -.testH5Pset_efile_prefix -.testH5P_userblock -.testH5Pget_local_heap_size_hint -.testH5Pset_shared_mesg_index_Invalid_indexnum -.testH5Pset_data_transform_InvalidExpression1 -.testH5Pset_data_transform_InvalidExpression2 -.testH5Pget_attr_phase_change -.testH5Pget_data_transform -.testH5Pget_create_intermediate_group_notcreated -.testH5Pset_elink_prefix -.testH5Pget_attr_creation_order -.testH5Pset_attr_creation_order_invalidvalue -.testH5Pget_shared_mesg_phase_change -.testH5Pget_shared_mesg_index -.testH5Pset_link_phase_change -.testH5Pget_shared_mesg_nindexes -.testH5Pget_version -.testH5Pset_elink_acc_flags_InvalidFlag1 -.testH5Pset_elink_acc_flags_InvalidFlag2 -.testH5Pget_link_phase_change_EqualsSet -.testH5Pget_elink_acc_flags -.testH5Pget_data_transform_ExpressionNotSet -.testH5P_fill_value -.testH5Pget_sizes_null -.testH5Pset_data_transform -.testH5Pset_attr_creation_order_tracked -.testH5P_buffer -.testH5Pdata_transform -.testH5P_elink_fapl -.testH5P_fapl_direct -.testH5P_alignment -.testH5P_fapl_family -.testH5P_chunk_cache -.testH5P_meta_block_size -.testH5Fmdc_logging -.testH5Pget_elink_fapl -.testH5Pset_mdc_config -.testH5P_small_data_block_size -.testH5Pset_fapl_log -.testH5P_evict_on_close -.testH5Pset_libver_bounds -.testH5P_sieve_buf_size -.testH5P_elink_file_cache_size -.testH5P_cache -.testH5Pget_mdc_config -.testH5P_fapl_muti_defaults -.testH5Pget_libver_bounds -.testH5P_btree_ratios -.testH5P_fapl_muti_nulls -.testH5Pset_fapl_sec2 -.testH5Pmulti_transform -.testH5Pset_elink_fapl_NegativeID -.testH5Pset_fapl_stdio -.testH5P_edc_check -.testH5Pset_elink_fapl -.testH5P_hyper_vector_size -.testH5P_gc_references -.testH5P_family_offset -.testH5P_fapl_core -.testH5P_fapl_muti -.testH5P_fapl_split -.testH5Pset_fapl_windows -.testH5P_fclose_degree -.testH5Pget_source_datasetname -.testH5Pvirtual_storage -.testH5Pget_selection_source_dataset -.testH5Pget_virtual_prefix -.testH5Pget_source_filename -.testH5Pset_get_virtual_printf_gap -.testH5Pget_virtual_count -.testH5Pset_virtual_prefix -.testH5Pset_get_virtual_view -.testH5Pget_mapping_parameters -.testH5Pset_virtual_prefix_null -.testH5P_genprop_basic_class -.testH5P_genprop_class_iter -.testH5P_genprop_basic_class_prop -.testH5P_genprop_basic_list_prop -.testH5Acreate2_nullname -.testH5Acreate_by_name -.testH5Aget_name_by_idx -.testH5Aget_storage_size -.testH5Aiterate -.testH5Aopen_by_idx -.testH5Aopen_invalidname -.testH5Aopen -.testH5Aget_info_by_name -.testH5Aget_create_plist -.testH5Adelete_by_name -.testH5Aopen_by_name -.testH5Aget_info -.testH5Aget_name -.testH5Aexists -.testH5Aget_info_by_idx -.testH5Arename -.testH5Adelete_by_idx_name1 -.testH5Adelete_by_idx_name2 -.testH5Adelete_by_idx_order -.testH5Arename_by_name -.testH5Acreate2_invalidobject -.testH5Acreate2 -.testH5Aiterate_by_name -.testH5Adelete_by_idx_null -.testH5Adelete_by_idx_invalidobject -.testH5Awrite_readVL -.testH5Aget_info1 -.testH5Oget_comment_by_name_null -.testH5Ovisit_by_name_nullname -.testH5Oget_info_invalid -.testH5Ovisit_by_name_null -.testH5Oget_comment_invalid -.testH5Oset_comment_by_name_invalid -.testH5Oopen_null -.testH5Oclose_invalid -.testH5Oflush_invalid -.testH5Oget_comment_by_name_invalid -.testH5Orefresh_invalid -.testH5Ocopy_null_dest -.testH5Olink_invalid -.testH5Oget_info_by_idx_invalid -.testH5Oget_info_by_idx_null -.testH5Olink_null_dest -.testH5Oget_info_by_name_invalid -.testH5Oget_info_by_name_null -.testH5Ocopy_invalid -.testH5Oset_comment_by_name_null -.testH5Ocopy_null_current -.testH5Oset_comment_invalid -.testH5Oopen_invalid -.testH5Ovisit_null -.testH5Oexists_by_name -.testH5Oget_info_by_idx_n0 -.testH5Oget_info_by_idx_n3 -.testH5Oget_info_by_name_not_exist_name -.testH5Ovisit_by_name -.testH5Oget_info_by_idx_name_not_exist_name -.testH5Oget_info_datatype -.testH5Oget_info_by_idx_not_exist_name -.testH5Oopen_by_idx_n0 -.testH5Oopen_by_idx_n3 -.testH5Oopen_not_exists -.testH5Ovisit -.testH5Oget_info_by_idx_not_exist_create -.testH5Oget_info_by_name_hardlink -.testH5Oget_info_by_name_group -.testH5Oopen_by_addr -.testH5Oget_info_by_name_not_exists -.testH5Oget_info_by_name_dataset -.testH5Oget_info_group -.testH5Oget_info_by_name_datatype -.testH5Oget_info_hardlink -.testH5Oget_info_by_idx_name_not_exist_create -.testH5Oget_info_dataset -.testH5OcopyRefsDatasettosameFile -.testH5OcopyRefsDatasettodiffFile -.testH5OcopyRefsAttr -.testH5Oget_info_by_idx_n0_create -.testH5Oget_info_softlink_dangle -.testH5Oget_info_softlink -.testH5Oget_info_externallink -.testH5Ocopy -.testH5Olink -.testH5Ocomment_by_name -.testH5Oget_info_by_idx_n1_create -.testH5Ocomment -.testH5Oinc_dec_count -.testH5Ocomment_by_name_clear -.testH5Ovisit_create -.testH5Ocopy_dst_link_exists -.testH5Ocomment_clear -.testH5Ocopy_cur_not_exists -.TestH5PLplugins -.TestH5PLpaths -.testH5Zfilter_avail -.testH5Zunregister_predefined -.testH5Zget_filter_info - -Time: XXXX - -OK (645 tests) - -HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): - #000: (file name) line (number) in H5Fopen(): can't set access and transfer property lists - major: File accessibilty - minor: Can't set value - #001: (file name) line (number) in H5P_verify_apl_and_dxpl(): not the required access property list - major: Property lists - minor: Inappropriate type - #002: (file name) line (number) in H5P_isa_class(): not a property list - major: Invalid arguments to routine - minor: Inappropriate type -HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): - #000: (file name) line (number) in H5Fopen(): can't set access and transfer property lists - major: File accessibilty - minor: Can't set value - #001: (file name) line (number) in H5P_verify_apl_and_dxpl(): not the required access property list - major: Property lists - minor: Inappropriate type - #002: (file name) line (number) in H5P_isa_class(): not a property list - major: Invalid arguments to routine - minor: Inappropriate type diff --git a/java/test/Makefile.am b/java/test/Makefile.am index b7409cf..6635ef7 100644 --- a/java/test/Makefile.am +++ b/java/test/Makefile.am @@ -28,15 +28,17 @@ classes: pkgpath = test hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar +CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/junit.jar:$(top_srcdir)/java/lib/hamcrest-core.jar:$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH + jarfile = jar$(PACKAGE_TARNAME)test.jar -CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/junit.jar:$(top_srcdir)/java/lib/hamcrest-core.jar:$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH AM_JAVACFLAGS = $(H5_JAVACFLAGS) -deprecation +TESTPACKAGE = + noinst_JAVA = \ TestH5.java \ - TestH5E.java \ - TestH5Edefault.java \ + TestH5Eparams.java \ TestH5Eregister.java \ TestH5Fparams.java \ TestH5Fbasic.java \ @@ -44,7 +46,6 @@ noinst_JAVA = \ TestH5Fswmr.java \ TestH5Gbasic.java \ TestH5G.java \ - TestH5Giterate.java \ TestH5Sbasic.java \ TestH5S.java \ TestH5Tparams.java \ @@ -69,7 +70,9 @@ noinst_JAVA = \ TestH5Ocopy.java \ TestH5PL.java \ TestH5Z.java \ - TestAll.java + TestH5E.java \ + TestH5Edefault.java \ + TestH5Giterate.java $(jarfile): classnoinst.stamp classes $(JAR) cvf $@ -C $(JAVAROOT)/ $(pkgpath) @@ -83,17 +86,6 @@ TEST_SCRIPT = $(check_SCRIPTS) CLEANFILES = classnoinst.stamp $(jarfile) $(JAVAROOT)/$(pkgpath)/*.class junit.sh -#JAVA_JUNIT = $(JAVA_SRCS) -#noinst_JAVA = @JAVA_JUNIT@ -#EXTRA_JAVA = $(JAVA_JUNIT) -TESTS_JUNIT = AllJunitTests -#EXTRA_TEST = $(TESTS_JUNIT) - -AllJunitTests : - echo "#! /bin/sh" > $@ - echo "exec @JUNIT@ test.TestAll" >> $@ - chmod +x $@ - clean: rm -rf $(JAVAROOT)/* rm -f $(jarfile) diff --git a/java/test/Makefile.in b/java/test/Makefile.in index cfab0a0..c30554a 100644 --- a/java/test/Makefile.in +++ b/java/test/Makefile.in @@ -481,6 +481,7 @@ JAVA_PATH_NAME = @JAVA_PATH_NAME@ JAVA_VERSION = @JAVA_VERSION@ JNIFLAGS = @JNIFLAGS@ JUNIT = @JUNIT@ +LARGE_PARALLEL_IO = @LARGE_PARALLEL_IO@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -528,6 +529,7 @@ PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PAC_FORTRAN_NUM_INTEGER_KINDS = @PAC_FORTRAN_NUM_INTEGER_KINDS@ PARALLEL = @PARALLEL@ +PARALLEL_FILTERED_WRITES = @PARALLEL_FILTERED_WRITES@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING = @PROFILING@ RANLIB = @RANLIB@ @@ -547,11 +549,7 @@ STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@ STRIP = @STRIP@ SYMBOLS = @SYMBOLS@ TESTPARALLEL = @TESTPARALLEL@ - -#JAVA_JUNIT = $(JAVA_SRCS) -#noinst_JAVA = @JAVA_JUNIT@ -#EXTRA_JAVA = $(JAVA_JUNIT) -TESTS_JUNIT = AllJunitTests +TESTS_JUNIT = @TESTS_JUNIT@ THREADSAFE = @THREADSAFE@ TIME = @TIME@ TR = @TR@ @@ -683,12 +681,12 @@ JAVA_API = yes JAVAROOT = .classes pkgpath = test hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar +CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/junit.jar:$(top_srcdir)/java/lib/hamcrest-core.jar:$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH jarfile = jar$(PACKAGE_TARNAME)test.jar -CLASSPATH_ENV = CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/junit.jar:$(top_srcdir)/java/lib/hamcrest-core.jar:$(top_srcdir)/java/lib/slf4j-api-1.7.5.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.5.jar:$$CLASSPATH +TESTPACKAGE = noinst_JAVA = \ TestH5.java \ - TestH5E.java \ - TestH5Edefault.java \ + TestH5Eparams.java \ TestH5Eregister.java \ TestH5Fparams.java \ TestH5Fbasic.java \ @@ -696,7 +694,6 @@ noinst_JAVA = \ TestH5Fswmr.java \ TestH5Gbasic.java \ TestH5G.java \ - TestH5Giterate.java \ TestH5Sbasic.java \ TestH5S.java \ TestH5Tparams.java \ @@ -721,7 +718,9 @@ noinst_JAVA = \ TestH5Ocopy.java \ TestH5PL.java \ TestH5Z.java \ - TestAll.java + TestH5E.java \ + TestH5Edefault.java \ + TestH5Giterate.java noinst_DATA = $(jarfile) check_SCRIPTS = junit.sh @@ -1127,12 +1126,6 @@ $(jarfile): classnoinst.stamp classes $(JAR) cvf $@ -C $(JAVAROOT)/ $(pkgpath) .PHONY: classes -#EXTRA_TEST = $(TESTS_JUNIT) - -AllJunitTests : - echo "#! /bin/sh" > $@ - echo "exec @JUNIT@ test.TestAll" >> $@ - chmod +x $@ clean: rm -rf $(JAVAROOT)/* diff --git a/java/test/TestAll.java b/java/test/TestAll.java index de5d333..13cb597 100644 --- a/java/test/TestAll.java +++ b/java/test/TestAll.java @@ -18,9 +18,7 @@ import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses( { TestH5.class, - TestH5Eregister.class, - TestH5Edefault.class, - TestH5E.class, + TestH5Eparams.class, TestH5Eregister.class, TestH5Edefault.class, TestH5E.class, TestH5Fparams.class, TestH5Fbasic.class, TestH5F.class, TestH5Fswmr.class, TestH5Gbasic.class, TestH5G.class, TestH5Giterate.class, TestH5Sbasic.class, TestH5S.class, diff --git a/java/test/TestH5.java b/java/test/TestH5.java index 9c3d8dc..154390d 100644 --- a/java/test/TestH5.java +++ b/java/test/TestH5.java @@ -162,7 +162,7 @@ public class TestH5 { */ @Test public void testH5get_libversion() { - int libversion[] = { 1, 10, 2 }; + int libversion[] = { 1, 10, 3 }; try { H5.H5get_libversion(libversion); @@ -184,7 +184,7 @@ public class TestH5 { */ @Test public void testH5check_version() { - int majnum = 1, minnum = 10, relnum = 2; + int majnum = 1, minnum = 10, relnum = 3; try { H5.H5check_version(majnum, minnum, relnum); diff --git a/java/test/TestH5A.java b/java/test/TestH5A.java index 5e1e3f6..536364c 100644 --- a/java/test/TestH5A.java +++ b/java/test/TestH5A.java @@ -40,7 +40,7 @@ import org.junit.rules.TestName; public class TestH5A { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testA.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 6; long H5fid = -1; diff --git a/java/test/TestH5D.java b/java/test/TestH5D.java index 372fdba..5d0e405 100644 --- a/java/test/TestH5D.java +++ b/java/test/TestH5D.java @@ -35,7 +35,7 @@ import org.junit.rules.TestName; public class TestH5D { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testD.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 6; private static final int RANK = 2; diff --git a/java/test/TestH5Dplist.java b/java/test/TestH5Dplist.java index 6feaa23..406a1d3 100644 --- a/java/test/TestH5Dplist.java +++ b/java/test/TestH5Dplist.java @@ -31,7 +31,7 @@ import org.junit.rules.TestName; public class TestH5Dplist { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testDp.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 7; private static final int EDIM_X = 6; diff --git a/java/test/TestH5E.java b/java/test/TestH5E.java index 9a36365..656069a 100644 --- a/java/test/TestH5E.java +++ b/java/test/TestH5E.java @@ -47,8 +47,7 @@ public class TestH5E { hdf_java_classid = -1; try { - hdf_java_classid = H5.H5Eregister_class("HDF-Java-Error", - "hdf-java", "2.5"); + hdf_java_classid = H5.H5Eregister_class("HDF-Java-Error", "hdf-java", "2.5"); current_stackid = H5.H5Eget_current_stack(); } catch (Throwable err) { @@ -73,128 +72,29 @@ public class TestH5E { } @Test - public void testH5Eget_class_name() { - try { - String class_name = H5.H5Eget_class_name(hdf_java_classid); - assertNotNull("H5.H5Eget_class_name: " + class_name, class_name); - assertEquals("H5.H5Eget_class_name: ", "HDF-Java-Error", class_name); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eget_class_name: " + err); - } - } - - @Test - public void testH5Eprint2() { - try { - assertFalse(current_stackid < 0); - H5.H5Eprint2(current_stackid, null); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eprint2: " + err); - } - } - - @Ignore("Tested with create_msg_major[minor]") - public void testH5Eclose_msg() { - fail("Not yet implemented"); - } - - @Test(expected = NullPointerException.class) - public void testH5Ecreate_msg_name_null() throws Throwable { - H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, null); - } - - @Test - public void testH5Ecreate_msg_major() { - try { - long err_id = H5.H5Ecreate_msg(hdf_java_classid, - HDF5Constants.H5E_MAJOR, "Error in Test"); - assertFalse("H5.H5Ecreate_msg_major: " + err_id, err_id < 0); - H5.H5Eclose_msg(err_id); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Ecreate_msg_major: " + err); - } - } - - @Test - public void testH5Ecreate_msg_minor() { - try { - long err_id = H5.H5Ecreate_msg(hdf_java_classid, - HDF5Constants.H5E_MINOR, "Error in Test Function"); - assertFalse("H5.H5Ecreate_msg_minor: " + err_id, err_id < 0); - H5.H5Eclose_msg(err_id); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Ecreate_msg_minor: " + err); - } - } - - @Test - public void testH5Eget_msg() { - int[] error_msg_type = { HDF5Constants.H5E_MINOR }; - long err_id = -1; - String msg = null; - try { - err_id = H5.H5Ecreate_msg(hdf_java_classid, - HDF5Constants.H5E_MAJOR, "Error in Test"); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eget_msg: " + err); - } - assertFalse("H5.H5Eget_msg: H5Ecreate_msg - " + err_id, err_id < 0); - try { - msg = H5.H5Eget_msg(err_id, error_msg_type); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eget_msg: " + err); - } - assertNotNull("H5.H5Eget_msg: " + msg, msg); - assertEquals("H5.H5Eget_msg: ", "Error in Test", msg); - assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MAJOR, - error_msg_type[0]); - try { - H5.H5Eclose_msg(err_id); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eget_msg: " + err); - } - } - - @Test public void testH5Eget_msg_major() { try { H5.H5Fopen("test", 0, 1); } catch (HDF5LibraryException hdferr) { + long errnum = hdferr.getMajorErrorNumber(); int[] error_msg_type = { HDF5Constants.H5E_MAJOR }; String msg = null; try { - msg = H5.H5Eget_msg(hdferr.getMajorErrorNumber(), - error_msg_type); + msg = H5.H5Eget_msg(errnum, error_msg_type); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Eget_msg: " + err); + fail("H5.H5Eget_msg(Throwable): " + err); } assertNotNull("H5.H5Eget_msg: " + msg, msg); - assertEquals("H5.H5Eget_msg: ", "Invalid arguments to routine", - msg); - assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MAJOR, - error_msg_type[0]); + assertEquals("H5.H5Eget_msg: ", "Object atom", msg); + assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MAJOR, error_msg_type[0]); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Eget_msg: " + err); + fail("H5.H5Eget_msg(Other): " + err); } } @@ -204,20 +104,19 @@ public class TestH5E { H5.H5Fopen("test", 0, 1); } catch (HDF5LibraryException hdferr) { + long errnum = hdferr.getMinorErrorNumber(); int[] error_msg_type = { HDF5Constants.H5E_MINOR }; String msg = null; try { - msg = H5.H5Eget_msg(hdferr.getMinorErrorNumber(), - error_msg_type); + msg = H5.H5Eget_msg(errnum, error_msg_type); } catch (Throwable err) { err.printStackTrace(); fail("H5.H5Eget_msg: " + err); } assertNotNull("H5.H5Eget_msg: " + msg, msg); - assertEquals("H5.H5Eget_msg: ", "Inappropriate type", msg); - assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MINOR, - error_msg_type[0]); + assertEquals("H5.H5Eget_msg: ", "Unable to find atom information (already closed?)", msg); + assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MINOR, error_msg_type[0]); } catch (Throwable err) { err.printStackTrace(); @@ -226,26 +125,6 @@ public class TestH5E { } @Test - public void testH5Ecreate_stack() { - long stk_id = -1; - try { - stk_id = H5.H5Ecreate_stack(); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Ecreate_stack: " + err); - } - assertFalse("H5.H5Ecreate_stack: " + stk_id, stk_id < 0); - try { - H5.H5Eclose_stack(stk_id); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Ecreate_stack: " + err); - } - } - - @Test public void testH5Epop() { try { H5.H5Eset_current_stack(current_stackid); @@ -289,7 +168,7 @@ public class TestH5E { fail("H5.H5Epop: " + err); } - assertTrue("H5.H5Epop #:" + num_msg, num_msg == 3); + assertTrue("H5.H5Epop #:" + num_msg, num_msg == 4); try { H5.H5Epop(current_stackid, 1); @@ -307,7 +186,7 @@ public class TestH5E { fail("H5.H5Epop: " + err); } - assertTrue("H5.H5Epop", num_msg == 2); + assertTrue("H5.H5Epop", num_msg == 3); } @Test @@ -381,101 +260,6 @@ public class TestH5E { } /* end test_create() */ @Test - public void testH5EprintInt() { - assertFalse(current_stackid < 0); - try { - H5.H5Eprint2(current_stackid, null); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5EprintInt: " + err); - } - } - - @Test - public void testH5EclearInt() { - try { - H5.H5Eclear(current_stackid); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5EclearInt: " + err); - } - } - - @Test - public void testH5Eclear2() { - try { - H5.H5Eclear2(current_stackid); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eclear2: " + err); - } - } - - @Test - public void testH5Eauto_is_v2() { - boolean is_v2 = false; - try { - is_v2 = H5.H5Eauto_is_v2(current_stackid); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eauto_is_v2: " + err); - } - assertTrue("H5.H5Eauto_is_v2: ", is_v2); - } - - @Test - public void testH5Eget_num() { - long num_msg = -1; - try { - num_msg = H5.H5Eget_num(current_stackid); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Eget_num: " + err); - } - assertTrue("H5.H5Eget_num", num_msg == 0); - } - - @Test - public void testH5Eget_num_with_msg() { - try { - H5.H5Eset_current_stack(current_stackid); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Epop: " + err); - } - try { - H5.H5Fopen("test", 0, 1); - } - catch (Throwable err) { - } - - // save current stack contents - try { - current_stackid = H5.H5Eget_current_stack(); - } - catch (HDF5LibraryException err) { - err.printStackTrace(); - fail("H5.H5Epop: " + err); - } - - long num_msg = -1; - try { - num_msg = H5.H5Eget_num(current_stackid); - } - catch (Throwable err) { - err.printStackTrace(); - fail("H5.H5Epop: " + err); - } - assertTrue("H5.H5Eget_num_with_msg #:" + num_msg, num_msg > 0); - } - - @Test public void testH5Ewalk() { class wdata { public String err_desc = null; @@ -530,7 +314,7 @@ public class TestH5E { err.printStackTrace(); fail("testH5Ewalk:H5Eget_num " + err); } - assertTrue("testH5Ewalk #:" + num_msg, num_msg == 3); + assertTrue("testH5Ewalk #:" + num_msg, num_msg == 4); try { H5.H5Ewalk2(current_stackid, HDF5Constants.H5E_WALK_UPWARD, walk_cb, walk_data); @@ -540,12 +324,7 @@ public class TestH5E { fail("testH5Ewalk:H5Ewalk2 " + err); } assertFalse("testH5Ewalk:H5Ewalk2 ",((H5E_walk_data)walk_data).walkdata.isEmpty()); - assertTrue("testH5Ewalk:H5Ewalk2 "+((H5E_walk_data)walk_data).walkdata.size(),((H5E_walk_data)walk_data).walkdata.size()==3); - assertTrue("testH5Ewalk:H5Ewalk2 "+((wdata)((H5E_walk_data)walk_data).walkdata.get(0)).line,((wdata)((H5E_walk_data)walk_data).walkdata.get(0)).line==3765); - assertTrue("testH5Ewalk:H5Ewalk2 "+((wdata)((H5E_walk_data)walk_data).walkdata.get(1)).line,((wdata)((H5E_walk_data)walk_data).walkdata.get(1)).line==5504); - assertTrue("testH5Ewalk:H5Ewalk2 "+((wdata)((H5E_walk_data)walk_data).walkdata.get(1)).func_name,((wdata)((H5E_walk_data)walk_data).walkdata.get(1)).func_name.compareToIgnoreCase("H5P_verify_apl_and_dxpl")==0); - assertTrue("testH5Ewalk:H5Ewalk2 "+((wdata)((H5E_walk_data)walk_data).walkdata.get(0)).err_desc,((wdata)((H5E_walk_data)walk_data).walkdata.get(0)).err_desc.compareToIgnoreCase("not a property list")==0); - assertTrue("testH5Ewalk:H5Ewalk2 "+((wdata)((H5E_walk_data)walk_data).walkdata.get(1)).err_desc,((wdata)((H5E_walk_data)walk_data).walkdata.get(1)).err_desc.compareToIgnoreCase("not the required access property list")==0); + assertTrue("testH5Ewalk:H5Ewalk2 "+((H5E_walk_data)walk_data).walkdata.size(),((H5E_walk_data)walk_data).walkdata.size()==4); } } diff --git a/java/test/TestH5Edefault.java b/java/test/TestH5Edefault.java index 835ccba..5324d3a 100644 --- a/java/test/TestH5Edefault.java +++ b/java/test/TestH5Edefault.java @@ -91,8 +91,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, - num_msg_default == 3); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, num_msg_default == 4); //Save a copy of the current stack and clears the current stack try { @@ -102,10 +101,8 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertFalse("H5.H5Eget_current_stack: get_current_stack - " - + stack_id, stack_id < 0); - assertFalse("H5.H5Eget_current_stack: get_current_stack - " - + stack_id, stack_id == stack_id_default); + assertFalse("H5.H5Eget_current_stack: get_current_stack - " + stack_id, stack_id < 0); + assertFalse("H5.H5Eget_current_stack: get_current_stack - " + stack_id, stack_id == stack_id_default); // Verify we have the correct number of messages try { @@ -115,8 +112,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, - num_msg_default == 0); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, num_msg_default == 0); //Verify the copy has the correct number of messages try { @@ -126,8 +122,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg, num_msg == 4); try { H5.H5Eclose_stack(stack_id); @@ -158,8 +153,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, - num_msg_default == 3); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, num_msg_default == 4); //Save a copy of the current stack and clears the current stack try { @@ -169,10 +163,8 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertFalse("H5.H5Eget_current_stack: get_current_stack - " - + stack_id, stack_id < 0); - assertFalse("H5.H5Eget_current_stack: get_current_stack - " - + stack_id, stack_id == HDF5Constants.H5E_DEFAULT); + assertFalse("H5.H5Eget_current_stack: get_current_stack - " + stack_id, stack_id < 0); + assertFalse("H5.H5Eget_current_stack: get_current_stack - " + stack_id, stack_id == HDF5Constants.H5E_DEFAULT); // Verify we have the correct number of messages try { @@ -182,8 +174,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, - num_msg_default == 0); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, num_msg_default == 0); //Verify the copy has the correct number of messages try { @@ -193,8 +184,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg, num_msg == 4); //Generate errors on default stack try { @@ -212,8 +202,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, - num_msg_default == 3); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg_default, num_msg_default == 4); //Remove one message from the current stack try { @@ -224,8 +213,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: pop #:" + num_msg_default, - num_msg_default == 2); + assertTrue("H5.H5Eget_current_stack: pop #:" + num_msg_default, num_msg_default == 3); //Verify the copy still has the correct number of messages try { @@ -235,8 +223,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eget_current_stack: get_num #:" + num_msg, num_msg == 4); } @Test(expected = IllegalArgumentException.class) @@ -306,8 +293,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eset_current_stack: " + err); } - assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, num_msg == 4); //Save a copy of the current stack try { @@ -317,10 +303,8 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eset_current_stack: " + err); } - assertFalse("H5.H5Eset_current_stack: get_current_stack - " - + stack_id, stack_id < 0); - assertFalse("H5.H5Eset_current_stack: get_current_stack - " - + stack_id, stack_id == HDF5Constants.H5E_DEFAULT); + assertFalse("H5.H5Eset_current_stack: get_current_stack - " + stack_id, stack_id < 0); + assertFalse("H5.H5Eset_current_stack: get_current_stack - " + stack_id, stack_id == HDF5Constants.H5E_DEFAULT); //Verify the copy has the correct number of messages try { @@ -330,8 +314,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eset_current_stack: " + err); } - assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, num_msg == 4); //Generate errors on default stack try { @@ -349,8 +332,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eget_current_stack: " + err); } - assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, num_msg == 4); //Remove one message from the current stack try { @@ -361,8 +343,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eset_current_stack: " + err); } - assertTrue("H5.H5Eset_current_stack: pop #:" + num_msg, - num_msg == 2); + assertTrue("H5.H5Eset_current_stack: pop #:" + num_msg, num_msg == 3); //Verify the copy still has the correct number of messages try { @@ -372,8 +353,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eset_current_stack: " + err); } - assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, num_msg == 4); try { H5.H5Eset_current_stack(stack_id); @@ -383,8 +363,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eset_current_stack: " + err); } - assertTrue("H5.H5Eset_current_stack: get_num - " + num_msg, - num_msg == 3); + assertTrue("H5.H5Eset_current_stack: get_num - " + num_msg, num_msg == 4); } @Test(expected = IllegalArgumentException.class) @@ -407,7 +386,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Epop: " + err); } - assertTrue("H5.H5Epop before #:" + num_msg, num_msg == 3); + assertTrue("H5.H5Epop before #:" + num_msg, num_msg == 4); try { H5.H5Epop(HDF5Constants.H5E_DEFAULT, 1); num_msg = H5.H5Eget_num(HDF5Constants.H5E_DEFAULT); @@ -416,7 +395,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Epop: " + err); } - assertTrue("H5.H5Epop after #:" + num_msg, num_msg == 2); + assertTrue("H5.H5Epop after #:" + num_msg, num_msg == 3); } @Test(expected = IllegalArgumentException.class) @@ -492,8 +471,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eclear2_with_msg: " + err); } - assertTrue("H5.H5Eclear2_with_msg before #:" + num_msg, - num_msg == 3); + assertTrue("H5.H5Eclear2_with_msg before #:" + num_msg, num_msg == 4); try { H5.H5Eclear2(HDF5Constants.H5E_DEFAULT); num_msg = H5.H5Eget_num(HDF5Constants.H5E_DEFAULT); @@ -502,7 +480,7 @@ public class TestH5Edefault { err.printStackTrace(); fail("H5.H5Eclear2_with_msg: " + err); } - assertTrue("H5.H5Eclear2_with_msg after #:" + num_msg, num_msg == 0); + assertTrue("H5.H5Eclear2_with_msg after #:" + num_msg, num_msg == 0); } @Test(expected = IllegalArgumentException.class) diff --git a/java/test/TestH5Eparams.java b/java/test/TestH5Eparams.java new file mode 100644 index 0000000..0c55577 --- /dev/null +++ b/java/test/TestH5Eparams.java @@ -0,0 +1,282 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +package test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.util.ArrayList; + +import hdf.hdf5lib.H5; +import hdf.hdf5lib.HDF5Constants; +import hdf.hdf5lib.exceptions.HDF5LibraryException; +import hdf.hdf5lib.callbacks.H5E_walk_cb; +import hdf.hdf5lib.callbacks.H5E_walk_t; +import hdf.hdf5lib.structs.H5E_error2_t; + +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; + +public class TestH5Eparams { + @Rule public TestName testname = new TestName(); + long hdf_java_classid = -1; + long current_stackid = -1; + + @Before + public void H5Eget_stack_class() { + assertTrue("H5 open ids is 0",H5.getOpenIDCount()==0); + System.out.print(testname.getMethodName()); + + hdf_java_classid = -1; + try { + hdf_java_classid = H5.H5Eregister_class("HDF-Java-Error", "hdf-java", "2.5"); + current_stackid = H5.H5Eget_current_stack(); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eget_stack_class: " + err); + } + } + + @After + public void H5Erestore_stack_class() { + try { + H5.H5Eunregister_class(hdf_java_classid); + hdf_java_classid = -1; + H5.H5Eclose_stack(current_stackid); + current_stackid = -1; + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Erestore_stack_class: " + err); + } + System.out.println(); + } + + @Test + public void testH5Eget_class_name() { + try { + String class_name = H5.H5Eget_class_name(hdf_java_classid); + assertNotNull("H5.H5Eget_class_name: " + class_name, class_name); + assertEquals("H5.H5Eget_class_name: ", "HDF-Java-Error", class_name); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eget_class_name: " + err); + } + } + + @Test + public void testH5Eprint2() { + try { + assertFalse(current_stackid < 0); + H5.H5Eprint2(current_stackid, null); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eprint2: " + err); + } + } + + @Ignore("Tested with create_msg_major[minor]") + public void testH5Eclose_msg() { + fail("Not yet implemented"); + } + + @Test(expected = NullPointerException.class) + public void testH5Ecreate_msg_name_null() throws Throwable { + H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, null); + } + + @Test + public void testH5Ecreate_msg_major() { + try { + long err_id = H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, "Error in Test"); + assertFalse("H5.H5Ecreate_msg_major: " + err_id, err_id < 0); + H5.H5Eclose_msg(err_id); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Ecreate_msg_major: " + err); + } + } + + @Test + public void testH5Ecreate_msg_minor() { + try { + long err_id = H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MINOR, "Error in Test Function"); + assertFalse("H5.H5Ecreate_msg_minor: " + err_id, err_id < 0); + H5.H5Eclose_msg(err_id); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Ecreate_msg_minor: " + err); + } + } + + @Test + public void testH5Eget_msg() { + int[] error_msg_type = { HDF5Constants.H5E_MINOR }; + long err_id = -1; + String msg = null; + try { + err_id = H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, "Error in Test"); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eget_msg: " + err); + } + assertFalse("H5.H5Eget_msg: H5Ecreate_msg - " + err_id, err_id < 0); + try { + msg = H5.H5Eget_msg(err_id, error_msg_type); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eget_msg: " + err); + } + assertNotNull("H5.H5Eget_msg: " + msg, msg); + assertEquals("H5.H5Eget_msg: ", "Error in Test", msg); + assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MAJOR, error_msg_type[0]); + try { + H5.H5Eclose_msg(err_id); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eget_msg: " + err); + } + } + + @Test + public void testH5Ecreate_stack() { + long stk_id = -1; + try { + stk_id = H5.H5Ecreate_stack(); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Ecreate_stack: " + err); + } + assertFalse("H5.H5Ecreate_stack: " + stk_id, stk_id < 0); + try { + H5.H5Eclose_stack(stk_id); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Ecreate_stack: " + err); + } + } + + @Test + public void testH5EprintInt() { + assertFalse(current_stackid < 0); + try { + H5.H5Eprint2(current_stackid, null); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5EprintInt: " + err); + } + } + + @Test + public void testH5EclearInt() { + try { + H5.H5Eclear(current_stackid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5EclearInt: " + err); + } + } + + @Test + public void testH5Eclear2() { + try { + H5.H5Eclear2(current_stackid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eclear2: " + err); + } + } + + @Test + public void testH5Eauto_is_v2() { + boolean is_v2 = false; + try { + is_v2 = H5.H5Eauto_is_v2(current_stackid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eauto_is_v2: " + err); + } + assertTrue("H5.H5Eauto_is_v2: ", is_v2); + } + + @Test + public void testH5Eget_num() { + long num_msg = -1; + try { + num_msg = H5.H5Eget_num(current_stackid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Eget_num: " + err); + } + assertTrue("H5.H5Eget_num", num_msg == 0); + } + + @Test + public void testH5Eget_num_with_msg() { + try { + H5.H5Eset_current_stack(current_stackid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Epop: " + err); + } + try { + H5.H5Fopen("test", 0, 1); + } + catch (Throwable err) { + } + + // save current stack contents + try { + current_stackid = H5.H5Eget_current_stack(); + } + catch (HDF5LibraryException err) { + err.printStackTrace(); + fail("H5.H5Epop: " + err); + } + + long num_msg = -1; + try { + num_msg = H5.H5Eget_num(current_stackid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Epop: " + err); + } + assertTrue("H5.H5Eget_num_with_msg #:" + num_msg, num_msg > 0); + } + +} diff --git a/java/test/TestH5Eregister.java b/java/test/TestH5Eregister.java index 742b47f..1b87699 100644 --- a/java/test/TestH5Eregister.java +++ b/java/test/TestH5Eregister.java @@ -60,8 +60,7 @@ public class TestH5Eregister { public void testH5Eregister_class() { long hdf_java_classid = -1; try { - hdf_java_classid = H5.H5Eregister_class("HDF-Java-Error", - "hdf-java", "2.5"); + hdf_java_classid = H5.H5Eregister_class("HDF-Java-Error", "hdf-java", "2.5"); } catch (Throwable err) { fail("H5.H5Eregister_class: " + err); diff --git a/java/test/TestH5F.java b/java/test/TestH5F.java index ac2f70d..e4f9a30 100644 --- a/java/test/TestH5F.java +++ b/java/test/TestH5F.java @@ -31,7 +31,7 @@ import org.junit.rules.TestName; public class TestH5F { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testF.h5"; private static final int COUNT_OBJ_FILE = 1; private static final int COUNT_OBJ_DATASET = 0; diff --git a/java/test/TestH5Fbasic.java b/java/test/TestH5Fbasic.java index faf0bf7..11d6644 100644 --- a/java/test/TestH5Fbasic.java +++ b/java/test/TestH5Fbasic.java @@ -32,8 +32,8 @@ import org.junit.rules.TestName; public class TestH5Fbasic { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; - private static final String TXT_FILE = "test.txt"; + private static final String H5_FILE = "testFb.h5"; + private static final String TXT_FILE = "testFb.txt"; long H5fid = -1; private final void _deleteFile(String filename) { diff --git a/java/test/TestH5G.java b/java/test/TestH5G.java index 1a67990..6c30187 100644 --- a/java/test/TestH5G.java +++ b/java/test/TestH5G.java @@ -33,8 +33,8 @@ import org.junit.rules.TestName; public class TestH5G { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; - private static final String H5_FILE2 = "test2.h5"; + private static final String H5_FILE = "testG.h5"; + private static final String H5_FILE2 = "testG2.h5"; private static final String[] GROUPS = { "/G1", "/G1/G11", "/G1/G12", "/G1/G11/G111", "/G1/G11/G112", "/G1/G11/G113", "/G1/G11/G114" }; private static final String[] GROUPS2 = { "/G1", "/G1/G14", "/G1/G12", "/G1/G13", "/G1/G11"}; diff --git a/java/test/TestH5Gbasic.java b/java/test/TestH5Gbasic.java index 6ff7d03..202f6ff 100644 --- a/java/test/TestH5Gbasic.java +++ b/java/test/TestH5Gbasic.java @@ -32,7 +32,7 @@ import org.junit.rules.TestName; public class TestH5Gbasic { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testGb.h5"; long H5fid = -1; private final long _createGroup(long fid, String name) { diff --git a/java/test/TestH5Lbasic.java b/java/test/TestH5Lbasic.java index 9e832f3..0a836c1 100644 --- a/java/test/TestH5Lbasic.java +++ b/java/test/TestH5Lbasic.java @@ -34,7 +34,7 @@ import org.junit.rules.TestName; public class TestH5Lbasic { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "h5ex_g_iterate.hdf"; + private static final String H5_FILE = "h5ex_g_iterateL1.hdf"; long H5fid = -1; @Before diff --git a/java/test/TestH5Lcreate.java b/java/test/TestH5Lcreate.java index dcb076d..06c4ac1 100644 --- a/java/test/TestH5Lcreate.java +++ b/java/test/TestH5Lcreate.java @@ -37,8 +37,8 @@ import org.junit.rules.TestName; public class TestH5Lcreate { @Rule public TestName testname = new TestName(); - private static final String H5_EXTFILE = "h5ex_g_iterate.hdf"; - private static final String H5_FILE = "test.h5"; + private static final String H5_EXTFILE = "h5ex_g_iterateL2.hdf"; + private static final String H5_FILE = "testL.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 6; long H5fcpl = -1; @@ -147,6 +147,13 @@ public class TestH5Lcreate { H5.H5Pset_link_creation_order(H5fcpl, HDF5Constants.H5P_CRT_ORDER_TRACKED+HDF5Constants.H5P_CRT_ORDER_INDEXED); H5fid = H5.H5Fcreate(H5_FILE, HDF5Constants.H5F_ACC_TRUNC, H5fcpl, HDF5Constants.H5P_DEFAULT); + } + catch (Throwable err) { + err.printStackTrace(); + fail("TestH5L.createH5file: " + err); + } + assertTrue("TestH5L.createH5file: H5.H5Fcreate: ",H5fid > 0); + try { H5dsid = H5.H5Screate_simple(2, H5dims, null); H5did1 = _createDataset(H5fid, H5dsid, "DS1", HDF5Constants.H5P_DEFAULT); H5gid = _createGroup(H5fid, "/G1"); @@ -154,9 +161,8 @@ public class TestH5Lcreate { } catch (Throwable err) { err.printStackTrace(); - fail("TestH5L.createH5file: " + err); + fail("TestH5L.createH5objs: " + err); } - assertTrue("TestH5L.createH5file: H5.H5Fcreate: ",H5fid > 0); assertTrue("TestH5L.createH5file: H5.H5Screate_simple: ",H5dsid > 0); assertTrue("TestH5L.createH5file: H5.H5Gcreate: ",H5gid > 0); diff --git a/java/test/TestH5Obasic.java b/java/test/TestH5Obasic.java index 923d2b1..8c6689f 100644 --- a/java/test/TestH5Obasic.java +++ b/java/test/TestH5Obasic.java @@ -34,7 +34,7 @@ import org.junit.rules.TestName; public class TestH5Obasic { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "h5ex_g_iterate.hdf"; + private static final String H5_FILE = "h5ex_g_iterateO1.hdf"; private static long H5la_ds1 = -1; private static long H5la_l1 = -1; private static long H5la_dt1 = -1; diff --git a/java/test/TestH5Ocreate.java b/java/test/TestH5Ocreate.java index 559e12b..c3e36b4 100644 --- a/java/test/TestH5Ocreate.java +++ b/java/test/TestH5Ocreate.java @@ -37,8 +37,8 @@ import org.junit.rules.TestName; public class TestH5Ocreate { @Rule public TestName testname = new TestName(); - private static final String H5_EXTFILE = "h5ex_g_iterate.hdf"; - private static final String H5_FILE = "test.h5"; + private static final String H5_EXTFILE = "h5ex_g_iterateO2.hdf"; + private static final String H5_FILE = "testO.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 6; long H5fcpl = -1; diff --git a/java/test/TestH5Oparams.java b/java/test/TestH5Oparams.java index 2af190f..8b3c673 100644 --- a/java/test/TestH5Oparams.java +++ b/java/test/TestH5Oparams.java @@ -71,27 +71,27 @@ public class TestH5Oparams { @Test(expected = HDF5LibraryException.class) public void testH5Oget_info_invalid() throws Throwable { - H5.H5Oget_info(-1); + H5.H5Oget_info(-1, 0); } @Test(expected = NullPointerException.class) public void testH5Oget_info_by_name_null() throws Throwable { - H5.H5Oget_info_by_name(-1, null, HDF5Constants.H5P_DEFAULT); + H5.H5Oget_info_by_name(-1, null, 0, HDF5Constants.H5P_DEFAULT); } @Test(expected = HDF5LibraryException.class) public void testH5Oget_info_by_name_invalid() throws Throwable { - H5.H5Oget_info_by_name(-1, "/testH5Gcreate", HDF5Constants.H5P_DEFAULT); + H5.H5Oget_info_by_name(-1, "/testH5Gcreate", 0, HDF5Constants.H5P_DEFAULT); } @Test(expected = HDF5LibraryException.class) public void testH5Oget_info_by_idx_invalid() throws Throwable { - H5.H5Oget_info_by_idx(-1, "Bogus", -1, -1, -1L, -1); + H5.H5Oget_info_by_idx(-1, "Bogus", -1, -1, -1L, 0, -1); } @Test(expected = NullPointerException.class) public void testH5Oget_info_by_idx_null() throws Throwable { - H5.H5Oget_info_by_idx(-1, null, 0, 0, 0L, 0); + H5.H5Oget_info_by_idx(-1, null, 0, 0, 0L, 0, 0); } @Test(expected = HDF5LibraryException.class) @@ -106,17 +106,17 @@ public class TestH5Oparams { @Test(expected = NullPointerException.class) public void testH5Ovisit_null() throws Throwable { - H5.H5Ovisit(-1, -1, -1, null, null); + H5.H5Ovisit(-1, -1, -1, null, null, 0); } @Test(expected = NullPointerException.class) public void testH5Ovisit_by_name_nullname() throws Throwable { - H5.H5Ovisit_by_name(-1, null, -1, -1, null, null, -1); + H5.H5Ovisit_by_name(-1, null, -1, -1, null, null, 0, -1); } @Test(expected = NullPointerException.class) public void testH5Ovisit_by_name_null() throws Throwable { - H5.H5Ovisit_by_name(-1, "Bogus", -1, -1, null, null, -1); + H5.H5Ovisit_by_name(-1, "Bogus", -1, -1, null, null, 0, -1); } @Test(expected = HDF5LibraryException.class) diff --git a/java/test/TestH5P.java b/java/test/TestH5P.java index 521a53c..e6105d9 100644 --- a/java/test/TestH5P.java +++ b/java/test/TestH5P.java @@ -36,7 +36,7 @@ import org.junit.rules.TestName; public class TestH5P { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testP.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 6; long[] H5dims = { DIM_X, DIM_Y }; diff --git a/java/test/TestH5PData.java b/java/test/TestH5PData.java index c414d67..dfd8e87 100644 --- a/java/test/TestH5PData.java +++ b/java/test/TestH5PData.java @@ -34,7 +34,7 @@ import org.junit.rules.TestName; public class TestH5PData { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testPD.h5"; private static final int DIM_X = 12; private static final int DIM_Y = 18; long H5fid = -1; diff --git a/java/test/TestH5Pfapl.java b/java/test/TestH5Pfapl.java index 0651502..10a79dd 100644 --- a/java/test/TestH5Pfapl.java +++ b/java/test/TestH5Pfapl.java @@ -38,10 +38,10 @@ import org.junit.rules.TestName; public class TestH5Pfapl { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; - private static final String H5_LOG_FILE = "test.log"; - private static final String H5_FAMILY_FILE = "test%05d"; - private static final String H5_MULTI_FILE = "testmulti"; + private static final String H5_FILE = "testPf.h5"; + private static final String H5_LOG_FILE = "testPf.log"; + private static final String H5_FAMILY_FILE = "testPf%05d"; + private static final String H5_MULTI_FILE = "testPfmulti"; private static char MULTI_LETTERS[] = {'X','s','b','r','g','l','o'}; private static final int DIM_X = 4; private static final int DIM_Y = 6; diff --git a/java/test/TestH5T.java b/java/test/TestH5T.java index 0c68d2e..1a7e58b 100644 --- a/java/test/TestH5T.java +++ b/java/test/TestH5T.java @@ -32,7 +32,7 @@ import org.junit.rules.TestName; public class TestH5T { @Rule public TestName testname = new TestName(); - private static final String H5_FILE = "test.h5"; + private static final String H5_FILE = "testT.h5"; long H5fid = -1; long H5strdid = -1; diff --git a/java/test/junit.sh.in b/java/test/junit.sh.in index 77379d0..5d69bee 100644 --- a/java/test/junit.sh.in +++ b/java/test/junit.sh.in @@ -16,6 +16,9 @@ top_builddir=@top_builddir@ top_srcdir=@top_srcdir@ srcdir=@srcdir@ +USE_FILTER_SZIP="@USE_FILTER_SZIP@" +USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@" + TESTNAME=JUnitInterface EXIT_SUCCESS=0 EXIT_FAILURE=1 @@ -59,20 +62,49 @@ $top_builddir/java/src/jni/.libs/libhdf5_java.* LIST_JAR_FILES=" $HDFLIB_HOME/hamcrest-core.jar $HDFLIB_HOME/junit.jar -$HDFLIB_HOME/slf4j-api-1.7.5.jar -$HDFLIB_HOME/ext/slf4j-simple-1.7.5.jar +$HDFLIB_HOME/slf4j-api-1.7.25.jar +$HDFLIB_HOME/ext/slf4j-simple-1.7.25.jar $top_builddir/java/src/$JARFILE " LIST_DATA_FILES=" -$HDFTEST_HOME/JUnit-interface.txt -$HDFTEST_HOME/JUnit-interface.ert +$HDFTEST_HOME/testfiles/JUnit-TestH5.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Eparams.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Eregister.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Fparams.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Fbasic.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5F.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Fswmr.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Gbasic.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5G.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Sbasic.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5S.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Tparams.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Tbasic.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5T.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Dparams.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5D.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Dplist.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Lparams.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Lbasic.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Lcreate.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5R.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5P.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5PData.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Pfapl.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Pvirtual.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Plist.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5A.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Oparams.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Obasic.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Ocreate.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Ocopy.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5PL.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Z.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5E.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Edefault.txt +$HDFTEST_HOME/testfiles/JUnit-TestH5Giterate.txt " -expect="JUnit-interface.txt" -actual="JUnit-interface.out" -actual_err="JUnit-interface.err" -actual_ext="JUnit-interface.ext" - # # copy files from source dirs to test dir # @@ -173,14 +205,18 @@ COPY_DATAFILES_TO_BLDDIR() fi done $CP -f $HDFTEST_HOME/h5ex_g_iterate.orig $BLDDIR/h5ex_g_iterate.hdf + $CP -f $HDFTEST_HOME/h5ex_g_iterate.orig $BLDDIR/h5ex_g_iterateL1.hdf + $CP -f $HDFTEST_HOME/h5ex_g_iterate.orig $BLDDIR/h5ex_g_iterateL2.hdf + $CP -f $HDFTEST_HOME/h5ex_g_iterate.orig $BLDDIR/h5ex_g_iterateO1.hdf + $CP -f $HDFTEST_HOME/h5ex_g_iterate.orig $BLDDIR/h5ex_g_iterateO2.hdf } CLEAN_DATAFILES_AND_BLDDIR() { - $RM $BLDDIR/h5ex_g_iterate.hdf - $RM $BLDDIR/JUnit-interface.out - $RM $BLDDIR/JUnit-interface.err - $RM $BLDDIR/JUnit-interface.ext + $RM $BLDDIR/h5ex_g_iterate*.hdf + $RM $BLDDIR/JUnit-*.out + $RM $BLDDIR/JUnit-*.ext + $RM $BLDDIR/JUnit-*.err # skip rm if srcdir is same as destdir # this occurs when build/test performed in source dir and # make cp fail @@ -188,8 +224,8 @@ CLEAN_DATAFILES_AND_BLDDIR() INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'` INODE_DDIR=`$LS -i -d $BLDDIR | $AWK -F' ' '{print $1}'` if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then - $RM $BLDDIR/JUnit-interface.ert - $RM $BLDDIR/JUnit-interface.txt + $RM $BLDDIR/JUnit-*.ert + $RM $BLDDIR/JUnit-*.txt fi } @@ -213,7 +249,7 @@ JAVAEXEFLAGS=@H5_JAVAFLAGS@ COPY_LIBFILES_TO_BLDLIBDIR COPY_DATAFILES_TO_BLDDIR -CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/junit.jar:"$BLDLIBDIR"/hamcrest-core.jar:"$BLDLIBDIR"/slf4j-api-1.7.5.jar:"$BLDLIBDIR"/slf4j-simple-1.7.5.jar:"$TESTJARFILE"" +CPATH=".:"$BLDLIBDIR"/"$JARFILE":"$BLDLIBDIR"/junit.jar:"$BLDLIBDIR"/hamcrest-core.jar:"$BLDLIBDIR"/slf4j-api-1.7.25.jar:"$BLDLIBDIR"/slf4j-simple-1.7.25.jar:"$TESTJARFILE"" TEST=/usr/bin/test if [ ! -x /usr/bin/test ] @@ -257,12 +293,681 @@ esac export LD_LIBRARY_PATH -echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestAll" - # Run test. - TESTING JUnit - ( - $RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestAll - ) >$actual_ext 2>$actual_err +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5" +TESTING JUnit-TestH5 +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5 > JUnit-TestH5.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5.ext > JUnit-TestH5.out + +if diff JUnit-TestH5.out JUnit-TestH5.txt > /dev/null; then + echo " PASSED JUnit-TestH5" +else + echo "**FAILED** JUnit-TestH5" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5.txt JUnit-TestH5.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Eparams" +TESTING JUnit-TestH5Eparams +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Eparams > JUnit-TestH5Eparams.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Eparams.ext > JUnit-TestH5Eparams.out + +if diff JUnit-TestH5Eparams.out JUnit-TestH5Eparams.txt > /dev/null; then + echo " PASSED JUnit-TestH5Eparams" +else + echo "**FAILED** JUnit-TestH5Eparams" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Eparams.txt JUnit-TestH5Eparams.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Eregister" +TESTING JUnit-TestH5Eregister +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Eregister > JUnit-TestH5Eregister.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Eregister.ext > JUnit-TestH5Eregister.out + +if diff JUnit-TestH5Eregister.out JUnit-TestH5Eregister.txt > /dev/null; then + echo " PASSED JUnit-TestH5Eregister" +else + echo "**FAILED** JUnit-TestH5Eregister" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Eregister.txt JUnit-TestH5Eregister.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Fparams" +TESTING JUnit-TestH5Fparams +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Fparams > JUnit-TestH5Fparams.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Fparams.ext > JUnit-TestH5Fparams.out + +if diff JUnit-TestH5Fparams.out JUnit-TestH5Fparams.txt > /dev/null; then + echo " PASSED JUnit-TestH5Fparams" +else + echo "**FAILED** JUnit-TestH5Fparams" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Fparams.txt JUnit-TestH5Fparams.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Fbasic" +TESTING JUnit-TestH5Fbasic +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Fbasic > JUnit-TestH5Fbasic.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Fbasic.ext > JUnit-TestH5Fbasic.out + +if diff JUnit-TestH5Fbasic.out JUnit-TestH5Fbasic.txt > /dev/null; then + echo " PASSED JUnit-TestH5Fbasic" +else + echo "**FAILED** JUnit-TestH5Fbasic" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Fbasic.txt JUnit-TestH5Fbasic.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5F" +TESTING JUnit-TestH5F +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5F > JUnit-TestH5F.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5F.ext > JUnit-TestH5F.out + +if diff JUnit-TestH5F.out JUnit-TestH5F.txt > /dev/null; then + echo " PASSED JUnit-TestH5F" +else + echo "**FAILED** JUnit-TestH5F" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5F.txt JUnit-TestH5F.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Fswmr" +TESTING JUnit-TestH5Fswmr +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Fswmr > JUnit-TestH5Fswmr.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Fswmr.ext > JUnit-TestH5Fswmr.out + +if diff JUnit-TestH5Fswmr.out JUnit-TestH5Fswmr.txt > /dev/null; then + echo " PASSED JUnit-TestH5Fswmr" +else + echo "**FAILED** JUnit-TestH5Fswmr" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Fswmr.txt JUnit-TestH5Fswmr.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Gbasic" +TESTING JUnit-TestH5Gbasic +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Gbasic > JUnit-TestH5Gbasic.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Gbasic.ext > JUnit-TestH5Gbasic.out + +if diff JUnit-TestH5Gbasic.out JUnit-TestH5Gbasic.txt > /dev/null; then + echo " PASSED JUnit-TestH5Gbasic" +else + echo "**FAILED** JUnit-TestH5Gbasic" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Gbasic.txt JUnit-TestH5Gbasic.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5G" +TESTING JUnit-TestH5G +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5G > JUnit-TestH5G.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5G.ext > JUnit-TestH5G.out + +if diff JUnit-TestH5G.out JUnit-TestH5G.txt > /dev/null; then + echo " PASSED JUnit-TestH5G" +else + echo "**FAILED** JUnit-TestH5G" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5G.txt JUnit-TestH5G.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Sbasic" +TESTING JUnit-TestH5Sbasic +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Sbasic > JUnit-TestH5Sbasic.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Sbasic.ext > JUnit-TestH5Sbasic.out + +if diff JUnit-TestH5Sbasic.out JUnit-TestH5Sbasic.txt > /dev/null; then + echo " PASSED JUnit-TestH5Sbasic" +else + echo "**FAILED** JUnit-TestH5Sbasic" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Sbasic.txt JUnit-TestH5Sbasic.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5S" +TESTING JUnit-TestH5S +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5S > JUnit-TestH5S.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5S.ext > JUnit-TestH5S.out + +if diff JUnit-TestH5S.out JUnit-TestH5S.txt > /dev/null; then + echo " PASSED JUnit-TestH5S" +else + echo "**FAILED** JUnit-TestH5S" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5S.txt JUnit-TestH5S.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Tparams" +TESTING JUnit-TestH5Tparams +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Tparams > JUnit-TestH5Tparams.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Tparams.ext > JUnit-TestH5Tparams.out + +if diff JUnit-TestH5Tparams.out JUnit-TestH5Tparams.txt > /dev/null; then + echo " PASSED JUnit-TestH5Tparams" +else + echo "**FAILED** JUnit-TestH5Tparams" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Tparams.txt JUnit-TestH5Tparams.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Tbasic" +TESTING JUnit-TestH5Tbasic +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Tbasic > JUnit-TestH5Tbasic.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Tbasic.ext > JUnit-TestH5Tbasic.out + +if diff JUnit-TestH5Tbasic.out JUnit-TestH5Tbasic.txt > /dev/null; then + echo " PASSED JUnit-TestH5Tbasic" +else + echo "**FAILED** JUnit-TestH5Tbasic" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Tbasic.txt JUnit-TestH5Tbasic.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5T" +TESTING JUnit-TestH5T +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5T > JUnit-TestH5T.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5T.ext > JUnit-TestH5T.out + +if diff JUnit-TestH5T.out JUnit-TestH5T.txt > /dev/null; then + echo " PASSED JUnit-TestH5T" +else + echo "**FAILED** JUnit-TestH5T" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5T.txt JUnit-TestH5T.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Dparams" +TESTING JUnit-TestH5Dparams +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Dparams > JUnit-TestH5Dparams.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Dparams.ext > JUnit-TestH5Dparams.out + +if diff JUnit-TestH5Dparams.out JUnit-TestH5Dparams.txt > /dev/null; then + echo " PASSED JUnit-TestH5Dparams" +else + echo "**FAILED** JUnit-TestH5Dparams" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Dparams.txt JUnit-TestH5Dparams.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5D" +TESTING JUnit-TestH5D +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5D > JUnit-TestH5D.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5D.ext > JUnit-TestH5D.out + +if diff JUnit-TestH5D.out JUnit-TestH5D.txt > /dev/null; then + echo " PASSED JUnit-TestH5D" +else + echo "**FAILED** JUnit-TestH5D" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5D.txt JUnit-TestH5D.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Dplist" +TESTING JUnit-TestH5Dplist +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Dplist > JUnit-TestH5Dplist.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Dplist.ext > JUnit-TestH5Dplist.out + +if diff JUnit-TestH5Dplist.out JUnit-TestH5Dplist.txt > /dev/null; then + echo " PASSED JUnit-TestH5Dplist" +else + echo "**FAILED** JUnit-TestH5Dplist" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Dplist.txt JUnit-TestH5Dplist.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Lparams" +TESTING JUnit-TestH5Lparams +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Lparams > JUnit-TestH5Lparams.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Lparams.ext > JUnit-TestH5Lparams.out + +if diff JUnit-TestH5Lparams.out JUnit-TestH5Lparams.txt > /dev/null; then + echo " PASSED JUnit-TestH5Lparams" +else + echo "**FAILED** JUnit-TestH5Lparams" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Lparams.txt JUnit-TestH5Lparams.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Lbasic" +TESTING JUnit-TestH5Lbasic +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Lbasic > JUnit-TestH5Lbasic.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Lbasic.ext > JUnit-TestH5Lbasic.out + +if diff JUnit-TestH5Lbasic.out JUnit-TestH5Lbasic.txt > /dev/null; then + echo " PASSED JUnit-TestH5Lbasic" +else + echo "**FAILED** JUnit-TestH5Lbasic" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Lbasic.txt JUnit-TestH5Lbasic.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Lcreate" +TESTING JUnit-TestH5Lcreate +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Lcreate > JUnit-TestH5Lcreate.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Lcreate.ext > JUnit-TestH5Lcreate.out + +if diff JUnit-TestH5Lcreate.out JUnit-TestH5Lcreate.txt > /dev/null; then + echo " PASSED JUnit-TestH5Lcreate" +else + echo "**FAILED** JUnit-TestH5Lcreate" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Lcreate.txt JUnit-TestH5Lcreate.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5R" +TESTING JUnit-TestH5R +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5R > JUnit-TestH5R.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5R.ext > JUnit-TestH5R.out + +if diff JUnit-TestH5R.out JUnit-TestH5R.txt > /dev/null; then + echo " PASSED JUnit-TestH5R" +else + echo "**FAILED** JUnit-TestH5R" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5R.txt JUnit-TestH5R.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5P" +TESTING JUnit-TestH5P +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5P > JUnit-TestH5P.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5P.ext > JUnit-TestH5P.out + +if diff JUnit-TestH5P.out JUnit-TestH5P.txt > /dev/null; then + echo " PASSED JUnit-TestH5P" +else + echo "**FAILED** JUnit-TestH5P" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5P.txt JUnit-TestH5P.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5PData" +TESTING JUnit-TestH5PData +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5PData > JUnit-TestH5PData.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5PData.ext > JUnit-TestH5PData.out + +if diff JUnit-TestH5PData.out JUnit-TestH5PData.txt > /dev/null; then + echo " PASSED JUnit-TestH5PData" +else + echo "**FAILED** JUnit-TestH5PData" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5PData.txt JUnit-TestH5PData.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Pfapl" +TESTING JUnit-TestH5Pfapl +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Pfapl > JUnit-TestH5Pfapl.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Pfapl.ext > JUnit-TestH5Pfapl.out + +if diff JUnit-TestH5Pfapl.out JUnit-TestH5Pfapl.txt > /dev/null; then + echo " PASSED JUnit-TestH5Pfapl" +else + echo "**FAILED** JUnit-TestH5Pfapl" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Pfapl.txt JUnit-TestH5Pfapl.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Pvirtual" +TESTING JUnit-TestH5Pvirtual +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Pvirtual > JUnit-TestH5Pvirtual.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Pvirtual.ext > JUnit-TestH5Pvirtual.out + +if diff JUnit-TestH5Pvirtual.out JUnit-TestH5Pvirtual.txt > /dev/null; then + echo " PASSED JUnit-TestH5Pvirtual" +else + echo "**FAILED** JUnit-TestH5Pvirtual" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Pvirtual.txt JUnit-TestH5Pvirtual.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Plist" +TESTING JUnit-TestH5Plist +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Plist > JUnit-TestH5Plist.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Plist.ext > JUnit-TestH5Plist.out + +if diff JUnit-TestH5Plist.out JUnit-TestH5Plist.txt > /dev/null; then + echo " PASSED JUnit-TestH5Plist" +else + echo "**FAILED** JUnit-TestH5Plist" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Plist.txt JUnit-TestH5Plist.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5A" +TESTING JUnit-TestH5A +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5A > JUnit-TestH5A.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5A.ext > JUnit-TestH5A.out + +if diff JUnit-TestH5A.out JUnit-TestH5A.txt > /dev/null; then + echo " PASSED JUnit-TestH5A" +else + echo "**FAILED** JUnit-TestH5A" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5A.txt JUnit-TestH5A.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Oparams" +TESTING JUnit-TestH5Oparams +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Oparams > JUnit-TestH5Oparams.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Oparams.ext > JUnit-TestH5Oparams.out + +if diff JUnit-TestH5Oparams.out JUnit-TestH5Oparams.txt > /dev/null; then + echo " PASSED JUnit-TestH5Oparams" +else + echo "**FAILED** JUnit-TestH5Oparams" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Oparams.txt JUnit-TestH5Oparams.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Obasic" +TESTING JUnit-TestH5Obasic +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Obasic > JUnit-TestH5Obasic.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Obasic.ext > JUnit-TestH5Obasic.out + +if diff JUnit-TestH5Obasic.out JUnit-TestH5Obasic.txt > /dev/null; then + echo " PASSED JUnit-TestH5Obasic" +else + echo "**FAILED** JUnit-TestH5Obasic" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Obasic.txt JUnit-TestH5Obasic.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Ocreate" +TESTING JUnit-TestH5Ocreate +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Ocreate > JUnit-TestH5Ocreate.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Ocreate.ext > JUnit-TestH5Ocreate.out + +if diff JUnit-TestH5Ocreate.out JUnit-TestH5Ocreate.txt > /dev/null; then + echo " PASSED JUnit-TestH5Ocreate" +else + echo "**FAILED** JUnit-TestH5Ocreate" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Ocreate.txt JUnit-TestH5Ocreate.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Ocopy" +TESTING JUnit-TestH5Ocopy +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Ocopy > JUnit-TestH5Ocopy.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Ocopy.ext > JUnit-TestH5Ocopy.out + +if diff JUnit-TestH5Ocopy.out JUnit-TestH5Ocopy.txt > /dev/null; then + echo " PASSED JUnit-TestH5Ocopy" +else + echo "**FAILED** JUnit-TestH5Ocopy" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Ocopy.txt JUnit-TestH5Ocopy.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5PL" +TESTING JUnit-TestH5PL +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5PL > JUnit-TestH5PL.ext) + +# Extract file name, line number, version and thread IDs because they may be different +sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5PL.ext > JUnit-TestH5PL.out + +if diff JUnit-TestH5PL.out JUnit-TestH5PL.txt > /dev/null; then + echo " PASSED JUnit-TestH5PL" +else + echo "**FAILED** JUnit-TestH5PL" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5PL.txt JUnit-TestH5PL.out |sed 's/^/ /' +fi + +echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Z" +TESTING JUnit-TestH5Z +($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Z > JUnit-TestH5Z.ext) # Extract file name, line number, version and thread IDs because they may be different sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ @@ -270,19 +975,84 @@ sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ - $actual_ext > $actual + JUnit-TestH5Z.ext > JUnit-TestH5Z.out -# SunOS does not support this. Skip it. -if [ $myos = SunOS ]; then - echo " SKIPPED" +if diff JUnit-TestH5Z.out JUnit-TestH5Z.txt > /dev/null; then + echo " PASSED JUnit-TestH5Z" else - if $CMP $expect $actual; then - echo " PASSED" + echo "**FAILED** JUnit-TestH5Z" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Z.txt JUnit-TestH5Z.out |sed 's/^/ /' +fi + +if test "X-$BUILD_MODE" = "X-production" ; then + if test $USE_FILTER_SZIP = "yes"; then + echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5E" + TESTING JUnit-TestH5E + ($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5E > JUnit-TestH5E.ext) + + # Extract file name, line number, version and thread IDs because they may be different + sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5E.ext > JUnit-TestH5E.out + + if diff JUnit-TestH5E.out JUnit-TestH5E.txt > /dev/null; then + echo " PASSED JUnit-TestH5E" + else + echo "**FAILED** JUnit-TestH5E" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5E.txt JUnit-TestH5E.out |sed 's/^/ /' + fi + fi + + if test $USE_FILTER_SZIP = "yes"; then + echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Edefault" + TESTING JUnit-TestH5Edefault + ($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Edefault > JUnit-TestH5Edefault.ext) + + # Extract file name, line number, version and thread IDs because they may be different + sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Edefault.ext > JUnit-TestH5Edefault.out + + if diff JUnit-TestH5Edefault.out JUnit-TestH5Edefault.txt > /dev/null; then + echo " PASSED JUnit-TestH5Edefault" + else + echo "**FAILED** JUnit-TestH5Edefault" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF JUnit-TestH5Edefault.txt JUnit-TestH5Edefault.out |sed 's/^/ /' + fi + fi +fi +if test $USE_FILTER_SZIP = "yes"; then + echo "$JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Giterate" + TESTING JUnit-TestH5Giterate + ($RUNSERIAL $JAVAEXE $JAVAEXEFLAGS -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=trace -Djava.library.path=$BLDLIBDIR -cp $CLASSPATH -ea org.junit.runner.JUnitCore test.TestH5Giterate > JUnit-TestH5Giterate.ext) + + # Extract file name, line number, version and thread IDs because they may be different + sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/Time: [0-9]*\.[0-9]*/Time: XXXX/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + JUnit-TestH5Giterate.ext > JUnit-TestH5Giterate.out + + if diff JUnit-TestH5Giterate.out JUnit-TestH5Giterate.txt > /dev/null; then + echo " PASSED JUnit-TestH5Giterate" else - echo "*FAILED*" + echo "**FAILED** JUnit-TestH5Giterate" echo " Expected result differs from actual result" nerrors="`expr $nerrors + 1`" - test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /' + test yes = "$verbose" && $DIFF JUnit-TestH5Giterate.txt JUnit-TestH5Giterate.out |sed 's/^/ /' fi fi diff --git a/java/test/testfiles/JUnit-TestH5.txt b/java/test/testfiles/JUnit-TestH5.txt new file mode 100644 index 0000000..37c5b65 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5.txt @@ -0,0 +1,15 @@ +JUnit version 4.11 +.testJ2C +.testIsSerializable +.testH5garbage_collect +.testH5error_off +.serializeToDisk +.testH5open +.testH5check_version +.testH5get_libversion +.testH5set_free_list_limits + +Time: XXXX + +OK (9 tests) + diff --git a/java/test/testfiles/JUnit-TestH5A.txt b/java/test/testfiles/JUnit-TestH5A.txt new file mode 100644 index 0000000..2026d21 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5A.txt @@ -0,0 +1,34 @@ +JUnit version 4.11 +.testH5Acreate2_nullname +.testH5Acreate_by_name +.testH5Aget_name_by_idx +.testH5Aget_storage_size +.testH5Aiterate +.testH5Aopen_by_idx +.testH5Aopen_invalidname +.testH5Aopen +.testH5Aget_info_by_name +.testH5Aget_create_plist +.testH5Adelete_by_name +.testH5Aopen_by_name +.testH5Aget_info +.testH5Aget_name +.testH5Aexists +.testH5Aget_info_by_idx +.testH5Arename +.testH5Adelete_by_idx_name1 +.testH5Adelete_by_idx_name2 +.testH5Adelete_by_idx_order +.testH5Arename_by_name +.testH5Acreate2_invalidobject +.testH5Acreate2 +.testH5Aiterate_by_name +.testH5Adelete_by_idx_null +.testH5Adelete_by_idx_invalidobject +.testH5Awrite_readVL +.testH5Aget_info1 + +Time: XXXX + +OK (28 tests) + diff --git a/java/test/testfiles/JUnit-TestH5D.txt b/java/test/testfiles/JUnit-TestH5D.txt new file mode 100644 index 0000000..987655b --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5D.txt @@ -0,0 +1,25 @@ +JUnit version 4.11 +.testH5Dget_storage_size +.testH5Diterate_write +.testH5Dcreate +.testH5Dget_offset +.testH5Dget_type +.testH5Dfill +.testH5Dopen +.testH5Dcreate_anon +.testH5Dfill_null +.testH5Dget_storage_size_empty +.testH5Diterate +.testH5Dget_access_plist +.testH5Dvlen_read_invalid_buffer +.testH5Dvlen_get_buf_size +.testH5Dget_space_closed +.testH5Dget_space_status +.testH5Dvlen_write_read +.testH5Dget_space +.testH5Dget_type_closed + +Time: XXXX + +OK (19 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Dparams.txt b/java/test/testfiles/JUnit-TestH5Dparams.txt new file mode 100644 index 0000000..9751be4 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Dparams.txt @@ -0,0 +1,26 @@ +JUnit version 4.11 +.testH5Dget_space_status_invalid +.testH5Dget_access_plist_invalid +.testH5Dget_type_invalid +.testH5Dget_create_plist_invalid +.testH5Dget_offset_invalid +.testH5Dvlen_get_buf_size_invalid +.testH5Dcreate_null +.testH5Dset_extent_status_null +.testH5Dvlen_reclaim_null +.testH5Dcreate_invalid +.testH5Dcreate_anon_invalid +.testH5Dset_extent_status_invalid +.testH5Dvlen_reclaim_invalid +.testH5Dopen_invalid +.testH5Dclose_invalid +.testH5Dflush_invalid +.testH5Drefresh_invalid +.testH5Dget_storage_size_invalid +.testH5Dget_space_invalid +.testH5Dopen_null + +Time: XXXX + +OK (20 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Dplist.txt b/java/test/testfiles/JUnit-TestH5Dplist.txt new file mode 100644 index 0000000..1dfbed1 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Dplist.txt @@ -0,0 +1,7 @@ +JUnit version 4.11 +.testH5Dset_extent + +Time: XXXX + +OK (1 test) + diff --git a/java/test/testfiles/JUnit-TestH5E.txt b/java/test/testfiles/JUnit-TestH5E.txt new file mode 100644 index 0000000..8c5e5e4 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5E.txt @@ -0,0 +1,11 @@ +JUnit version 4.11 +.testH5Eget_msg_major +.testH5Eget_msg_minor +.testH5Epush +.testH5Ewalk +.testH5Epop + +Time: XXXX + +OK (5 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Edefault.txt b/java/test/testfiles/JUnit-TestH5Edefault.txt new file mode 100644 index 0000000..62497f9 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Edefault.txt @@ -0,0 +1,60 @@ +JUnit version 4.11 +.testH5EprintInt +.testH5Eset_current_stack_invalid_stkid +.testH5Eset_current_stack +.testH5Eget_num +.testH5Eclear +.testH5Eprint +.testH5Epush_null_name +.testH5Eget_num_with_msg +.testH5Eclear2_with_msg +.testH5Epush_invalid_stkid +.testH5Eget_current_stack +.testH5Ecreate_stack +.testH5Eget_msg_invalid_msgid +.testH5Eauto_is_v2 +.testH5EclearInt +.testH5Eauto_is_v2_invalid_stkid +.testH5Eclose_msg_invalid_errid +.testH5Eclose_stack_invalid_stackid +.testH5Eget_class_name_invalid_classname +.testH5Eget_num_invalid_stkid +.testH5EprintInt_invalid_classid +.testH5Epop +.testH5Epop_invalid_stkid +.testH5Eget_current_stack_pop +.testH5Eget_class_name_invalid_classid +.testH5Ecreate_msg_invalid_errid +.testH5Eclear2_invalid_stkid +.testH5Eprint2_invalid_classid + +Time: XXXX + +OK (28 tests) + +HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): + #000: (file name) line (number) in H5Fopen(): unable to open file + major: File accessibilty + minor: Unable to open file + #001: (file name) line (number) in H5F__open(): unable to open file + major: File accessibilty + minor: Unable to open file + #002: (file name) line (number) in H5F_open(): unable to retrieve VFL class + major: File accessibilty + minor: Can't get value + #003: (file name) line (number) in H5FD_get_class(): can't find object for ID + major: Object atom + minor: Unable to find atom information (already closed?) +HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): + #000: (file name) line (number) in H5Fopen(): unable to open file + major: File accessibilty + minor: Unable to open file + #001: (file name) line (number) in H5F__open(): unable to open file + major: File accessibilty + minor: Unable to open file + #002: (file name) line (number) in H5F_open(): unable to retrieve VFL class + major: File accessibilty + minor: Can't get value + #003: (file name) line (number) in H5FD_get_class(): can't find object for ID + major: Object atom + minor: Unable to find atom information (already closed?) diff --git a/java/test/testfiles/JUnit-TestH5Eparams.txt b/java/test/testfiles/JUnit-TestH5Eparams.txt new file mode 100644 index 0000000..92f8068 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Eparams.txt @@ -0,0 +1,19 @@ +JUnit version 4.11 +.testH5EprintInt +.testH5Eget_msg +.testH5Eget_num +.testH5Eget_class_name +.testH5Eget_num_with_msg +.testH5Eclear2 +.testH5Eprint2 +.testH5Ecreate_msg_major +.testH5Ecreate_msg_minor +.testH5Ecreate_stack +.testH5Ecreate_msg_name_null +.testH5Eauto_is_v2 +.testH5EclearInt + +Time: XXXX + +OK (13 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Eregister.txt b/java/test/testfiles/JUnit-TestH5Eregister.txt new file mode 100644 index 0000000..132e123 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Eregister.txt @@ -0,0 +1,11 @@ +JUnit version 4.11 +.testH5Eregister_class_lib_name_null +.testH5Eregister_class_version_null +.testH5Eunregister_class_invalid_classid +.testH5Eregister_class +.testH5Eregister_class_cls_name_null + +Time: XXXX + +OK (5 tests) + diff --git a/java/test/testfiles/JUnit-TestH5F.txt b/java/test/testfiles/JUnit-TestH5F.txt new file mode 100644 index 0000000..16a423e --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5F.txt @@ -0,0 +1,14 @@ +JUnit version 4.11 +.testH5Fget_access_plist +.testH5Fget_obj_ids +.testH5Fget_intent_rdwr +.testH5Fget_access_plist_closed +.testH5Fget_create_plist_closed +.testH5Fget_intent_rdonly +.testH5Fget_create_plist +.testH5Fget_obj_count + +Time: XXXX + +OK (8 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Fbasic.txt b/java/test/testfiles/JUnit-TestH5Fbasic.txt new file mode 100644 index 0000000..467e2fb --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Fbasic.txt @@ -0,0 +1,21 @@ +JUnit version 4.11 +.testH5Fget_mdc_size +.testH5Fget_mdc_hit_rate +.testH5Fis_hdf5 +.testH5Fget_freespace +.testH5Fclose +.testH5Fget_filesize +.testH5Fcreate_EXCL +.testH5Freopen_closed +.testH5Freset_mdc_hit_rate_stats +.testH5Fget_name +.testH5Fcreate +.testH5Fclear_elink_file_cache +.testH5Fclose_twice +.testH5Freopen +.testH5Fopen_read_only + +Time: XXXX + +OK (15 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Fparams.txt b/java/test/testfiles/JUnit-TestH5Fparams.txt new file mode 100644 index 0000000..9d35220 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Fparams.txt @@ -0,0 +1,17 @@ +JUnit version 4.11 +.testH5Fcreate_null +.testH5Fflush_local +.testH5Fget_info +.testH5Fmount_null +.testH5Fcreate +.testH5Fflush_global +.testH5Funmount_null +.testH5Fclose_negative +.testH5Fopen_null +.testH5Fis_hdf5_null +.testH5Fis_hdf5_text + +Time: XXXX + +OK (11 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Fswmr.txt b/java/test/testfiles/JUnit-TestH5Fswmr.txt new file mode 100644 index 0000000..f943892 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Fswmr.txt @@ -0,0 +1,8 @@ +JUnit version 4.11 +.testH5Fstart_swmr_write +.testH5Fswmr_read_attempts + +Time: XXXX + +OK (2 tests) + diff --git a/java/test/testfiles/JUnit-TestH5G.txt b/java/test/testfiles/JUnit-TestH5G.txt new file mode 100644 index 0000000..cbcea1d --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5G.txt @@ -0,0 +1,17 @@ +JUnit version 4.11 +.testH5Gget_info_by_name +.testH5Gget_create_plist +.testH5Gopen +.testH5Gget_obj_info_all_gid2 +.testH5Gget_obj_info_all_byIndexType +.testH5Gget_obj_info_max_limit +.testH5Gget_obj_info_all +.testH5Gget_obj_info_max +.testH5Gget_obj_info_all_gid +.testH5Gget_info_by_idx +.testH5Gget_info + +Time: XXXX + +OK (11 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Gbasic.txt b/java/test/testfiles/JUnit-TestH5Gbasic.txt new file mode 100644 index 0000000..3521696 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Gbasic.txt @@ -0,0 +1,33 @@ +JUnit version 4.11 +.testH5Gget_info_by_name_not_exists +.testH5Gget_info_by_idx_not_exists +.testH5Gget_info_by_name +.testH5Gget_create_plist +.testH5Gopen +.testH5Gget_info_by_idx_null +.testH5Gopen_not_exists +.testH5Gclose +.testH5Gcreate_anon +.testH5Gcreate_null +.testH5Gget_info_by_idx_fileid +.testH5Gclose_invalid +.testH5Gflush_invalid +.testH5Gopen_invalid +.testH5Grefresh_invalid +.testH5Gget_info_invalid +.testH5Gcreate_invalid +.testH5Gcreate_exists +.testH5Gget_info_by_name_null +.testH5Gget_info_by_name_invalid +.testH5Gget_create_plist_invalid +.testH5Gcreate +.testH5Gget_info_by_name_fileid +.testH5Gget_info_by_idx_invalid +.testH5Gopen_null +.testH5Gget_info_by_idx +.testH5Gget_info + +Time: XXXX + +OK (27 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Giterate.txt b/java/test/testfiles/JUnit-TestH5Giterate.txt new file mode 100644 index 0000000..38402af --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Giterate.txt @@ -0,0 +1,7 @@ +JUnit version 4.11 +.testH5Gget_obj_info_all + +Time: XXXX + +OK (1 test) + diff --git a/java/test/testfiles/JUnit-TestH5Lbasic.txt b/java/test/testfiles/JUnit-TestH5Lbasic.txt new file mode 100644 index 0000000..b9b580c --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Lbasic.txt @@ -0,0 +1,23 @@ +JUnit version 4.11 +.testH5Lget_info_by_idx_not_exist_name +.testH5Lget_name_by_idx_not_exist +.testH5Lvisit +.testH5Lget_name_by_idx_n0 +.testH5Lget_name_by_idx_n3 +.testH5Lvisit_by_name +.testH5Literate_by_name +.testH5Lget_info_hardlink +.testH5Literate +.testH5Lget_info_by_idx_n0 +.testH5Lget_info_by_idx_n3 +.testH5Lget_info_by_idx_name_not_exist_create +.testH5Lexists +.testH5Lget_info_by_idx_name_not_exist_name +.testH5Lget_info_by_idx_not_exist_create +.testH5Lget_info_not_exist +.testH5Lget_info_dataset + +Time: XXXX + +OK (17 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Lcreate.txt b/java/test/testfiles/JUnit-TestH5Lcreate.txt new file mode 100644 index 0000000..cbd5d36 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Lcreate.txt @@ -0,0 +1,42 @@ +JUnit version 4.11 +.testH5Lget_info_by_idx_n0_create +.testH5Ldelete_soft_link_dangle +.testH5Lget_value_by_idx_external_create +.testH5Ldelete_by_idx_not_exist_create +.testH5Lvisit_create +.testH5Lmove_dst_link_exists +.testH5Lcreate_soft_dangle +.testH5Literate_create +.testH5Lcopy_cur_not_exists +.testH5Lcopy +.testH5Lmove +.testH5Lget_value_by_idx_n2_create +.testH5Lget_value_soft +.testH5Ldelete_by_idx_n2_name +.testH5Lget_info_by_idx_n1_create +.testH5Lcreate_external +.testH5Lget_value_dangle +.testH5Lcreate_hard_dst_link_exists +.testH5Lget_value_by_idx_n2_name +.testH5Lcreate_soft_dst_link_exists +.testH5Lcreate_hard +.testH5Lcreate_soft +.testH5Lmove_cur_not_exists +.testH5Lcreate_hard_cur_not_exists +.testH5Lget_info_softlink_dangle +.testH5Ldelete_by_idx_n2_create +.testH5Ldelete_soft_link +.testH5Lget_info_externallink +.testH5Lcopy_dst_link_exists +.testH5Lget_value_by_idx_external_name +.testH5Ldelete_by_idx_not_exist_name +.testH5Lget_info_softlink +.testH5Lget_value_external +.testH5Lget_value_by_idx_not_exist_create +.testH5Lget_value_by_idx_not_exist_name +.testH5Ldelete_hard_link + +Time: XXXX + +OK (36 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Lparams.txt b/java/test/testfiles/JUnit-TestH5Lparams.txt new file mode 100644 index 0000000..a22741c --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Lparams.txt @@ -0,0 +1,44 @@ +JUnit version 4.11 +.testH5Lcopy_invalid +.testH5Lget_value_by_idx_null +.testH5Lcreate_external_invalid +.testH5Lexists_null +.testH5Lget_info_invalid +.testH5Lget_name_by_idx_invalid +.testH5Lmove_null_current +.testH5Literate_by_name_nullname +.testH5Lvisit_by_name_nullname +.testH5Lvisit_null +.testH5Lget_name_by_idx_null +.testH5Lcreate_hard_null_dest +.testH5Lget_value_null +.testH5Lcreate_external_null_dest +.testH5Lcreate_external_null_file +.testH5Lcreate_external_null_current +.testH5Ldelete_null +.testH5Lexists_invalid +.testH5Lmove_invalid +.testH5Lcreate_hard_invalid +.testH5Lcopy_null_dest +.testH5Lcreate_soft_null_current +.testH5Lcopy_null_current +.testH5Lget_info_by_idx_null +.testH5Literate_null +.testH5Ldelete_invalid +.testH5Lvisit_by_name_null +.testH5Ldelete_by_idx_invalid +.testH5Lget_info_by_idx_invalid +.testH5Ldelete_by_idx_null +.testH5Lcreate_soft_invalid +.testH5Lcreate_hard_null_current +.testH5Lget_value_by_idx_invalid +.testH5Lmove_null_dest +.testH5Lget_info_null +.testH5Literate_by_name_null +.testH5Lcreate_soft_null_dest +.testH5Lget_value_invalid + +Time: XXXX + +OK (38 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Obasic.txt b/java/test/testfiles/JUnit-TestH5Obasic.txt new file mode 100644 index 0000000..d015bdd --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Obasic.txt @@ -0,0 +1,29 @@ +JUnit version 4.11 +.testH5Oexists_by_name +.testH5Oget_info_by_idx_n0 +.testH5Oget_info_by_idx_n3 +.testH5Oget_info_by_name_not_exist_name +.testH5Ovisit_by_name +.testH5Oget_info_by_idx_name_not_exist_name +.testH5Oget_info_datatype +.testH5Oget_info_by_idx_not_exist_name +.testH5Oopen_by_idx_n0 +.testH5Oopen_by_idx_n3 +.testH5Oopen_not_exists +.testH5Ovisit +.testH5Oget_info_by_idx_not_exist_create +.testH5Oget_info_by_name_hardlink +.testH5Oget_info_by_name_group +.testH5Oopen_by_addr +.testH5Oget_info_by_name_not_exists +.testH5Oget_info_by_name_dataset +.testH5Oget_info_group +.testH5Oget_info_by_name_datatype +.testH5Oget_info_hardlink +.testH5Oget_info_by_idx_name_not_exist_create +.testH5Oget_info_dataset + +Time: XXXX + +OK (23 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Ocopy.txt b/java/test/testfiles/JUnit-TestH5Ocopy.txt new file mode 100644 index 0000000..32dfde7 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Ocopy.txt @@ -0,0 +1,9 @@ +JUnit version 4.11 +.testH5OcopyRefsDatasettosameFile +.testH5OcopyRefsDatasettodiffFile +.testH5OcopyRefsAttr + +Time: XXXX + +OK (3 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Ocreate.txt b/java/test/testfiles/JUnit-TestH5Ocreate.txt new file mode 100644 index 0000000..c2365e5 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Ocreate.txt @@ -0,0 +1,21 @@ +JUnit version 4.11 +.testH5Oget_info_by_idx_n0_create +.testH5Oget_info_softlink_dangle +.testH5Oget_info_softlink +.testH5Oget_info_externallink +.testH5Ocopy +.testH5Olink +.testH5Ocomment_by_name +.testH5Oget_info_by_idx_n1_create +.testH5Ocomment +.testH5Oinc_dec_count +.testH5Ocomment_by_name_clear +.testH5Ovisit_create +.testH5Ocopy_dst_link_exists +.testH5Ocomment_clear +.testH5Ocopy_cur_not_exists + +Time: XXXX + +OK (15 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Oparams.txt b/java/test/testfiles/JUnit-TestH5Oparams.txt new file mode 100644 index 0000000..94220b9 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Oparams.txt @@ -0,0 +1,30 @@ +JUnit version 4.11 +.testH5Oget_comment_by_name_null +.testH5Ovisit_by_name_nullname +.testH5Oget_info_invalid +.testH5Ovisit_by_name_null +.testH5Oget_comment_invalid +.testH5Oset_comment_by_name_invalid +.testH5Oopen_null +.testH5Oclose_invalid +.testH5Oflush_invalid +.testH5Oget_comment_by_name_invalid +.testH5Orefresh_invalid +.testH5Ocopy_null_dest +.testH5Olink_invalid +.testH5Oget_info_by_idx_invalid +.testH5Oget_info_by_idx_null +.testH5Olink_null_dest +.testH5Oget_info_by_name_invalid +.testH5Oget_info_by_name_null +.testH5Ocopy_invalid +.testH5Oset_comment_by_name_null +.testH5Ocopy_null_current +.testH5Oset_comment_invalid +.testH5Oopen_invalid +.testH5Ovisit_null + +Time: XXXX + +OK (24 tests) + diff --git a/java/test/testfiles/JUnit-TestH5P.txt b/java/test/testfiles/JUnit-TestH5P.txt new file mode 100644 index 0000000..c937ae2 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5P.txt @@ -0,0 +1,91 @@ +JUnit version 4.11 +.testH5Pset_nbit +.testH5Pset_shared_mesg_index_InvalidFlag +.testH5Pset_shared_mesg_phase_change +.testH5PH5Pset_shared_mesg_phase_change_HighMaxlistValue +.testH5P_layout +.testH5Pget_link_creation_order +.testH5Pget_efile_prefix +.testH5Pset_shared_mesg_nindexes_InvalidHIGHnindexes +.testH5P_file_space_page_size +.testH5Pget_shared_mesg_index_Invalid_indexnum +.testH5Pset_data_transform_NullExpression +.testH5Pset_elink_prefix_null +.testH5Pget_elink_prefix +.testH5Pget_nlinks +.testH5Pset_libver_bounds_invalidhigh +.testH5Pget_char_encoding +.testH5P_istore_k +.testH5Pget_link_phase_change +.testH5Pset_link_phase_change_max_compactLESSTHANmin_dense +.testH5Pget_shared_mesg_phase_change_EqualsSET +.testH5Pset_scaleoffset_Invalidscale_type +.testH5Pget_istore_k_null +.testH5Pset_libver_bounds_invalidlow +.testH5Pset_est_link_info +.testH5Pget_link_phase_change_Null +.testH5P_fill_time +.testH5Pget_userblock_null +.testH5Pset_link_creation_order_tracked +.testH5Pset_shared_mesg_index +.testH5Pset_copy_object +.testH5Pset_link_creation_order_trackedPLUSindexed +.testH5P_file_space_strategy +.testH5Pset_copy_object_invalidobject +.testH5Pset_est_link_info_InvalidValues +.testH5Pset_local_heap_size_hint +.testH5Pget_est_link_info +.testH5Pset_efile_prefix_null +.testH5Pset_scaleoffset +.testH5Pset_create_intermediate_group_invalidobject +.testH5PH5Pset_shared_mesg_phase_change_HighMinbtreeValue +.testH5Pset_create_intermediate_group +.testH5P_alloc_time +.testH5Pset_elink_acc_flags +.testH5Pset_link_phase_change_Highmax_Compact +.testH5P_chunk +.testH5P_sizes +.testH5Pset_link_creation_order_invalidvalue +.testH5P_sym_k +.testH5PH5Pset_shared_mesg_phase_change_MinbtreeGreaterThanMaxlist +.testH5Pget_version_null +.testH5Pset_scaleoffset_Invalidscale_factor +.testH5Pget_elink_prefix_null +.testH5Pget_data_transform_IllegalSize +.testH5Pget_create_intermediate_group +.testH5Pset_shared_mesg_nindexes +.testH5Pset_attr_creation_order_trackedPLUSindexed +.testH5Pget_sym_k_null +.testH5Pset_nlinks +.testH5P_obj_track_times +.testH5Pset_efile_prefix +.testH5P_userblock +.testH5Pget_local_heap_size_hint +.testH5Pset_shared_mesg_index_Invalid_indexnum +.testH5Pset_data_transform_InvalidExpression1 +.testH5Pset_data_transform_InvalidExpression2 +.testH5Pget_attr_phase_change +.testH5Pget_data_transform +.testH5Pget_create_intermediate_group_notcreated +.testH5Pset_elink_prefix +.testH5Pget_attr_creation_order +.testH5Pset_attr_creation_order_invalidvalue +.testH5Pget_shared_mesg_phase_change +.testH5Pget_shared_mesg_index +.testH5Pset_link_phase_change +.testH5Pget_shared_mesg_nindexes +.testH5Pget_version +.testH5Pset_elink_acc_flags_InvalidFlag1 +.testH5Pset_elink_acc_flags_InvalidFlag2 +.testH5Pget_link_phase_change_EqualsSet +.testH5Pget_elink_acc_flags +.testH5Pget_data_transform_ExpressionNotSet +.testH5P_fill_value +.testH5Pget_sizes_null +.testH5Pset_data_transform +.testH5Pset_attr_creation_order_tracked + +Time: XXXX + +OK (85 tests) + diff --git a/java/test/testfiles/JUnit-TestH5PData.txt b/java/test/testfiles/JUnit-TestH5PData.txt new file mode 100644 index 0000000..6356d69 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5PData.txt @@ -0,0 +1,8 @@ +JUnit version 4.11 +.testH5P_buffer +.testH5Pdata_transform + +Time: XXXX + +OK (2 tests) + diff --git a/java/test/testfiles/JUnit-TestH5PL.txt b/java/test/testfiles/JUnit-TestH5PL.txt new file mode 100644 index 0000000..fb78bb5 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5PL.txt @@ -0,0 +1,8 @@ +JUnit version 4.11 +.TestH5PLplugins +.TestH5PLpaths + +Time: XXXX + +OK (2 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Pfapl.txt b/java/test/testfiles/JUnit-TestH5Pfapl.txt new file mode 100644 index 0000000..c4f37d0 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Pfapl.txt @@ -0,0 +1,41 @@ +JUnit version 4.11 +.testH5P_elink_fapl +.testH5P_fapl_direct +.testH5P_alignment +.testH5P_fapl_family +.testH5P_chunk_cache +.testH5P_meta_block_size +.testH5Fmdc_logging +.testH5Pget_elink_fapl +.testH5Pset_mdc_config +.testH5P_small_data_block_size +.testH5Pset_fapl_log +.testH5P_evict_on_close +.testH5Pset_libver_bounds +.testH5P_sieve_buf_size +.testH5P_elink_file_cache_size +.testH5P_cache +.testH5Pget_mdc_config +.testH5P_fapl_muti_defaults +.testH5Pget_libver_bounds +.testH5P_btree_ratios +.testH5P_fapl_muti_nulls +.testH5Pset_fapl_sec2 +.testH5Pmulti_transform +.testH5Pset_elink_fapl_NegativeID +.testH5Pset_fapl_stdio +.testH5P_edc_check +.testH5Pset_elink_fapl +.testH5P_hyper_vector_size +.testH5P_gc_references +.testH5P_family_offset +.testH5P_fapl_core +.testH5P_fapl_muti +.testH5P_fapl_split +.testH5Pset_fapl_windows +.testH5P_fclose_degree + +Time: XXXX + +OK (35 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Plist.txt b/java/test/testfiles/JUnit-TestH5Plist.txt new file mode 100644 index 0000000..ed9843a --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Plist.txt @@ -0,0 +1,10 @@ +JUnit version 4.11 +.testH5P_genprop_basic_class +.testH5P_genprop_class_iter +.testH5P_genprop_basic_class_prop +.testH5P_genprop_basic_list_prop + +Time: XXXX + +OK (4 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Pvirtual.txt b/java/test/testfiles/JUnit-TestH5Pvirtual.txt new file mode 100644 index 0000000..e57f683 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Pvirtual.txt @@ -0,0 +1,17 @@ +JUnit version 4.11 +.testH5Pget_source_datasetname +.testH5Pvirtual_storage +.testH5Pget_selection_source_dataset +.testH5Pget_virtual_prefix +.testH5Pget_source_filename +.testH5Pset_get_virtual_printf_gap +.testH5Pget_virtual_count +.testH5Pset_virtual_prefix +.testH5Pset_get_virtual_view +.testH5Pget_mapping_parameters +.testH5Pset_virtual_prefix_null + +Time: XXXX + +OK (11 tests) + diff --git a/java/test/testfiles/JUnit-TestH5R.txt b/java/test/testfiles/JUnit-TestH5R.txt new file mode 100644 index 0000000..150df54 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5R.txt @@ -0,0 +1,23 @@ +JUnit version 4.11 +.testH5Rgetregion_Nullreference +.testH5Rget_obj_type2_Invalidreftype +.testH5Rdereference +.testH5Rget_name +.testH5Rcreate_Invalidreftype +.testH5Rget_name_NULLreference +.testH5Rget_region +.testH5Rdereference_Nullreference +.testH5Rcreate_refobj +.testH5Rcreate_Invalidspace_id +.testH5Rdereference_Invalidreference +.testH5Rgetregion_Badreferencetype +.testH5Rcreate_regionrefobj +.testH5Rget_name_Invalidreftype +.testH5Rgetregion_Invalidreftype +.testH5Rget_obj_type2 +.testH5Rcreate_InvalidObjectName + +Time: XXXX + +OK (17 tests) + diff --git a/java/test/testfiles/JUnit-TestH5S.txt b/java/test/testfiles/JUnit-TestH5S.txt new file mode 100644 index 0000000..6bde487 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5S.txt @@ -0,0 +1,29 @@ +JUnit version 4.11 +.testH5Sget_select_npoints +.testH5Sget_select_type +.testH5Sset_extent_simple +.testH5Sget_select_hyper +.testH5Sget_select_valid +.testH5Sget_select_elem_pointlist +.testH5Sset_extent_none +.testH5Sencode_decode_scalar_dataspace +.testH5Soffset_simple +.testH5Scopy +.testH5Sget_simple_extent_ndims +.testH5Sextent_equal +.testH5Sget_simple_extent_dims +.testH5Sget_simple_extent_type +.testH5Shyper_regular +.testH5Sget_select_bounds +.testH5Sget_select_elem_pointlist_invalid +.testH5Sget_simple_extent_npoints +.testH5Sextent_copy +.testH5Sencode_decode_null_dataspace +.testH5Sis_simple +.testH5Sget_simple_extent_dims_null +.testH5Sselect_none + +Time: XXXX + +OK (23 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Sbasic.txt b/java/test/testfiles/JUnit-TestH5Sbasic.txt new file mode 100644 index 0000000..707878e --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Sbasic.txt @@ -0,0 +1,22 @@ +JUnit version 4.11 +.testH5Sclose_invalid +.testH5Screate_simple_max_default +.testH5Screate_simple_dims_null +.testH5Sdecode_null +.testH5Screate_simple_dims_exceed +.testH5Screate_simple_unlimted_1d +.testH5Screate_simple_dims_invalid +.testH5Screate_scalar +.testH5Screate_simple +.testH5Screate_simple_rank_invalid +.testH5Sget_simple_extent_type_invalid +.testH5Sencode_invalid +.testH5Screate_null +.testH5Screate_simple_extent +.testH5Screate_invalid +.testH5Screate_simple_unlimted + +Time: XXXX + +OK (16 tests) + diff --git a/java/test/testfiles/JUnit-TestH5T.txt b/java/test/testfiles/JUnit-TestH5T.txt new file mode 100644 index 0000000..446adcb --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5T.txt @@ -0,0 +1,19 @@ +JUnit version 4.11 +.testH5Tvlen_create +.testH5Tenum_create_functions +.testH5Tenum_functions +.testH5Tget_class +.testH5Tget_array_ndims +.testH5Tequal_type_error +.testH5Tget_array_dims +.testH5Tset_size +.testH5Tis_variable_str +.testH5Tcompound_functions +.testH5Tget_size +.testH5Tarray_create +.testH5Topaque_functions + +Time: XXXX + +OK (13 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Tbasic.txt b/java/test/testfiles/JUnit-TestH5Tbasic.txt new file mode 100644 index 0000000..131c4f5 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Tbasic.txt @@ -0,0 +1,11 @@ +JUnit version 4.11 +.testH5Tequal_not +.testH5Tcopy +.testH5Tequal +.testH5Torder_size +.testH5Tconvert + +Time: XXXX + +OK (5 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Tparams.txt b/java/test/testfiles/JUnit-TestH5Tparams.txt new file mode 100644 index 0000000..e61f1e4 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Tparams.txt @@ -0,0 +1,76 @@ +JUnit version 4.11 +.testH5Tget_member_type_invalid +.testH5Tenum_insert_null +.testH5Tget_offset_invalid +.testH5Tset_precision_invalid +.testH5Tget_inpad_invalid +.testH5Tenum_nameof_invalid +.testH5Tget_member_value_invalid +.testH5Tenum_nameof_value_null +.testH5Tcreate_invalid +.testH5Tget_strpad_invalid +.testH5Tenum_valueof_invalid +.testH5Tget_fields_null +.testH5Topen_null +.testH5Tpack_invalid +.testH5Tcommit_null +.testH5Tinsert_invalid +.testH5Tenum_valueof_null +.testH5Tset_norm_invalid +.testH5Tlock_invalid +.testH5Tarray_create_invalid +.testH5Tget_member_value_null +.testH5Tset_offset_invalid +.testH5Tget_fields_invalid +.testH5Tequal_invalid +.testH5Tget_ebias_long_invalid +.testH5Tget_cset_invalid +.testH5Tget_size_invalid +.testH5Tset_strpad_invalid +.testH5Tset_ebias_invalid +.testH5Tget_sign_invalid +.testH5Tget_member_index_invalid +.testH5Tget_precision_invalid +.testH5Tset_fields_invalid +.testH5Tcopy_invalid +.testH5Tget_pad_invalid +.testH5Tset_order_invalid +.testH5Tget_member_class_invalid +.testH5Tget_super_invalid +.testH5Tget_class_invalid +.testH5Topen_invalid +.testH5Tget_precision_long_invalid +.testH5Tget_ebias_invalid +.testH5Tget_native_type_invalid +.testH5Tget_fields_length_invalid +.testH5Tget_norm_invalid +.testH5Tenum_nameof_invalid_size +.testH5Tset_pad_invalid +.testH5Tget_pad_null +.testH5Tset_tag_null +.testH5Tget_order_invalid +.testH5Tcommit_invalid +.testH5Tget_array_ndims_invalid +.testH5Tset_tag_invalid +.testH5Tvlen_create_invalid +.testH5Tenum_create_invalid +.testH5Tinsert_null +.testH5Tset_inpad_invalid +.testH5Tenum_valueof_name_null +.testH5Tset_cset_invalid +.testH5Tclose_invalid +.testH5Tget_nmembers_invalid +.testH5Tarray_create_value_null +.testH5Tset_size_invalid +.testH5Tflush_invalid +.testH5Tenum_insert_invalid +.testH5Tget_array_dims_null +.testH5Tget_member_index_null +.testH5Trefresh_invalid +.testH5Tset_sign_invalid +.testH5Tenum_insert_name_null + +Time: XXXX + +OK (70 tests) + diff --git a/java/test/testfiles/JUnit-TestH5Z.txt b/java/test/testfiles/JUnit-TestH5Z.txt new file mode 100644 index 0000000..63fc227 --- /dev/null +++ b/java/test/testfiles/JUnit-TestH5Z.txt @@ -0,0 +1,9 @@ +JUnit version 4.11 +.testH5Zfilter_avail +.testH5Zunregister_predefined +.testH5Zget_filter_info + +Time: XXXX + +OK (3 tests) + |