summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Kim <jkm@hdfgroup.org>2013-03-27 15:10:25 (GMT)
committerJonathan Kim <jkm@hdfgroup.org>2013-03-27 15:10:25 (GMT)
commit91c30cdc2ff8b865f56944b427236a00895fb7fb (patch)
treebdb1f88215dcfcc36f9032fbad036ab30e787171
parenta605e303e95d7c254b428f420900f5e6c958edd4 (diff)
downloadhdf5-91c30cdc2ff8b865f56944b427236a00895fb7fb.zip
hdf5-91c30cdc2ff8b865f56944b427236a00895fb7fb.tar.gz
hdf5-91c30cdc2ff8b865f56944b427236a00895fb7fb.tar.bz2
[svn-r23464] Purpose:
HDFFV-8214 - h5repack failed converting small chunked dataset (size < 1K) to contiguous layout. Description: h5repack failed converting small chunked dataset (size < 1K) to contiguous layout. The first case was when chunk dim is bigger than the dataset dim (at leat one), h5repack failed with displaying error stacks. The other case is when chunk dim is smaller than the dataset dim, h5repack failed to change layout. Merged from HDF5 trunk 23407 Tested: jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), emu (solaris-BE), fred (mac64-LE), Windows (32-LE cmake), cmake (jam)
-rw-r--r--release_docs/RELEASE.txt2
-rw-r--r--tools/h5repack/CMakeLists.txt12
-rw-r--r--tools/h5repack/h5repack.sh.in12
-rw-r--r--tools/h5repack/h5repack_copy.c10
4 files changed, 26 insertions, 10 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 79488a9..c404dfb 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -135,6 +135,8 @@ Bug Fixes since HDF5-1.8.10
Tools
-----
+ - h5repack: Fixed failure for converting a layout of small chunked dataset
+ (size < 1K) to contiguous layout. HDFFV-8214 (JKM 2013/03/26)
- h5dump: Fixed displaying comporession ratio for unknown or user-defined
filters. HDFFV-8344 (XCAO 2013/03/19)
- h5dump: Changed UNKNOWN_FILTER to USER_DEFINED_FILTER for user defined filter.
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index 156f6d8..06c6b71 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -881,6 +881,18 @@ ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIM
# file input - should not fail
ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
+#--------------------------------------------------------------------------
+# Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset
+# (dset size < 64K) and with unlimited max dims on a condition as follow.
+# (HDFFV-8214)
+#--------------------------------------------------------------------------
+# chunk dim is bigger than dataset dim. should succeed.
+ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI)
+# chunk dim is smaller than dataset dim. should succeed.
+ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI)
+
+
+
# Native option
# Do not use FILE1, as the named dtype will be converted to native, and h5diff will
# report a difference.
diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in
index 4d34284..ca25183 100644
--- a/tools/h5repack/h5repack.sh.in
+++ b/tools/h5repack/h5repack.sh.in
@@ -907,6 +907,18 @@ VERIFY_LAYOUT_DSET error3 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f ch
# file input - should not fail
TOOLTEST error4 h5repack_layout3.h5 -f NONE
+#--------------------------------------------------------------------------
+# Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset
+# (dset size < 64K) and with unlimited max dims on a condition as follow.
+# (HDFFV-8214)
+#--------------------------------------------------------------------------
+
+# chunk dim is bigger than dataset dim. should succeed.
+VERIFY_LAYOUT_DSET ckdim_biger h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI
+# chunk dim is smaller than dataset dim. should succeed.
+VERIFY_LAYOUT_DSET ckdim_smaller h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI
+
+
# Native option
# Do not use FILE1, as the named dtype will be converted to native, and h5diff will
# report a difference.
diff --git a/tools/h5repack/h5repack_copy.c b/tools/h5repack/h5repack_copy.c
index cfd542a..03eefcf 100644
--- a/tools/h5repack/h5repack_copy.c
+++ b/tools/h5repack/h5repack_copy.c
@@ -976,16 +976,6 @@ 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)
{