summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/th5s.c122
-rw-r--r--test/tmisc.c82
2 files changed, 122 insertions, 82 deletions
diff --git a/test/th5s.c b/test/th5s.c
index 570583a..2cdab33 100644
--- a/test/th5s.c
+++ b/test/th5s.c
@@ -29,6 +29,9 @@
#define TESTFILE "th5s.h5"
#define DATAFILE "th5s1.h5"
+#define NULLFILE "th5s2.h5"
+#define NULLDATASET "null_dataset"
+#define NULLATTR "null_attribute"
/* 3-D dataset with fixed dimensions */
#define SPACE1_NAME "Space1"
@@ -194,6 +197,124 @@ test_h5s_basic(void)
/****************************************************************
**
+** test_h5s_null(): Test NULL data space
+**
+****************************************************************/
+static void
+test_h5s_null(void)
+{
+ hid_t fid; /* File ID */
+ hid_t sid, sid2; /* Dataspace IDs */
+ hid_t dset_sid, dset_sid2; /* Dataspace IDs */
+ hid_t attr_sid; /* Dataspace IDs */
+ hid_t did; /* Dataset ID */
+ hid_t attr; /*Attribute ID */
+ H5S_class_t class; /* dataspace type */
+ herr_t ret; /* Generic return value */
+
+ /* Output message about test being performed */
+ MESSAGE(5, ("Testing Null Dataspace\n"));
+
+ /* Create the file */
+ fid = H5Fcreate(NULLFILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ CHECK(fid, FAIL, "H5Fcreate");
+
+ sid = H5Screate(H5S_NULL);
+ CHECK(sid, FAIL, "H5Screate");
+
+ /* Create first dataset */
+ did = H5Dcreate(fid, NULLDATASET, H5T_STD_U32LE, sid, H5P_DEFAULT);
+ CHECK(did, FAIL, "H5Dcreate");
+
+ /* Create an attribute for the group */
+ attr=H5Acreate(did,NULLATTR,H5T_NATIVE_INT,sid,H5P_DEFAULT);
+ CHECK(attr, FAIL, "H5Acreate");
+
+ /* Close attribute */
+ ret=H5Aclose(attr);
+ CHECK(ret, FAIL, "H5Aclose");
+
+ /* Close the dataset */
+ ret = H5Dclose(did);
+ CHECK(ret, FAIL, "H5Dclose");
+
+ /* Close the dataspace */
+ ret = H5Sclose(sid);
+ CHECK(ret, FAIL, "H5Sclose");
+
+ /* Close the file */
+ ret = H5Fclose(fid);
+ CHECK(ret, FAIL, "H5Fclose");
+
+ /*============================================
+ * Reopen the file to check the data space
+ *============================================
+ */
+ fid = H5Fopen(NULLFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ CHECK(fid, FAIL, "H5Fopen");
+
+ /* Reopen the dataset */
+ did = H5Dopen(fid, NULLDATASET);
+ CHECK(did, FAIL, "H5Dopen");
+
+ /* Get the space of the dataset */
+ dset_sid = H5Dget_space(did);
+ CHECK(dset_sid, FAIL, "H5Dget_space");
+
+ /* Query the NULL dataspace */
+ dset_sid2 = H5Scopy(dset_sid);
+ CHECK(dset_sid2, FAIL, "H5Scopy");
+
+ /* Verify the class type of dataspace */
+ class = H5Sget_simple_extent_type(dset_sid2);
+ VERIFY(class, H5S_NULL, "H5Sget_simple_extent_type");
+
+ /* Verify there is zero element in the dataspace */
+ ret = H5Sget_simple_extent_npoints(dset_sid2);
+ VERIFY(ret, 0, "H5Sget_simple_extent_npoints");
+
+ /* Close the dataspace */
+ ret = H5Sclose(dset_sid);
+ CHECK(ret, FAIL, "H5Sclose");
+
+ ret = H5Sclose(dset_sid2);
+ CHECK(ret, FAIL, "H5Sclose");
+
+ /* Open the attribute for the dataset */
+ attr=H5Aopen_name(did,NULLATTR);
+ CHECK(attr, FAIL, "H5Aopen_name");
+
+ /* Get the space of the dataset */
+ attr_sid = H5Aget_space(attr);
+ CHECK(attr_sid, FAIL, "H5Aget_space");
+
+ /* Verify the class type of dataspace */
+ class = H5Sget_simple_extent_type(attr_sid);
+ VERIFY(class, H5S_NULL, "H5Sget_simple_extent_type");
+
+ /* Verify there is zero element in the dataspace */
+ ret = H5Sget_simple_extent_npoints(attr_sid);
+ VERIFY(ret, 0, "H5Sget_simple_extent_npoints");
+
+ /* Close the dataspace */
+ ret = H5Sclose(attr_sid);
+ CHECK(ret, FAIL, "H5Sclose");
+
+ /* Close attribute */
+ ret=H5Aclose(attr);
+ CHECK(ret, FAIL, "H5Aclose");
+
+ /* Close the dataset */
+ ret = H5Dclose(did);
+ CHECK(ret, FAIL, "H5Dclose");
+
+ /* Close the file */
+ ret = H5Fclose(fid);
+ CHECK(ret, FAIL, "H5Fclose");
+} /* end test_misc20() */
+
+/****************************************************************
+**
** test_h5s_scalar_write(): Test scalar H5S (dataspace) writing code.
**
****************************************************************/
@@ -566,6 +687,7 @@ test_h5s(void)
MESSAGE(5, ("Testing Dataspaces\n"));
test_h5s_basic(); /* Test basic H5S code */
+ test_h5s_null(); /* Test Null dataspace H5S code */
test_h5s_scalar_write(); /* Test scalar H5S writing code */
test_h5s_scalar_read(); /* Test scalar H5S reading code */
test_h5s_compound_scalar_write(); /* Test compound datatype scalar H5S writing code */
diff --git a/test/tmisc.c b/test/tmisc.c
index 92dc2de..87534fa 100644
--- a/test/tmisc.c
+++ b/test/tmisc.c
@@ -217,10 +217,6 @@ unsigned m13_rdata[MISC13_DIM1][MISC13_DIM2]; /* Data read from dataset
#define MISC19_ATTR_NAME "Attribute"
#define MISC19_GROUP_NAME "Group"
-/* Definitions for misc. test #20 */
-#define MISC20_FILE "tmisc20.h5"
-#define MISC20_DSET_NAME "Dataset"
-
/****************************************************************
**
** test_misc1(): test unlinking a dataset from a group and immediately
@@ -3289,83 +3285,6 @@ test_misc19(void)
VERIFY(ret, FAIL, "H5Eclose_stack");
} /* end test_misc19() */
-
-/****************************************************************
-**
-** test_misc20(): Test NULL data space
-**
-****************************************************************/
-static void
-test_misc20(void)
-{
- hid_t fid; /* File ID */
- hid_t sid, sid2; /* Dataspace IDs */
- hid_t did; /* Dataset ID */
- H5S_class_t class; /* dataspace type */
- herr_t ret; /* Generic return value */
-
- /* Create the file */
- fid = H5Fcreate(MISC20_FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
- CHECK(fid, FAIL, "H5Fcreate");
-
- sid = H5Screate(H5S_NULL);
- CHECK(sid, FAIL, "H5Screate");
-
- /* Create first dataset */
- did = H5Dcreate(fid, MISC20_DSET_NAME, H5T_STD_U32LE, sid, H5P_DEFAULT);
- CHECK(did, FAIL, "H5Dcreate");
-
- /* Close the dataset */
- ret = H5Dclose(did);
- CHECK(ret, FAIL, "H5Dclose");
-
- /* Close the dataspace */
- ret = H5Sclose(sid);
- CHECK(ret, FAIL, "H5Sclose");
-
- /* Close the file */
- ret = H5Fclose(fid);
- CHECK(ret, FAIL, "H5Fclose");
-
- /* Reopen the file to check the data space */
- fid = H5Fopen(MISC20_FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
- CHECK(fid, FAIL, "H5Fopen");
-
- /* Reopen the dataset */
- did = H5Dopen(fid, MISC20_DSET_NAME);
- CHECK(did, FAIL, "H5Dopen");
-
- /* Get the space of the dataset */
- sid = H5Dget_space(did);
- CHECK(sid, FAIL, "H5Dget_space");
-
- /* Query the NULL dataspace */
- sid2 = H5Scopy(sid);
- CHECK(sid2, FAIL, "H5Scopy");
-
- /* Verify the class type of dataspace */
- class = H5Sget_simple_extent_type(sid2);
- VERIFY(class, H5S_NULL, "H5Sget_simple_extent_type");
-
- /* Verify there is zero element in the dataspace */
- ret = H5Sget_simple_extent_npoints(sid2);
- VERIFY(ret, 0, "H5Sget_simple_extent_npoints");
-
- /* Close the dataset */
- ret = H5Dclose(did);
- CHECK(ret, FAIL, "H5Dclose");
-
- /* Close the dataspace */
- ret = H5Sclose(sid);
- CHECK(ret, FAIL, "H5Sclose");
-
- ret = H5Sclose(sid2);
- CHECK(ret, FAIL, "H5Sclose");
-
- /* Close the file */
- ret = H5Fclose(fid);
- CHECK(ret, FAIL, "H5Fclose");
-} /* end test_misc20() */
/****************************************************************
**
@@ -3397,7 +3316,6 @@ test_misc(void)
test_misc17(); /* Test array of ASCII character */
test_misc18(); /* Test new object header information in H5G_stat_t struct */
test_misc19(); /* Test incrementing & decrementing ref count on IDs */
- test_misc20(); /* Test NULL data space */
} /* test_misc() */