[svn-r13954] Purpose: Fix test

Description:
    Compilers don't destroy temporary objects at the same time, some do
    immediately after use, some delay until the end of the scope.  The
    delay makes it difficult to test the reference count functionality.

Solution:
    Enclosed the operations on objects and check reference count after
    getting out of the enclosed block.  This only works for the test!
    I'm assuming that checking reference count is just for the library
    to test that functionality; the user will not need to do that. :-/

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
This commit is contained in:
Binh-Minh Ribler 2007-07-08 15:28:59 -05:00
parent 9db2bf9835
commit f6ebd743d8

View File

@ -1061,6 +1061,12 @@ static void test_attr_dtype_shared()
// Create dataspace for dataset
DataSpace dspace;
// Enclose the following so that all temporary objects can be
// destroyed before testing reference count - this is to overcome
// the different time when the temporary objects are to be destroyed
// by different compilers.
{
// Create dataset
DataSet dset = fid1.createDataSet(DSET1_NAME, dtype, dspace);
@ -1126,6 +1132,8 @@ static void test_attr_dtype_shared()
// Unlink the dataset
fid1.unlink(DSET1_NAME);
} // end of enclosing to test reference counts
// Check reference count on named datatype
fid1.getObjinfo(TYPE1_NAME, statbuf);
verify_val((int)statbuf.nlink, 1, "H5File::unlink", __LINE__, __FILE__);