summaryrefslogtreecommitdiffstats
path: root/c++/test
diff options
context:
space:
mode:
Diffstat (limited to 'c++/test')
-rw-r--r--c++/test/tattr.cpp16
-rw-r--r--c++/test/ttypes.cpp21
2 files changed, 25 insertions, 12 deletions
diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp
index 407e6a8..c9422ce 100644
--- a/c++/test/tattr.cpp
+++ b/c++/test/tattr.cpp
@@ -741,12 +741,26 @@ static void test_attr_compound_read()
// Verify name
H5std_string attr_name = attr.getName();
verify_val(attr_name, ATTR4_NAME, "Attribute::getName", __LINE__, __FILE__);
- PASSED();
} // end try block
catch (Exception E) {
issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, E.getCDetailMsg());
}
+
+ try
+ {
+ // Now, try truncating the file to make sure reference counting is good.
+ // If any references to ids in the previous block are left unterminated,
+ // the truncating will fail, because the file will not be closed in
+ // the file.close() above.
+ H5File file1(FILE_COMPOUND, H5F_ACC_TRUNC);
+
+ PASSED();
+ } // end try block
+
+ catch (FileIException E) {
+ issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, "Unable to truncate file, possibly because some objects are left opened");
+ }
} // test_attr_compound_read()
/****************************************************************
diff --git a/c++/test/ttypes.cpp b/c++/test/ttypes.cpp
index 004723f..2e64051 100644
--- a/c++/test/ttypes.cpp
+++ b/c++/test/ttypes.cpp
@@ -283,10 +283,16 @@ static void test_query()
tid2.close();
file.close();
+ // Try truncating the file to make sure reference counting is good.
+ // If any references to ids of tid1 and tid2 are left unterminated,
+ // the truncating will fail, because the file will not be closed in
+ // the file.close() above.
+ H5File file1(FILENAME[2], H5F_ACC_TRUNC);
+
PASSED();
} // end of try block
catch (Exception E) {
- issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg());
+ issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg());
}
} // test_query
@@ -467,27 +473,20 @@ static void test_named ()
trans_type.setPrecision(256);
trans_type.close();
- /*
- * Close the committed type and reopen it. It should return a named type.
-* This had something to do with the way IntType was returned and assigned
-and caused itype.committed not working correctly. So, use another_type for
-now.
+ // Close the committed type and reopen it. It should be a named type.
itype.close();
itype = file.openIntType("native-int");
iscommitted = itype.committed();
-*/
- IntType another_type = file.openIntType("native-int");
- iscommitted = another_type.committed();
if (!iscommitted)
throw InvalidActionException("IntType::committed()", "Opened named types should be named types!");
// Create a dataset that uses the named type, then get the dataset's
// datatype and make sure it's a named type.
- DataSet dset = file.createDataSet("dset1", another_type, space);
+ DataSet dset = file.createDataSet("dset1", itype, space);
ds_type = new DataType(dset.getDataType());
iscommitted = ds_type->committed();
if (!iscommitted)
- throw InvalidActionException("IntType::committed()", "1 Dataset type should be named type!");
+ throw InvalidActionException("IntType::committed()", "Dataset type should be named type!");
dset.close();
ds_type->close();
delete ds_type;