summaryrefslogtreecommitdiffstats
path: root/tools/h5repack/testh5repack_make.c
diff options
context:
space:
mode:
authorRobert E. McGrath <mcgrath@ncsa.uiuc.edu>2004-11-02 19:14:14 (GMT)
committerRobert E. McGrath <mcgrath@ncsa.uiuc.edu>2004-11-02 19:14:14 (GMT)
commit25c1e28ffd660e713f97b65e70620c7128f46f1f (patch)
treead6abf34988df6351d4b579a7b87be6f822ca247 /tools/h5repack/testh5repack_make.c
parent8c0c4f945db726fcddd2a40e4f617cdf6aac6be8 (diff)
downloadhdf5-25c1e28ffd660e713f97b65e70620c7128f46f1f.zip
hdf5-25c1e28ffd660e713f97b65e70620c7128f46f1f.tar.gz
hdf5-25c1e28ffd660e713f97b65e70620c7128f46f1f.tar.bz2
[svn-r9496] Purpose:
Fix SZIP filter to dynmically detect encoder. Description: Solution: See: http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf Changes to h5repack tests, contingent on detecting SZIP encoder. Note new program: testh5repack_detect_szip Checks fo rencoder, prints out "yes" or "no". Used by hrepack.sh to detect encoder. Can also be used for windows tests. This is only used as part of the tests. Had to modify Makefile to build and clean this program.
Diffstat (limited to 'tools/h5repack/testh5repack_make.c')
-rw-r--r--tools/h5repack/testh5repack_make.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/tools/h5repack/testh5repack_make.c b/tools/h5repack/testh5repack_make.c
index 3cf7c11..6149bd9 100644
--- a/tools/h5repack/testh5repack_make.c
+++ b/tools/h5repack/testh5repack_make.c
@@ -372,6 +372,9 @@ int make_szip(hid_t loc_id)
hsize_t chunk_dims[RANK]={CDIM1,CDIM2};
int buf[DIM1][DIM2];
int i, j, n;
+#if defined (H5_HAVE_FILTER_SZIP)
+ int szip_can_encode = 0;
+#endif
for (i=n=0; i<DIM1; i++){
for (j=0; j<DIM2; j++){
@@ -393,12 +396,19 @@ int make_szip(hid_t loc_id)
*-------------------------------------------------------------------------
*/
/* Make sure encoding is enabled */
-#if defined (H5_SZIP_CAN_ENCODE) && defined (H5_HAVE_FILTER_SZIP)
+#if defined (H5_HAVE_FILTER_SZIP)
+if (h5tools_can_encode(H5Z_FILTER_SZIP) == 1) {
+ szip_can_encode = 1;
+}
+if (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;
+} else {
+ /* WARNING? SZIP is decoder only, can't generate test files */
+}
#endif
if(H5Sclose(sid)<0)
@@ -629,6 +639,9 @@ int make_all(hid_t loc_id)
hsize_t chunk_dims[RANK]={CDIM1,CDIM2};
int buf[DIM1][DIM2];
int i, j, n;
+#if defined (H5_HAVE_FILTER_SZIP)
+ int szip_can_encode = 0;
+#endif
for (i=n=0; i<DIM1; i++){
for (j=0; j<DIM2; j++){
@@ -657,10 +670,17 @@ int make_all(hid_t loc_id)
goto out;
#endif
-#if defined (H5_SZIP_CAN_ENCODE) && defined (H5_HAVE_FILTER_SZIP)
+#if defined (H5_HAVE_FILTER_SZIP)
+if (h5tools_can_encode(H5Z_FILTER_SZIP) == 1) {
+ szip_can_encode = 1;
+}
+if (szip_can_encode) {
/* set szip data */
if(H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block)<0)
goto out;
+} else {
+ /* WARNING? SZIP is decoder only, can't generate test data using szip */
+}
#endif
#if defined (H5_HAVE_FILTER_DEFLATE)
@@ -692,7 +712,8 @@ int make_all(hid_t loc_id)
*-------------------------------------------------------------------------
*/
/* Make sure encoding is enabled */
-#if defined (H5_SZIP_CAN_ENCODE) && defined (H5_HAVE_FILTER_SZIP)
+#if defined (H5_HAVE_FILTER_SZIP)
+if (szip_can_encode) {
/* remove the filters from the dcpl */
if (H5Premove_filter(dcpl,H5Z_FILTER_ALL)<0)
goto out;
@@ -701,6 +722,9 @@ int make_all(hid_t loc_id)
goto out;
if (make_dset(loc_id,"dset_szip",sid,dcpl,buf)<0)
goto out;
+} else {
+ /* WARNING? SZIP is decoder only, can't generate test dataset */
+}
#endif
/*-------------------------------------------------------------------------