diff options
author | James Laird <jlaird@hdfgroup.org> | 2004-07-01 17:38:04 (GMT) |
---|---|---|
committer | James Laird <jlaird@hdfgroup.org> | 2004-07-01 17:38:04 (GMT) |
commit | eab58732d86e9219fa9f41f9ab2e30fae94e4a7d (patch) | |
tree | 333b5f2c50c267c14611e042724a7f28d5156ab7 /tools/h5repack | |
parent | 3f500747fa0f4379e8e03b82f6d679628d55a8c3 (diff) | |
download | hdf5-eab58732d86e9219fa9f41f9ab2e30fae94e4a7d.zip hdf5-eab58732d86e9219fa9f41f9ab2e30fae94e4a7d.tar.gz hdf5-eab58732d86e9219fa9f41f9ab2e30fae94e4a7d.tar.bz2 |
[svn-r8781]
Purpose:
HDF5 now supports SZIP with no encoder.
Description:
SZIP can be configured to have both encoder and decoder or just to have the decoder. HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled.
Solution:
Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id. See SZIP RFC.
Platforms tested:
Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++)
Misc. update:
Diffstat (limited to 'tools/h5repack')
-rw-r--r-- | tools/h5repack/Makefile.in | 4 | ||||
-rw-r--r-- | tools/h5repack/h5repack.c | 3 | ||||
-rw-r--r-- | tools/h5repack/h5repack.sh | 178 | ||||
-rwxr-xr-x | tools/h5repack/h5repack.sh.in | 298 | ||||
-rw-r--r-- | tools/h5repack/h5repack_copy.c | 2 | ||||
-rw-r--r-- | tools/h5repack/h5repack_filters.c | 11 | ||||
-rw-r--r-- | tools/h5repack/h5repack_verify.c | 11 | ||||
-rw-r--r-- | tools/h5repack/testh5repack_filters.c | 38 | ||||
-rw-r--r-- | tools/h5repack/testh5repack_main.c | 34 |
9 files changed, 366 insertions, 213 deletions
diff --git a/tools/h5repack/Makefile.in b/tools/h5repack/Makefile.in index 98f1fea..6e7c61c 100644 --- a/tools/h5repack/Makefile.in +++ b/tools/h5repack/Makefile.in @@ -28,8 +28,7 @@ CPPFLAGS=-I. -I$(srcdir) -I$(top_builddir)/src -I$(top_srcdir)/src \ ## Test programs and scripts. ## TEST_PROGS=h5repacktst -TEST_SCRIPTS=$(srcdir)/h5repack.sh - +TEST_SCRIPTS=./h5repack.sh ## These are our main targets: library and tools. ## @@ -48,6 +47,7 @@ PUB_LIB= ## Temporary files. *.h5 are generated by h5repack. They should ## copied to the testfiles/ directory if update is required. MOSTLYCLEAN=*.h5 +DISTCLEAN=h5repack.sh ## Source and object files for programs... ## diff --git a/tools/h5repack/h5repack.c b/tools/h5repack/h5repack.c index bd89ca0..cd7a31b 100644 --- a/tools/h5repack/h5repack.c +++ b/tools/h5repack/h5repack.c @@ -68,7 +68,7 @@ int h5repack(const char* infile, /* check input */ if (check_options(options)<0) return -1; - + /* check for objects in input that are in the file */ if (check_objects(infile,options)<0) return -1; @@ -76,7 +76,6 @@ int h5repack(const char* infile, /* copy the objects */ if (copy_objects(infile,outfile,options)<0) return -1; - return 0; } diff --git a/tools/h5repack/h5repack.sh b/tools/h5repack/h5repack.sh deleted file mode 100644 index f1a6281..0000000 --- a/tools/h5repack/h5repack.sh +++ /dev/null @@ -1,178 +0,0 @@ -#! /bin/sh -# -# 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 files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. -# -# Tests for the h5repack tool - -H5REPACK=h5repack # The tool name -H5REPACK_BIN=`pwd`/$H5REPACK # The path of the tool binary - -H5DIFF=../h5diff/h5diff # The h5diff tool name -H5DIFF_BIN=`pwd`/$H5DIFF # The path of the h5diff tool binary - -nerrors=0 -verbose=yes - -# The build (current) directory might be different than the source directory. -# -if test -z "$srcdir"; then - srcdir=. -fi - -test -d ../testfiles || mkdir ../testfiles - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Verifying". -# -VERIFY() { - SPACES=" " - echo "Testing h5diff output $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Call the h5diff tool -# -DIFFTEST() -{ - VERIFY $@ - if [ "`uname -s`" = "TFLOPS O/S" ]; then - $RUNSERIAL $H5DIFF_BIN $@ - else - $RUNSERIAL $H5DIFF_BIN "$@" - fi - RET=$? - if [ $RET != 0 ] ; then - echo "*FAILED*" - nerrors="`expr $nerrors + 1`" - else - echo " PASSED" - fi - -} - -# Call h5repack -# -TOOLTEST() -{ - # Run test. - # Tflops interprets "$@" as "" when no parameter is given (e.g., the - # case of missing file name). Changed it to use $@ till Tflops fixes it. - TESTING $H5REPACK $@ - - infile=$srcdir/../testfiles/$1 - outfile=out.$1 - shift - if [ "`uname -s`" = "TFLOPS O/S" ]; then - $RUNSERIAL $H5REPACK_BIN -i $infile -o $outfile $@ - else - $RUNSERIAL $H5REPACK_BIN -i $infile -o $outfile "$@" - fi - - RET=$? - if [ $RET != 0 ] ; then - echo "*FAILED*" - nerrors="`expr $nerrors + 1`" - else - echo " PASSED" - DIFFTEST $infile $outfile - fi - rm -f $outfile -} - - -# -# The tests -# We use the files generated by h5repacktst -# Each run generates "file4.out.h5" and the tool h5diff is used to -# compare the input and output files -# - -# copy files -TOOLTEST test1.h5 -TOOLTEST test3.h5 -TOOLTEST test4.h5 - -#TOOLTEST test5.h5 - -# remove all filters -TOOLTEST test4.h5 -f NONE - -# remove one filter -TOOLTEST test4.h5 -f dset_gzip:NONE - -# gzip -TOOLTEST test4.h5 -f dset1:GZIP=9 -TOOLTEST test4.h5 -f GZIP=1 - -# szip -TOOLTEST test4.h5 -f dset1:SZIP=8 -TOOLTEST test4.h5 -f SZIP=8 - -# shuffle -TOOLTEST test4.h5 -f dset1:SHUF -TOOLTEST test4.h5 -f SHUF - -# fletcher -TOOLTEST test4.h5 -f dset1:FLET -TOOLTEST test4.h5 -f FLET - -#layout chunk -TOOLTEST test4.h5 -l dset1:CHUNK=20x10 -TOOLTEST test4.h5 -l CHUNK=20x10 - -#layout compact -TOOLTEST test4.h5 -l dset1:COMPA -TOOLTEST test4.h5 -l COMPA - -#layout contiguous -TOOLTEST test4.h5 -l dset1:CONTI -TOOLTEST test4.h5 -l CONTI - -#conversions -TOOLTEST test4.h5 -l dset_compact:CONTI -TOOLTEST test4.h5 -l dset_compact:CHUNK=2x5 -TOOLTEST test4.h5 -l dset_compact:COMPA -TOOLTEST test4.h5 -l dset_contiguous:COMPA -TOOLTEST test4.h5 -l dset_contiguous:CHUNK=3x6 -TOOLTEST test4.h5 -l dset_contiguous:CONTI -TOOLTEST test4.h5 -l dset_chunk:COMPA -TOOLTEST test4.h5 -l dset_chunk:CONTI -TOOLTEST test4.h5 -l dset_chunk:CHUNK=18x13 - -#filters -TOOLTEST test4.h5 -f dset1:SHUF -f dset1,dset2:GZIP=6 -TOOLTEST test4.h5 -l dset1:CHUNK=20x10 -f dset1,dset2:SZIP=8 - -#filter conversions -TOOLTEST test4.h5 -f dset_gzip:SZIP=8 -TOOLTEST test4.h5 -f dset_szip:GZIP=1 -TOOLTEST test4.h5 -f dset_all:GZIP=1 - -#limit -TOOLTEST test4.h5 -f GZIP=1 -m 1024 - -#file -TOOLTEST test4.h5 -e ../testfiles/h5repack_info.txt - -if test $nerrors -eq 0 ; then - echo "All $H5REPACK tests passed." -fi - -exit $nerrors diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in new file mode 100755 index 0000000..17c6869 --- /dev/null +++ b/tools/h5repack/h5repack.sh.in @@ -0,0 +1,298 @@ +#! /bin/sh +# +# 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 files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. +# +# Tests for the h5repack tool + +# Determine if SZIP has the encoder available +USE_FILTER_SZIP_ENCODER="@USE_FILTER_SZIP_ENCODER@" +USE_FILTER_SZIP="@USE_FILTER_SZIP@" + +H5REPACK=h5repack # The tool name +H5REPACK_BIN=`pwd`/$H5REPACK # The path of the tool binary + +H5DIFF=../h5diff/h5diff # The h5diff tool name +H5DIFF_BIN=`pwd`/$H5DIFF # The path of the h5diff tool binary + +nerrors=0 +verbose=yes + +# The build (current) directory might be different than the source directory. +# +if test -z "$srcdir"; then + srcdir=. +fi + +test -d ../testfiles || mkdir ../testfiles + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Verifying". +# +VERIFY() { + SPACES=" " + echo "Testing h5diff output $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# Print a message that a test has been skipped (because a required filter +# was unavailable) +SKIP() { + TESTING $H5REPACK $@ + echo " -SKIP-" +} + +# Call the h5diff tool +# +DIFFTEST() +{ + VERIFY $@ + if [ "`uname -s`" = "TFLOPS O/S" ]; then + $RUNSERIAL $H5DIFF_BIN $@ + else + $RUNSERIAL $H5DIFF_BIN "$@" + fi + RET=$? + if [ $RET != 0 ] ; then + echo "*FAILED*" + nerrors="`expr $nerrors + 1`" + else + echo " PASSED" + fi + +} + +# Call h5repack +# +TOOLTEST() +{ + # Run test. + # Tflops interprets "$@" as "" when no parameter is given (e.g., the + # case of missing file name). Changed it to use $@ till Tflops fixes it. + TESTING $H5REPACK $@ + + infile=$srcdir/../testfiles/$1 + outfile=out.$1 + shift + if [ "`uname -s`" = "TFLOPS O/S" ]; then + $RUNSERIAL $H5REPACK_BIN -i $infile -o $outfile $@ + else + $RUNSERIAL $H5REPACK_BIN -i $infile -o $outfile "$@" + fi + + RET=$? + if [ $RET != 0 ] ; then + echo "*FAILED*" + nerrors="`expr $nerrors + 1`" + else + echo " PASSED" + DIFFTEST $infile $outfile + fi + rm -f $outfile +} + +# +# The tests +# We use the files generated by h5repacktst +# Each run generates "file4.out.h5" and the tool h5diff is used to +# compare the input and output files +# + +# See which filters are usable (and skip tests for filters we +# don't have). Do this by searching H5pubconf.h to see which +# filters are defined. +# A filter value of 3 means the filter can read and write, 2 +# is read-only, 1 is write-only, and 0 is not present. + +# copy files +TOOLTEST test1.h5 +TOOLTEST test3.h5 + + +arg="test4.h5" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg +else + SKIP $arg +fi + +#TOOLTEST test5.h5 + +# remove all filters +TOOLTEST test4.h5 -f NONE + +# remove one filter +arg="test4.h5 -f dset_gzip:NONE" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg +else + SKIP $arg +fi + +# gzip +arg="test4.h5 -f dset1:GZIP=9" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg +else + SKIP $arg +fi +TOOLTEST test4.h5 -f GZIP=1 + +# szip +arg1="test4.h5 -f dset1:SZIP=8" +arg2="test4.h5 -f SZIP=8" +if test $USE_FILTER_SZIP_ENCODER = "yes" -a $USE_FILTER_SZIP = "yes" ; then + TOOLTEST $arg1 + TOOLTEST $arg2 +else + SKIP $arg1 + SKIP $arg2 +fi + +# shuffle +arg="test4.h5 -f dset1:SHUF" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg +else + SKIP $arg +fi +TOOLTEST test4.h5 -f SHUF + +# fletcher +arg="test4.h5 -f dset1:FLET" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg +else + SKIP $arg +fi +TOOLTEST test4.h5 -f FLET + +#layout chunk +arg1="test4.h5 -l dset1:CHUNK=20x10" +arg2="test4.h5 -l CHUNK=20x10" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg1 + TOOLTEST $arg2 +else + SKIP $arg1 + SKIP $arg2 +fi + +#layout compact +arg1="test4.h5 -l dset1:COMPA" +arg2="test4.h5 -l COMPA" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg1 + TOOLTEST $arg2 +else + SKIP $arg1 + SKIP $arg2 +fi + +#layout contiguous +arg1="test4.h5 -l dset1:CONTI" +arg2="test4.h5 -l CONTI" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg1 + TOOLTEST $arg2 +else + SKIP $arg1 + SKIP $arg2 +fi + +#conversions +arg1="test4.h5 -l dset_compact:CONTI" +arg2="test4.h5 -l dset_compact:CHUNK=2x5" +arg3="test4.h5 -l dset_compact:COMPA" +arg4="test4.h5 -l dset_contiguous:COMPA" +arg5="test4.h5 -l dset_contiguous:CHUNK=3x6" +arg6="test4.h5 -l dset_contiguous:CONTI" +arg7="test4.h5 -l dset_chunk:COMPA" +arg8="test4.h5 -l dset_chunk:CONTI" +arg9="test4.h5 -l dset_chunk:CHUNK=18x13" +if test $USE_FILTER_SZIP_ENCODER = "yes" -o $USE_FILTER_SZIP = "no" ; then + TOOLTEST $arg1 + TOOLTEST $arg2 + TOOLTEST $arg3 + TOOLTEST $arg4 + TOOLTEST $arg5 + TOOLTEST $arg6 + TOOLTEST $arg7 + TOOLTEST $arg8 + TOOLTEST $arg9 +else + SKIP $arg1 + SKIP $arg2 + SKIP $arg3 + SKIP $arg4 + SKIP $arg5 + SKIP $arg6 + SKIP $arg7 + SKIP $arg8 + SKIP $arg9 +fi + +#filters +arg1="test4.h5 -f dset1:SHUF -f dset1,dset2:GZIP=6" +arg2="test4.h5 -l dset1:CHUNK=20x10 -f dset1,dset2:SZIP=8" +if test $USE_FILTER_SZIP_ENCODER = "yes" -a $USE_FILTER_SZIP = "yes"; then + TOOLTEST $arg1 + TOOLTEST $arg2 +elif test $USE_FILTER_SZIP = "yes" ; then # SZIP has no encoder + SKIP $arg1 + SKIP $arg2 +else # SZIP is absent + TOOLTEST $arg1 + SKIP $arg2 +fi + +#filter conversions +arg1="test4.h5 -f dset_gzip:SZIP=8" +arg2="test4.h5 -f dset_szip:GZIP=1" +arg3="test4.h5 -f dset_all:GZIP=1" +if test $USE_FILTER_SZIP_ENCODER = "yes" -a $USE_FILTER_SZIP = "yes" ; then + TOOLTEST $arg1 + TOOLTEST $arg2 + TOOLTEST $arg3 +elif test $USE_FILTER_SZIP = "yes" ; then # SZIP has no encoder + SKIP $arg1 + SKIP $arg2 + SKIP $arg3 +else # SZIP is absent + SKIP $arg1 + TOOLTEST $arg2 + TOOLTEST $arg3 +fi + +#limit +TOOLTEST test4.h5 -f GZIP=1 -m 1024 + +#file +arg="test4.h5 -e ../testfiles/h5repack_info.txt" +if test $USE_FILTER_SZIP_ENCODER = "yes" -a $USE_FILTER_SZIP = "yes" ; then + TOOLTEST $arg +else + SKIP $arg +fi + +if test $nerrors -eq 0 ; then + echo "All $H5REPACK tests passed." +fi + +exit $nerrors diff --git a/tools/h5repack/h5repack_copy.c b/tools/h5repack/h5repack_copy.c index 7763bd2..70d90da 100644 --- a/tools/h5repack/h5repack_copy.c +++ b/tools/h5repack/h5repack_copy.c @@ -299,10 +299,12 @@ int do_copy_objects(hid_t fidin, */ if ((dset_out=H5Dcreate(fidout,travt->objs[i].name,mtype_id,space_id,dcpl_id))<0) goto error; + if (dsize_in && nelmts) { if (H5Dwrite(dset_out,mtype_id,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf)<0) goto error; } + /*------------------------------------------------------------------------- * copy attrs *------------------------------------------------------------------------- diff --git a/tools/h5repack/h5repack_filters.c b/tools/h5repack/h5repack_filters.c index c8b9b5d..18080c6 100644 --- a/tools/h5repack/h5repack_filters.c +++ b/tools/h5repack/h5repack_filters.c @@ -293,6 +293,7 @@ int print_filters(hid_t dcpl_id) for (i=0; i<nfilters; i++) { cd_nelmts = NELMTS(cd_values); +#ifdef H5_WANT_H5_V1_6_COMPAT filtn = H5Pget_filter(dcpl_id, (unsigned)i, &filt_flags, @@ -300,6 +301,16 @@ int print_filters(hid_t dcpl_id) cd_values, sizeof(f_name), f_name); +#else + filtn = H5Pget_filter(dcpl_id, + (unsigned)i, + &filt_flags, + &cd_nelmts, + cd_values, + sizeof(f_name), + f_name, + NULL); +#endif /* H5_WANT_H5_V1_6_COMPAT */ f_name[sizeof(f_name)-1] = '\0'; sprintf(s, "Filter-%d:", i); diff --git a/tools/h5repack/h5repack_verify.c b/tools/h5repack/h5repack_verify.c index 4f69d5f..d69465b 100644 --- a/tools/h5repack/h5repack_verify.c +++ b/tools/h5repack/h5repack_verify.c @@ -60,6 +60,7 @@ int has_filter(hid_t dcpl_id, for (i=0; i<nfilters; i++) { cd_nelmts = NELMTS(cd_values); +#ifdef H5_WANT_H5_V1_6_COMPAT filtn = H5Pget_filter(dcpl_id, (unsigned)i, &filt_flags, @@ -67,6 +68,16 @@ int has_filter(hid_t dcpl_id, cd_values, sizeof(f_name), f_name); +#else + filtn = H5Pget_filter(dcpl_id, + (unsigned)i, + &filt_flags, + &cd_nelmts, + cd_values, + sizeof(f_name), + f_name, + NULL); +#endif /* H5_WANT_H5_V1_6_COMPAT */ if (filtnin==filtn) have=1; diff --git a/tools/h5repack/testh5repack_filters.c b/tools/h5repack/testh5repack_filters.c index b285b28..597381c 100644 --- a/tools/h5repack/testh5repack_filters.c +++ b/tools/h5repack/testh5repack_filters.c @@ -76,12 +76,15 @@ int make_filters(hid_t loc_id) * SZIP *------------------------------------------------------------------------- */ - /* set szip data */ - if(H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block)<0) - goto out; - if (make_dset(loc_id,"dset_szip",sid,dcpl,buf)<0) - goto out; +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) + /* set szip data */ + if(H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block)<0) + goto out; + if (make_dset(loc_id,"dset_szip",sid,dcpl,buf)<0) + goto out; + +#endif /* H5_HAVE_FILTER_SZIP && H5_SZIP_CAN_ENCODE */ /*------------------------------------------------------------------------- * GZIP *------------------------------------------------------------------------- @@ -128,18 +131,19 @@ int make_filters(hid_t loc_id) * shuffle + SZIP *------------------------------------------------------------------------- */ - /* remove the filters from the dcpl */ - if (H5Premove_filter(dcpl,H5Z_FILTER_ALL)<0) - goto out; - /* set the shuffle filter */ - if (H5Pset_shuffle(dcpl)<0) - goto out; - /* set szip data */ - if(H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block)<0) - goto out; - if (make_dset(loc_id,"dset_all",sid,dcpl,buf)<0) - goto out; - +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) + /* remove the filters from the dcpl */ + if (H5Premove_filter(dcpl,H5Z_FILTER_ALL)<0) + goto out; + /* set the shuffle filter */ + if (H5Pset_shuffle(dcpl)<0) + goto out; + /* set szip data */ + if(H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block)<0) + goto out; + if (make_dset(loc_id,"dset_all",sid,dcpl,buf)<0) + goto out; +#endif /*------------------------------------------------------------------------- * close space and dcpl diff --git a/tools/h5repack/testh5repack_main.c b/tools/h5repack/testh5repack_main.c index ddecd98..4c0a8c5 100644 --- a/tools/h5repack/testh5repack_main.c +++ b/tools/h5repack/testh5repack_main.c @@ -203,7 +203,8 @@ int main (void) TESTING(" removing szip filter"); -#ifdef H5_HAVE_FILTER_SZIP +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) + if (h5repack_init (&pack_options, 0)<0) TEST_ERROR; if (h5repack_addfilter("dset_szip:NONE",&pack_options)<0) @@ -216,7 +217,6 @@ int main (void) TEST_ERROR; if (h5repack_end (&pack_options)<0) TEST_ERROR; - PASSED(); #else SKIPPED(); @@ -330,12 +330,11 @@ int main (void) TESTING(" adding szip filter"); -#ifdef H5_HAVE_FILTER_SZIP - /*------------------------------------------------------------------------- * test an individual object option *------------------------------------------------------------------------- */ +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) if (h5repack_init (&pack_options, 0)<0) TEST_ERROR; @@ -364,7 +363,7 @@ int main (void) */ TESTING(" adding szip filter to all"); -#ifdef H5_HAVE_FILTER_SZIP +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) if (h5repack_init (&pack_options, 0)<0) TEST_ERROR; @@ -379,7 +378,8 @@ TESTING(" adding szip filter to all"); if (h5repack_end (&pack_options)<0) TEST_ERROR; - PASSED(); + PASSED(); + #else SKIPPED(); #endif @@ -522,8 +522,10 @@ TESTING(" addding shuffle filter to all"); #endif if (h5repack_addfilter("dset1:SHUF",&pack_options)<0) TEST_ERROR; - if (h5repack_addfilter("dset1:SZIP=8",&pack_options)<0) - TEST_ERROR; +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) + if (h5repack_addfilter("dset1:SZIP=8",&pack_options)<0) + TEST_ERROR; +#endif if (h5repack_addfilter("dset1:GZIP=1",&pack_options)<0) TEST_ERROR; if (h5repack(FNAME4,FNAME4OUT,&pack_options)<0) @@ -542,7 +544,7 @@ TESTING(" addding shuffle filter to all"); * filter conversion from deflate to szip *------------------------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_DEFLATE +#if defined(H5_HAVE_FILTER_DEFLATE) && defined(H5_HAVE_FILTER_SZIP) && defined(H5_SZIP_CAN_ENCODE) if (h5repack_init (&pack_options, 0)<0) TEST_ERROR; if (h5repack_addfilter("dset_gzip:SZIP=8",&pack_options)<0) @@ -556,16 +558,18 @@ TESTING(" addding shuffle filter to all"); if (h5repack_end (&pack_options)<0) TEST_ERROR; PASSED(); -#else +#else SKIPPED(); -#endif +#endif + TESTING(" filter conversion from szip to deflate"); /*------------------------------------------------------------------------- * filter conversion from szip to deflate *------------------------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_SZIP +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) + if (h5repack_init (&pack_options, 0)<0) TEST_ERROR; if (h5repack_addfilter("dset_szip:GZIP=1",&pack_options)<0) @@ -579,6 +583,7 @@ TESTING(" addding shuffle filter to all"); if (h5repack_end (&pack_options)<0) TEST_ERROR; PASSED(); + #else SKIPPED(); #endif @@ -588,7 +593,8 @@ TESTING(" addding shuffle filter to all"); * filter conversion from szip to deflate *------------------------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_SZIP +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_SZIP_CAN_ENCODE) + if (h5repack_init (&pack_options, 0)<0) TEST_ERROR; if (h5repack_addfilter("dset_all:GZIP=1",&pack_options)<0) @@ -601,7 +607,7 @@ TESTING(" addding shuffle filter to all"); TEST_ERROR; if (h5repack_end (&pack_options)<0) TEST_ERROR; - PASSED(); + PASSED(); #else SKIPPED(); #endif |