summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2013-08-30 19:14:07 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2013-08-30 19:14:07 (GMT)
commit07cec1d559fdcbcc6896fe05c254d99df710df2a (patch)
tree5328d490f6d6a0118bf8ed52fc83de7a24e07ce8 /tools
parenta9a2c9ef5e575f9ccbf557222e02fdaff92227f8 (diff)
parent9f69967286c1014355421b02db986303de1cfcda (diff)
downloadhdf5-07cec1d559fdcbcc6896fe05c254d99df710df2a.zip
hdf5-07cec1d559fdcbcc6896fe05c254d99df710df2a.tar.gz
hdf5-07cec1d559fdcbcc6896fe05c254d99df710df2a.tar.bz2
[svn-r24090] Merging r24045 through r24089 from VOL branch
Diffstat (limited to 'tools')
-rw-r--r--tools/h5dump/CMakeTests.cmake8
-rw-r--r--tools/h5dump/h5dump.c3
-rw-r--r--tools/h5dump/testh5dump.sh.in4
-rw-r--r--tools/h5import/h5import.c112
-rw-r--r--tools/h5repack/CMakeTests.cmake40
-rw-r--r--tools/h5repack/h5repack.c2
-rw-r--r--tools/h5repack/h5repack.sh.in53
-rw-r--r--tools/h5repack/h5repack_copy.c10
-rw-r--r--tools/h5repack/h5repack_main.c2
-rw-r--r--tools/h5repack/h5repack_verify.c4
-rw-r--r--tools/h5repack/testfiles/h5repack_layout.h5.ddl130
-rw-r--r--tools/misc/h5cc.in10
-rw-r--r--tools/testfiles/h5dump-help.txt2
-rw-r--r--tools/testfiles/tboot2A.ddl20
-rw-r--r--tools/testfiles/tboot2B.ddl20
-rw-r--r--tools/testfiles/tnofilename-with-packed-bits.ddl2
-rw-r--r--tools/testfiles/tpbitsIncomplete.ddl2
-rw-r--r--tools/testfiles/tpbitsLengthExceeded.ddl2
-rw-r--r--tools/testfiles/tpbitsLengthPositive.ddl2
-rw-r--r--tools/testfiles/tpbitsMaxExceeded.ddl2
-rw-r--r--tools/testfiles/tpbitsOffsetExceeded.ddl2
-rw-r--r--tools/testfiles/tpbitsOffsetNegative.ddl2
22 files changed, 405 insertions, 29 deletions
diff --git a/tools/h5dump/CMakeTests.cmake b/tools/h5dump/CMakeTests.cmake
index 026b6b2..c88495d 100644
--- a/tools/h5dump/CMakeTests.cmake
+++ b/tools/h5dump/CMakeTests.cmake
@@ -52,6 +52,8 @@
${HDF5_TOOLS_SRC_DIR}/testfiles/tbigdims.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tboot1.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tboot2.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tboot2A.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tboot2B.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tchar1.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tchunked.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tcmpdattrintsize.ddl
@@ -797,6 +799,10 @@
tboot1.out.err
tboot2.out
tboot2.out.err
+ tboot2A.out
+ tboot2A.out.err
+ tboot2B.out
+ tboot2B.out.err
tchar1.out
tchar1.out.err
tchunked.out
@@ -1202,6 +1208,8 @@
# tests for super block
ADD_H5_TEST (tboot1 0 --enable-error-stack -H -B -d dset tfcontents1.h5)
ADD_H5_TEST (tboot2 0 --enable-error-stack -B tfcontents2.h5)
+ ADD_H5_TEST (tboot2A 0 --enable-error-stack --boot-block tfcontents2.h5)
+ ADD_H5_TEST (tboot2B 0 --enable-error-stack --superblock tfcontents2.h5)
ADD_H5_TEST (file_space 0 --enable-error-stack -B file_space.h5)
# test -p with a non existing dataset
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c
index ea38c61..3c60bb0 100644
--- a/tools/h5dump/h5dump.c
+++ b/tools/h5dump/h5dump.c
@@ -77,6 +77,7 @@ static struct long_options l_opts[] = {
{ "hel", no_arg, 'h' },
{ "contents", optional_arg, 'n' },
{ "properties", no_arg, 'p' },
+ { "superblock", no_arg, 'B' },
{ "boot-block", no_arg, 'B' },
{ "boot-bloc", no_arg, 'B' },
{ "boot-blo", no_arg, 'B' },
@@ -289,7 +290,7 @@ usage(const char *prog)
PRINTVALSTREAM(rawoutstream, "\n");
PRINTVALSTREAM(rawoutstream, "--------------- Subsetting Options ---------------\n");
PRINTVALSTREAM(rawoutstream, " Subsetting is available by using the following options with a dataset\n");
- PRINTVALSTREAM(rawoutstream, " attribute. Subsetting is done by selecting a hyperslab from the data.\n");
+ PRINTVALSTREAM(rawoutstream, " option. Subsetting is done by selecting a hyperslab from the data.\n");
PRINTVALSTREAM(rawoutstream, " Thus, the options mirror those for performing a hyperslab selection.\n");
PRINTVALSTREAM(rawoutstream, " One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.\n");
PRINTVALSTREAM(rawoutstream, " The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in\n");
diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in
index 77a0113..be05705 100644
--- a/tools/h5dump/testh5dump.sh.in
+++ b/tools/h5dump/testh5dump.sh.in
@@ -212,6 +212,8 @@ $SRC_H5DUMP_TESTFILES/tbinregR.ddl
$SRC_H5DUMP_TESTFILES/tbigdims.ddl
$SRC_H5DUMP_TESTFILES/tboot1.ddl
$SRC_H5DUMP_TESTFILES/tboot2.ddl
+$SRC_H5DUMP_TESTFILES/tboot2A.ddl
+$SRC_H5DUMP_TESTFILES/tboot2B.ddl
$SRC_H5DUMP_TESTFILES/tchar1.ddl
$SRC_H5DUMP_TESTFILES/tchunked.ddl
$SRC_H5DUMP_TESTFILES/tcmpdattrintsize.ddl
@@ -1040,6 +1042,8 @@ TOOLTEST charsets.ddl --enable-error-stack charsets.h5
# tests for super block
TOOLTEST tboot1.ddl --enable-error-stack -H -B -d dset tfcontents1.h5
TOOLTEST tboot2.ddl --enable-error-stack -B tfcontents2.h5
+TOOLTEST tboot2A.ddl --enable-error-stack --boot-block tfcontents2.h5
+TOOLTEST tboot2B.ddl --enable-error-stack --superblock tfcontents2.h5
TOOLTEST file_space.ddl --enable-error-stack -B file_space.h5
# test -p with a non existing dataset
diff --git a/tools/h5import/h5import.c b/tools/h5import/h5import.c
index 7038a95..a10ef24 100644
--- a/tools/h5import/h5import.c
+++ b/tools/h5import/h5import.c
@@ -273,7 +273,6 @@ static int gtoken(char *s)
* identify the token type
*/
if (s[0] == '-') { /* option name (or negative number) */
- token = ERR;
len = HDstrlen(&s[1]);
switch (s[1]) {
case 'o':
@@ -310,6 +309,9 @@ static int gtoken(char *s)
if (!HDstrncmp("size", &s[1], len))
token = OPT_s;
break;
+ default:
+ token = ERR; /* not a supported option tag */
+ break;
}
if (token == ERR)
@@ -3386,6 +3388,11 @@ hid_t createOutputDataType(struct Input *in)
{
hid_t new_type = (-1);
const char *err1 = "Invalid value for output class.\n";
+ const char *err2 = "Invalid value for output size.\n";
+ const char *err3 = "Invalid value for output byte order.\n";
+ const char *err4 = "Invalid value for output architecture.\n";
+ const char *err5 = "STD not supported for float.\n";
+ const char *err6 = "IEEE not supported for INT.\n";
switch (in->outputClass) {
case 0:
@@ -3407,6 +3414,10 @@ hid_t createOutputDataType(struct Input *in)
case 64:
new_type = H5Tcopy(H5T_NATIVE_LLONG);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err2);
+ return (-1);
}
switch (in->outputByteOrder) {
case -1: /* default */
@@ -3418,6 +3429,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
H5Tset_order(new_type, H5T_ORDER_LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3433,6 +3448,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_I8LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3446,6 +3465,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_I16LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3459,6 +3482,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_I32LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3472,11 +3499,22 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_I64LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err2);
+ return (-1);
}
break;
+ default:
+ (void) HDfprintf(stderr, "%s", err4);
+ return (-1);
}
break;
@@ -3491,6 +3529,10 @@ hid_t createOutputDataType(struct Input *in)
case 64:
new_type = H5Tcopy(H5T_NATIVE_DOUBLE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err2);
+ return (-1);
}
switch (in->outputByteOrder) {
case -1: /* DEFAULT */
@@ -3502,12 +3544,16 @@ hid_t createOutputDataType(struct Input *in)
case 1:
H5Tset_order(new_type, H5T_ORDER_LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
case 1:
- /* STD not supported for float */
- break;
+ (void) HDfprintf(stderr, "%s", err5);
+ return (-1);
case 2:
switch (in->outputSize) {
@@ -3521,6 +3567,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_IEEE_F32LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3534,11 +3584,22 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_IEEE_F64LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err2);
+ return (-1);
}
break;
+ default:
+ (void) HDfprintf(stderr, "%s", err4);
+ return (-1);
}
break;
@@ -3561,6 +3622,10 @@ hid_t createOutputDataType(struct Input *in)
case 64:
new_type = H5Tcopy(H5T_NATIVE_ULLONG);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err2);
+ return (-1);
}
switch (in->outputByteOrder) {
case -1: /* Default */
@@ -3572,6 +3637,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
H5Tset_order(new_type, H5T_ORDER_LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3587,6 +3656,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_U8LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3600,6 +3673,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_U16LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3613,6 +3690,10 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_U32LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
@@ -3626,17 +3707,27 @@ hid_t createOutputDataType(struct Input *in)
case 1:
new_type = H5Tcopy(H5T_STD_U64LE);
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err3);
+ return (-1);
}
break;
+
+ default:
+ (void) HDfprintf(stderr, "%s", err2);
+ return (-1);
}
break;
case 2:
- /* IEEE not supported for INT */
- break;
+ (void) HDfprintf(stderr, "%s", err6);
+ return (-1);
+ default:
+ (void) HDfprintf(stderr, "%s", err4);
+ return (-1);
}
-
break;
default:
@@ -3650,6 +3741,7 @@ hid_t createInputDataType(struct Input *in)
{
hid_t new_type = (-1);
const char *err1 = "Invalid value for input class.\n";
+ const char *err2 = "Invalid value for output size.\n";
switch (in->inputClass) {
case 0:
@@ -3672,7 +3764,7 @@ hid_t createInputDataType(struct Input *in)
break;
default:
- (void) HDfprintf(stderr, "%s", err1);
+ (void) HDfprintf(stderr, "%s", err2);
return (-1);
}
break;
@@ -3690,12 +3782,14 @@ hid_t createInputDataType(struct Input *in)
break;
default:
- (void) HDfprintf(stderr, "%s", err1);
+ (void) HDfprintf(stderr, "%s", err2);
return (-1);
}
break;
case 5:
+ (void) HDfprintf(stderr, "%s", err1);
+ return (-1);
break;
case 6:
@@ -3718,7 +3812,7 @@ hid_t createInputDataType(struct Input *in)
break;
default:
- (void) HDfprintf(stderr, "%s", err1);
+ (void) HDfprintf(stderr, "%s", err2);
return (-1);
}
break;
diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake
index 79d75a7..c27aaa0 100644
--- a/tools/h5repack/CMakeTests.cmake
+++ b/tools/h5repack/CMakeTests.cmake
@@ -82,6 +82,7 @@
${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testfiles/h5repack_ext.bin
${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testfiles/ublock.bin
${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testfiles/h5repack.info
+ ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testfiles/h5repack_layout.h5.ddl
# tools/testfiles
${HDF5_TOOLS_SRC_DIR}/testfiles/h5repack_filters.h5.ddl
)
@@ -163,7 +164,9 @@
ELSE (${testtype} STREQUAL "SKIP")
# If using memchecker add tests without using scripts
IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5REPACK_CMP-${testname} COMMAND $<TARGET_FILE:h5repack> ${ARGN} testfiles/${resultfile} testfiles/out-${testname}.${resultfile})
+ ADD_TEST (
+ NAME H5REPACK_CMP-${testname}
+ COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile})
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
NAME H5REPACK_CMP-${testname}
@@ -184,6 +187,39 @@
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_H5_CMP_TEST)
+ MACRO (ADD_H5_DMP_TEST testname testtype resultcode resultfile)
+ IF (${testtype} STREQUAL "SKIP")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5REPACK_DMP-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ELSE (${testtype} STREQUAL "SKIP")
+ # If using memchecker add tests without using scripts
+ ADD_TEST (
+ NAME H5REPACK_DMP-${testname}
+ COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile})
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5REPACK_DMP-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5REPACK_DMP-h5dump-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=-pH;./testfiles/out-${testname}.${resultfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=./testfiles/${resultfile}-${testname}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=testfiles/${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5REPACK_DMP-h5dump-${testname} PROPERTIES DEPENDS "H5REPACK_DMP-${testname}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ENDIF (${testtype} STREQUAL "SKIP")
+ ENDMACRO (ADD_H5_DMP_TEST)
+
MACRO (ADD_H5_VERIFY_TEST testname testtype resultcode testfile testdset testfilter)
IF (${testtype} STREQUAL "SKIP")
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
@@ -768,7 +804,7 @@
IF (NOT USE_FILTER_DEFLATE)
SET (TESTTYPE "SKIP")
ENDIF (NOT USE_FILTER_DEFLATE)
- ADD_H5_TEST (deflate_limit ${TESTTYPE} ${arg})
+ ADD_H5_DMP_TEST (deflate_limit ${TESTTYPE} 0 ${arg})
#file
SET (arg ${FILE4} -e ${INFO_FILE})
diff --git a/tools/h5repack/h5repack.c b/tools/h5repack/h5repack.c
index 38a000a..d6437cf 100644
--- a/tools/h5repack/h5repack.c
+++ b/tools/h5repack/h5repack.c
@@ -93,7 +93,7 @@ h5repack_init(pack_opt_t *options, int verbose, H5F_file_space_type_t strategy,
int k, n;
HDmemset(options, 0, sizeof(pack_opt_t));
- options->min_comp = 1024;
+ options->min_comp = 0;
options->verbose = verbose;
options->layout_g = H5D_LAYOUT_ERROR;
diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in
index ca25183..42b8ecb 100644
--- a/tools/h5repack/h5repack.sh.in
+++ b/tools/h5repack/h5repack.sh.in
@@ -120,6 +120,7 @@ LIST_OTHER_TEST_FILES="
$SRC_H5REPACK_TESTFILES/h5repack_ext.bin
$SRC_H5REPACK_TESTFILES/ublock.bin
$SRC_H5REPACK_TESTFILES/h5repack.info
+$SRC_H5REPACK_TESTFILES/h5repack_layout.h5.ddl
$SRC_TOOLS_TESTFILES/h5repack_filters.h5.ddl
"
@@ -201,7 +202,7 @@ DIFFTEST()
fi
}
-
+
# Call h5repack
#
@@ -475,6 +476,54 @@ TOOLTESTV()
rm -f $actual $actual_err
rm -f $outfile
}
+
+# This is same as TOOLTESTV() with comparing h5dump output
+# from -pH option
+#
+TOOLTEST_DUMP()
+{
+ infile=$TESTDIR/$2
+ outfile=$TESTDIR/out-$1.$2
+ expect="$TESTDIR/$2.ddl"
+ actual="$TESTDIR/out-$1.$2.out"
+ actual_err="$TESTDIR/out-$1.$2.err"
+
+ shift
+ shift
+
+ # Run test.
+ TESTING $H5REPACK $@
+ (
+ $RUNSERIAL $H5REPACK_BIN "$@" $infile $outfile
+ ) >$actual 2>$actual_err
+ RET=$?
+ if [ $RET != 0 ] ; then
+ echo "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
+ else
+ echo " PASSED"
+ VERIFY h5dump output $@
+ (
+ $RUNSERIAL $H5DUMP_BIN -pH $outfile
+ ) >$actual 2>$actual_err
+ cat $actual_err >> $actual
+
+ RET=$?
+
+ fi
+
+ if cmp -s $expect $actual; then
+ echo " PASSED"
+ else
+ echo "*FAILED*"
+ echo " Expected result (*.ddl) differs from actual result (*.out)"
+ nerrors="`expr $nerrors + 1`"
+ test yes = "$verbose" && diff -c $expect $actual |sed 's/^/ /'
+ fi
+
+ rm -f $actual $actual_err
+ rm -f $outfile
+}
# TOOLTEST_META:
# Test metadata block size option.
@@ -820,7 +869,7 @@ arg="h5repack_layout.h5 -f GZIP=1 -m 1024"
if test $USE_FILTER_DEFLATE != "yes" ; then
SKIP $arg
else
- TOOLTEST deflate_limit $arg
+ TOOLTEST_DUMP deflate_limit $arg
fi
#file
diff --git a/tools/h5repack/h5repack_copy.c b/tools/h5repack/h5repack_copy.c
index f9dd334..02337fd 100644
--- a/tools/h5repack/h5repack_copy.c
+++ b/tools/h5repack/h5repack_copy.c
@@ -1017,6 +1017,16 @@ int do_copy_objects(hid_t fidin,
/* get the storage size of the input dataset */
dsize_in=H5Dget_storage_size(dset_in);
+ /* check for small size datasets (less than 1k) except
+ * changing to COMPACT. For the reference, COMPACT is limited
+ * by size 64K by library.
+ */
+ if (options->layout_g != H5D_COMPACT)
+ {
+ if ( size_dset < options->min_comp )
+ apply_s=0;
+ }
+
/* apply the filter */
if (apply_s)
{
diff --git a/tools/h5repack/h5repack_main.c b/tools/h5repack/h5repack_main.c
index 921b390..ff38068 100644
--- a/tools/h5repack/h5repack_main.c
+++ b/tools/h5repack/h5repack_main.c
@@ -180,7 +180,7 @@ static void usage(const char *prog)
printf("\n");
- printf(" M - is an integer greater than 1, size of dataset in bytes (default is 1024) \n");
+ printf(" M - is an integer greater than 1, size of dataset in bytes (default is 0) \n");
printf(" E - is a filename.\n");
printf(" S - is an integer\n");
printf(" U - is a filename.\n");
diff --git a/tools/h5repack/h5repack_verify.c b/tools/h5repack/h5repack_verify.c
index 47cba5b..a57295b 100644
--- a/tools/h5repack/h5repack_verify.c
+++ b/tools/h5repack/h5repack_verify.c
@@ -676,7 +676,9 @@ int verify_filters(hid_t pid, hid_t tid, int nfilters, filter_info_t *filter)
break;
-
+ default:
+ /* filter has no local values */
+ break;
} /* switch */
diff --git a/tools/h5repack/testfiles/h5repack_layout.h5.ddl b/tools/h5repack/testfiles/h5repack_layout.h5.ddl
new file mode 100644
index 0000000..d380201
--- /dev/null
+++ b/tools/h5repack/testfiles/h5repack_layout.h5.ddl
@@ -0,0 +1,130 @@
+HDF5 "./testfiles/out-deflate_limit.h5repack_layout.h5" {
+GROUP "/" {
+ DATASET "dset1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 40, 20 )
+ SIZE 1150 (2.783:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+ DATASET "dset2" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 40, 20 )
+ SIZE 1150 (2.783:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+ DATASET "dset3" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 40, 20 )
+ SIZE 1150 (2.783:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+ DATASET "dset4" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 40, 20 )
+ SIZE 1150 (2.783:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+ DATASET "dset_chunk" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 20, 10 )
+ SIZE 1283 (2.494:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+ DATASET "dset_compact" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 40, 20 )
+ SIZE 1150 (2.783:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+ DATASET "dset_contiguous" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
+ STORAGE_LAYOUT {
+ CHUNKED ( 40, 20 )
+ SIZE 1150 (2.783:1 COMPRESSION)
+ }
+ FILTERS {
+ COMPRESSION DEFLATE { LEVEL 1 }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE 0
+ }
+ ALLOCATION_TIME {
+ H5D_ALLOC_TIME_INCR
+ }
+ }
+}
+}
diff --git a/tools/misc/h5cc.in b/tools/misc/h5cc.in
index f62c66f..da1a26d 100644
--- a/tools/misc/h5cc.in
+++ b/tools/misc/h5cc.in
@@ -132,9 +132,10 @@ usage() {
echo " subdirectories [default: $prefix]"
echo " -show Show the commands without executing them"
echo " -showconfig Show the HDF5 library configuration summary"
- echo " -shlib Compile with shared HDF5 libraries [default when built with"
- echo " disable-static]"
- echo " -noshlib Compile with static HDF5 libraries [default when static available]"
+ echo " -shlib Compile with shared HDF5 libraries [default for hdf5 built"
+ echo " without static libraries]"
+ echo " -noshlib Compile with static HDF5 libraries [default for hdf5 built"
+ echo " with static libraries]"
echo " "
echo " <compile line> - the normal compile line options for your compiler."
echo " $prog_name uses the same compiler you used to compile"
@@ -148,7 +149,8 @@ usage() {
echo " HDF5_CC - use a different C compiler"
echo " HDF5_CLINKER - use a different linker"
echo " HDF5_USE_SHLIB=[yes|no] - use shared or static version of the HDF5 library"
- echo " [default: no]"
+ echo " [default: no except when built with only"
+ echo " shared libraries]"
echo " "
echo " You can also add or change paths and flags to the compile line using"
echo " the following environment varibles or by assigning them to their counterparts"
diff --git a/tools/testfiles/h5dump-help.txt b/tools/testfiles/h5dump-help.txt
index 2a59a32..444dd97 100644
--- a/tools/testfiles/h5dump-help.txt
+++ b/tools/testfiles/h5dump-help.txt
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tboot2A.ddl b/tools/testfiles/tboot2A.ddl
new file mode 100644
index 0000000..d83b92b
--- /dev/null
+++ b/tools/testfiles/tboot2A.ddl
@@ -0,0 +1,20 @@
+HDF5 "tfcontents2.h5" {
+SUPER_BLOCK {
+ SUPERBLOCK_VERSION 0
+ FREELIST_VERSION 0
+ SYMBOLTABLE_VERSION 0
+ OBJECTHEADER_VERSION 0
+ OFFSET_SIZE 8
+ LENGTH_SIZE 8
+ BTREE_RANK 16
+ BTREE_LEAF 4
+ ISTORE_K 32
+ FILE_SPACE_STRATEGY H5F_FILE_SPACE_ALL
+ FREE_SPACE_THRESHOLD 1
+ USER_BLOCK {
+ USERBLOCK_SIZE 0
+ }
+}
+GROUP "/" {
+}
+}
diff --git a/tools/testfiles/tboot2B.ddl b/tools/testfiles/tboot2B.ddl
new file mode 100644
index 0000000..d83b92b
--- /dev/null
+++ b/tools/testfiles/tboot2B.ddl
@@ -0,0 +1,20 @@
+HDF5 "tfcontents2.h5" {
+SUPER_BLOCK {
+ SUPERBLOCK_VERSION 0
+ FREELIST_VERSION 0
+ SYMBOLTABLE_VERSION 0
+ OBJECTHEADER_VERSION 0
+ OFFSET_SIZE 8
+ LENGTH_SIZE 8
+ BTREE_RANK 16
+ BTREE_LEAF 4
+ ISTORE_K 32
+ FILE_SPACE_STRATEGY H5F_FILE_SPACE_ALL
+ FREE_SPACE_THRESHOLD 1
+ USER_BLOCK {
+ USERBLOCK_SIZE 0
+ }
+}
+GROUP "/" {
+}
+}
diff --git a/tools/testfiles/tnofilename-with-packed-bits.ddl b/tools/testfiles/tnofilename-with-packed-bits.ddl
index 1ad1249..64a2880 100644
--- a/tools/testfiles/tnofilename-with-packed-bits.ddl
+++ b/tools/testfiles/tnofilename-with-packed-bits.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tpbitsIncomplete.ddl b/tools/testfiles/tpbitsIncomplete.ddl
index 1468ad1..cdb1f91 100644
--- a/tools/testfiles/tpbitsIncomplete.ddl
+++ b/tools/testfiles/tpbitsIncomplete.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tpbitsLengthExceeded.ddl b/tools/testfiles/tpbitsLengthExceeded.ddl
index 557f2a7..6d2492a 100644
--- a/tools/testfiles/tpbitsLengthExceeded.ddl
+++ b/tools/testfiles/tpbitsLengthExceeded.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tpbitsLengthPositive.ddl b/tools/testfiles/tpbitsLengthPositive.ddl
index 342e4e8..4f56619 100644
--- a/tools/testfiles/tpbitsLengthPositive.ddl
+++ b/tools/testfiles/tpbitsLengthPositive.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tpbitsMaxExceeded.ddl b/tools/testfiles/tpbitsMaxExceeded.ddl
index eb569d2..3432433 100644
--- a/tools/testfiles/tpbitsMaxExceeded.ddl
+++ b/tools/testfiles/tpbitsMaxExceeded.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tpbitsOffsetExceeded.ddl b/tools/testfiles/tpbitsOffsetExceeded.ddl
index a00b561..e51a09e 100644
--- a/tools/testfiles/tpbitsOffsetExceeded.ddl
+++ b/tools/testfiles/tpbitsOffsetExceeded.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
diff --git a/tools/testfiles/tpbitsOffsetNegative.ddl b/tools/testfiles/tpbitsOffsetNegative.ddl
index aa6e79b..ba6e46d 100644
--- a/tools/testfiles/tpbitsOffsetNegative.ddl
+++ b/tools/testfiles/tpbitsOffsetNegative.ddl
@@ -59,7 +59,7 @@ usage: h5dump [OPTIONS] files
--------------- Subsetting Options ---------------
Subsetting is available by using the following options with a dataset
- attribute. Subsetting is done by selecting a hyperslab from the data.
+ option. Subsetting is done by selecting a hyperslab from the data.
Thus, the options mirror those for performing a hyperslab selection.
One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in