summaryrefslogtreecommitdiffstats
path: root/c++/test
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2016-12-19 06:34:18 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2016-12-19 06:34:18 (GMT)
commit798cdad29a49e0883446f7dad3c7992d53ea6ee3 (patch)
tree1de6ed6b6115be9cecd3753b63d3c69b54d03a80 /c++/test
parent700c6ae9851752d8ccf6fc18cdd5b44dcf9603a5 (diff)
downloadhdf5-798cdad29a49e0883446f7dad3c7992d53ea6ee3.zip
hdf5-798cdad29a49e0883446f7dad3c7992d53ea6ee3.tar.gz
hdf5-798cdad29a49e0883446f7dad3c7992d53ea6ee3.tar.bz2
Purpose: Improvement for HDFFV-10004
Description: When adding wrappers for H5Lexists, a new class, LinkAccPropList, was added to the C++ API, triggered complicated circular dependencies. Thus, some improvement was made to resolve the problems. - Replaced existing functions openXxxType with individual type constructors + Added individual XxxType constructors to replace the existing functions openXxxType because it's rather awkward to use these functions. + Moved openXxxType from H5Location back to CommonFG + Put back CommonFG as a baseclass of Group for openXxxType functions. + This replacement should improve usability and prevent the problem of circular dependencies. - Removed overloaded constructor that takes an Attribute when there is already one that takes H5Location because Attribute inherits from H5Location now. Platforms tested: Linux/32 2.6 (jam) Darwin (osx1010test) Linux/64 (platypus)
Diffstat (limited to 'c++/test')
-rw-r--r--c++/test/tarray.cpp16
-rw-r--r--c++/test/tobject.cpp21
2 files changed, 33 insertions, 4 deletions
diff --git a/c++/test/tarray.cpp b/c++/test/tarray.cpp
index 7fe2e6b..f10016f 100644
--- a/c++/test/tarray.cpp
+++ b/c++/test/tarray.cpp
@@ -34,6 +34,7 @@ using namespace H5;
#include "h5cpputil.h" // C++ utilility header file
const H5std_string FILENAME("tarray.h5");
+const H5std_string ARRAYTYPE_NAME("/Array type 1");
const int SPACE1_RANK = 1;
const hsize_t SPACE1_DIM1 = 4;
const int ARRAY1_RANK = 1;
@@ -130,9 +131,22 @@ static void test_array_compound_array()
// Write dataset to disk
dataset.write(wdata, arrtype);
+ // Test opening ArrayType with opening constructor (Dec 2016)
+
+ // Commit the arrtype to give it a name
+ arrtype.commit(file1, ARRAYTYPE_NAME);
+
+ // Close it, then re-open with the opening constructor
+ arrtype.close();
+ ArrayType named_type(file1, ARRAYTYPE_NAME);
+
+ // Get and verify the type's name
+ H5std_string type_name = named_type.getObjName();
+ verify_val(type_name, ARRAYTYPE_NAME, "DataType::getObjName tests constructor", __LINE__, __FILE__);
+ named_type.close();
+
// Close all
dataset.close();
- arrtype.close();
space.close();
file1.close();
diff --git a/c++/test/tobject.cpp b/c++/test/tobject.cpp
index b8654c3..e142f02 100644
--- a/c++/test/tobject.cpp
+++ b/c++/test/tobject.cpp
@@ -23,8 +23,6 @@
#else
#include <iostream>
#endif
-using std::cerr;
-using std::endl;
#include <string>
#include "H5Cpp.h" // C++ API header file
@@ -184,6 +182,16 @@ static void test_get_objname_ontypes()
H5std_string inttype_name = inttype.getObjName();
verify_val(inttype_name, "/INT type of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__);
+ // Close the type then open it again to test getting its name with
+ // the constructor
+ inttype.close();
+ IntType newtype(file, "INT type of STD_B8LE");
+
+ // Get and verify its name
+ H5std_string type_name = newtype.getObjName();
+ verify_val(type_name, "/INT type of STD_B8LE", "DataType::getObjName tests constructor", __LINE__, __FILE__);
+ newtype.close();
+
// Make copy of a predefined type and save it
DataType dtype(PredType::STD_B8LE);
dtype.commit(file, "STD_B8LE");
@@ -197,7 +205,14 @@ static void test_get_objname_ontypes()
dtype = file.openDataType("STD_B8LE");
// Get and verify its name
- H5std_string type_name = dtype.getObjName();
+ type_name = dtype.getObjName();
+ verify_val(type_name, "/STD_B8LE", "DataType::getObjName", __LINE__, __FILE__);
+
+ // Repeat the test with openDataType's replacement
+ DataType dtype2(file, "STD_B8LE");
+
+ // Get and verify its name
+ type_name = dtype2.getObjName();
verify_val(type_name, "/STD_B8LE", "DataType::getObjName", __LINE__, __FILE__);
// Test getting type's name from copied type