summaryrefslogtreecommitdiffstats
path: root/test/dsets.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-07-28 03:22:12 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-07-28 03:22:12 (GMT)
commitae0ae159563f4d284b4062f0c838f7c91d38f338 (patch)
tree79c055e152a7dfb1452bcd51f65e0b0a96f48a4f /test/dsets.c
parent4c7a64cc7381fe1ad8620c4def738bd7691ef490 (diff)
downloadhdf5-ae0ae159563f4d284b4062f0c838f7c91d38f338.zip
hdf5-ae0ae159563f4d284b4062f0c838f7c91d38f338.tar.gz
hdf5-ae0ae159563f4d284b4062f0c838f7c91d38f338.tar.bz2
[svn-r8962] Purpose:
Bug fix Description: Allow I/O on extendible chunked datasets with (currently) zero-sized dimensions to proceed harmlessly instead of dumping core on an assertion. Solution: Removed assertion and added checks to avoid problem situation in H5TB_end Platforms tested: FreeBSD 4.10 (sleipnir) w/ & w/o parallel Too minor to require h5committest
Diffstat (limited to 'test/dsets.c')
-rw-r--r--test/dsets.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/dsets.c b/test/dsets.c
index d996211..cd3cbc5 100644
--- a/test/dsets.c
+++ b/test/dsets.c
@@ -113,6 +113,10 @@ const char *FILENAME[] = {
#define NOENCODER_TEST_DATASET "noencoder_tdset.h5"
#define NOENCODER_SZIP_DATASET "noencoder_szip_dset.h5"
#define NOENCODER_SZIP_SHUFF_FLETCH_DATASET "noencoder_szip_shuffle_fletcher_dset.h5"
+
+/* Names for zero-dim test */
+#define ZERODIM_DATASET "zerodim"
+
/* Shared global arrays */
#define DSET_DIM1 100
#define DSET_DIM2 200
@@ -3626,6 +3630,53 @@ error:
/*-------------------------------------------------------------------------
+ * Function: test_zero_dims
+ *
+ * Purpose: Tests read/writes to zero-sized extendible datasets
+ *
+ * Return: Success: 0
+ * Failure: -1
+ *
+ * Programmer: Quincey Koziol
+ * Tuesday, July 27, 2004
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+test_zero_dims(hid_t file)
+{
+ hid_t s=-1, d=-1, dcpl=-1;
+ hsize_t dsize=0, dmax=H5S_UNLIMITED, csize=5;
+
+ TESTING("I/O on datasets with zero-sized dims");
+
+ if((s = H5Screate_simple(1, &dsize, &dmax))<0) TEST_ERROR;
+ if((dcpl = H5Pcreate(H5P_DATASET_CREATE))<0) TEST_ERROR;
+ if(H5Pset_chunk(dcpl, 1, &csize)<0) TEST_ERROR;
+ if((d = H5Dcreate(file, ZERODIM_DATASET, H5T_NATIVE_INT, s, dcpl))<0) TEST_ERROR;
+
+ if(H5Dwrite(d, H5T_NATIVE_INT, s, s, H5P_DEFAULT, (void*)911)<0) TEST_ERROR;
+
+ if(H5Pclose(dcpl)<0) TEST_ERROR;
+ if(H5Sclose(s)<0) TEST_ERROR;
+ if(H5Dclose(d)<0) TEST_ERROR;
+
+ PASSED();
+ return 0;
+
+error:
+ H5E_BEGIN_TRY {
+ H5Pclose(dcpl);
+ H5Dclose(d);
+ H5Sclose(s);
+ } H5E_END_TRY;
+ return -1;
+} /* end test_zero_dims() */
+
+
+/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: Tests the dataset interface (H5D)
@@ -3693,6 +3744,7 @@ main(void)
nerrors += test_compare_dcpl(file)<0 ?1:0;
nerrors += test_filter_delete(file)<0 ?1:0;
nerrors += test_filters_endianess()<0 ?1:0;
+ nerrors += test_zero_dims(file)<0 ?1:0;
if (H5Fclose(file)<0) goto error;
if (nerrors) goto error;