summaryrefslogtreecommitdiffstats
path: root/c++/test/trefer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'c++/test/trefer.cpp')
-rw-r--r--c++/test/trefer.cpp133
1 files changed, 73 insertions, 60 deletions
diff --git a/c++/test/trefer.cpp b/c++/test/trefer.cpp
index 9074154..b46ae29 100644
--- a/c++/test/trefer.cpp
+++ b/c++/test/trefer.cpp
@@ -61,14 +61,16 @@ typedef struct s1_t {
float c;
} s1_t;
-/****************************************************************
-**
-** test_reference_params(): Test basic H5R (reference) parameters
-** for correct processing
-**
-****************************************************************/
-static void
-test_reference_params(void)
+
+/*-------------------------------------------------------------------------
+ * Function: test_reference_params
+ *
+ * Purpose Test basic H5R (reference) parameters for correct processing
+ *
+ * Return None
+ *-------------------------------------------------------------------------
+ */
+static void test_reference_params()
{
const char *write_comment = "Foo!"; /* Comments for group */
@@ -177,13 +179,17 @@ test_reference_params(void)
delete file1;
} /* test_reference_param() */
-/****************************************************************
-**
-** test_reference_obj(): Test basic object reference functions
-** to various kinds of objects
-**
-****************************************************************/
-static void test_reference_obj(void)
+
+/*-------------------------------------------------------------------------
+ * Function: test_reference_obj
+ *
+ * Purpose Test basic object reference functions to various kinds
+ * of objects
+ *
+ * Return None
+ *-------------------------------------------------------------------------
+ */
+static void test_reference_obj()
{
int i; // counting variables
const H5std_string write_comment="Foo!"; // Comments for group
@@ -369,14 +375,15 @@ static void test_reference_obj(void)
delete file1;
} // test_reference_obj()
-
-/****************************************************************
-**
-** test_reference_group(): Test object reference functionality
-** Tests for correct behavior of various routines on
-** dereferenced group
-**
-****************************************************************/
+
+/*-------------------------------------------------------------------------
+ * Function: test_reference_group
+ *
+ * Purpose Test object reference functionality on group.
+ *
+ * Return None
+ *-------------------------------------------------------------------------
+ */
#define GROUPNAME "/group"
#define GROUPNAME2 "group2"
#define GROUPNAME3 "group3"
@@ -384,8 +391,7 @@ static void test_reference_obj(void)
#define DSETNAME2 "dset2"
#define NAME_SIZE 16
-static void
-test_reference_group(void)
+static void test_reference_group()
{
hobj_ref_t wref; /* Reference to write */
hobj_ref_t rref; /* Reference to read */
@@ -470,11 +476,26 @@ test_reference_group(void)
// Check getting file name given the group dereferenced via constructor
H5std_string fname = refgroup.getFileName();
verify_val(fname, FILE1, "H5Group::getFileName",__LINE__,__FILE__);
-
+
// Check getting file name given the group dereferenced by ::reference
fname = group.getFileName();
verify_val(fname, FILE1, "H5Group::getFileName",__LINE__,__FILE__);
+ // Check object type using Group::getObjinfo()
+ H5O_info2_t oinfo;
+ HDmemset(&oinfo, 0, sizeof(oinfo));
+ group.getObjinfo(".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)0, oinfo);
+ verify_val(oinfo.type, H5O_TYPE_DATASET, "Group::getObjinfo",__LINE__,__FILE__);
+
+ // Check for out of bound query by index
+ try {
+ HDmemset(&oinfo, 0, sizeof(oinfo));
+ group.getObjinfo(".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)9, oinfo);
+
+ // Should FAIL but didn't, so throw an invalid action exception
+ throw InvalidActionException("Group::getObjinfo", "Out of bound index.");
+ } catch (Exception& err) {} // do nothing, failure expected
+
// Unlink one of the objects in the dereferenced group, and re-check
refgroup.unlink(GROUPNAME2);
nobjs = refgroup.getNumObjs();
@@ -498,14 +519,16 @@ test_reference_group(void)
delete file1;
} /* test_reference_group() */
-/****************************************************************
-**
-** test_reference_region_1D(): Test 1-D reference functionality
-** Tests 1-D references to various kinds of objects
-**
-****************************************************************/
-static void
-test_reference_region_1D(void)
+
+/*-------------------------------------------------------------------------
+ * Function: test_reference_region_1D
+ *
+ * Purpose Test 1-D reference functionality on various kinds of objects.
+ *
+ * Return None
+ *-------------------------------------------------------------------------
+ */
+static void test_reference_region_1D()
{
hsize_t start[SPACE3_RANK]; /* Starting location of hyperslab */
hsize_t stride[SPACE3_RANK]; /* Stride of hyperslab */
@@ -787,26 +810,14 @@ test_reference_region_1D(void)
}
} /* test_reference_region_1D() */
-
-/****************************************************************
-**
-** test_reference_compat(): Test basic object reference functionality.
-** Tests references to various kinds of objects using deprecated API.
-**
-****************************************************************/
-static void test_reference_compat(void)
-{
- // Not yet
-} // test_reference_compat()
-
-
-/****************************************************************
-**
-** test_reference(): Main reference testing routine.
-**
-****************************************************************/
+/*-------------------------------------------------------------------------
+ *
+ * test_reference(): Main reference testing routine.
+ *
+ *-------------------------------------------------------------------------
+ */
extern "C"
-void test_reference(void)
+void test_reference()
{
// Output message about test being performed
MESSAGE(5, ("Testing References\n"));
@@ -815,18 +826,20 @@ void test_reference(void)
test_reference_obj(); // Test basic object reference functionality
test_reference_group(); // Test group reference functionality
test_reference_region_1D(); // Test 1-D reference functionality
- test_reference_compat(); // Tests deprecated reference routines (not yet)
} // test_reference()
-/****************************************************************
-** Function: cleanup_reference
-** Purpose Cleanup temporary test files
-** Return none
-****************************************************************/
+/*-------------------------------------------------------------------------
+ * Function: cleanup_reference
+ *
+ * Purpose Cleanup temporary test files
+ *
+ * Return None
+ *-------------------------------------------------------------------------
+ */
extern "C"
-void cleanup_reference(void)
+void cleanup_reference()
{
HDremove(FILE1.c_str());
HDremove(FILE2.c_str());