diff options
Diffstat (limited to 'c++/test')
-rw-r--r-- | c++/test/dsets.cpp | 62 | ||||
-rw-r--r-- | c++/test/trefer.cpp | 15 |
2 files changed, 77 insertions, 0 deletions
diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp index 250ce90..e86052b 100644 --- a/c++/test/dsets.cpp +++ b/c++/test/dsets.cpp @@ -1116,6 +1116,67 @@ static herr_t test_types(H5File& file) /*------------------------------------------------------------------------- + * Function: test_getinfo + * + * Purpose Tests getInfo() + * + * Return Success: 0 + * + * Failure: -1 + * + * July, 2018 + *------------------------------------------------------------------------- + */ +static herr_t test_getinfo(H5File& file) +{ + SUBTEST("Getting object information"); + + try { + // Create a data space + hsize_t dims[2]; + dims[0] = 256; + dims[1] = 512; + DataSpace space (2, dims, NULL); + + // Create a dataset using the default dataset creation properties. + // We're not sure what they are, so we won't check. + DataSet dataset(file.openDataSet(DSET_CHUNKED_NAME)); + + // Get dataset header info + H5O_info_t oinfo; + HDmemset(&oinfo, 0, sizeof(oinfo)); + dataset.getInfo(oinfo, H5O_INFO_HDR); + verify_val(oinfo.hdr.nchunks, 1, "DataSet::getInfo", __LINE__, __FILE__); + dataset.close(); + + // Open the dataset we created above and then close it. This is one + // way to open an existing dataset for accessing. + dataset = file.openDataSet(DSET_DEFAULT_NAME); + HDmemset(&oinfo, 0, sizeof(oinfo)); + dataset.getInfo(oinfo, H5O_INFO_ALL); + verify_val(oinfo.hdr.nchunks, 1, "DataSet::getInfo", __LINE__, __FILE__); + dataset.close(); + + PASSED(); + return 0; + } // outer most try block + + catch (InvalidActionException& E) + { + cerr << " FAILED" << endl; + cerr << " <<< " << E.getDetailMsg() << " >>>" << endl << endl; + return -1; + } + // catch all other exceptions + catch (Exception& E) + { + issue_fail_msg("test_getinfo", __LINE__, __FILE__); + return -1; + } +} // test_getinfo + + +/*------------------------------------------------------------------------- * Function: test_virtual * * Purpose Tests fixed, unlimited, and printf selections in the same @@ -1237,6 +1298,7 @@ void test_dset() nerrors += test_create(file) < 0 ? 1:0; nerrors += test_simple_io(file) < 0 ? 1:0; + nerrors += test_getinfo(file) < 0 ? 1:0; nerrors += test_tconv(file) < 0 ? 1:0; nerrors += test_compression(file) < 0 ? 1:0; nerrors += test_nbit_compression(file) < 0 ? 1:0; diff --git a/c++/test/trefer.cpp b/c++/test/trefer.cpp index bb09616..fa214df 100644 --- a/c++/test/trefer.cpp +++ b/c++/test/trefer.cpp @@ -481,6 +481,21 @@ static void test_reference_group() fname = group.getFileName(); verify_val(fname, FILE1, "H5Group::getFileName",__LINE__,__FILE__); + // Check object type using Group::getInfo() + H5O_info_t oinfo; + HDmemset(&oinfo, 0, sizeof(oinfo)); + group.getInfo(".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)0, oinfo); + verify_val(oinfo.type, H5O_TYPE_DATASET, "Group::getInfo",__LINE__,__FILE__); + + // Check for out of bound query by index + try { + HDmemset(&oinfo, 0, sizeof(oinfo)); + group.getInfo(".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)9, oinfo); + + // Should FAIL but didn't, so throw an invalid action exception + throw InvalidActionException("Group::getInfo", "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(); |