summaryrefslogtreecommitdiffstats
path: root/c++/test/dsets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'c++/test/dsets.cpp')
-rw-r--r--c++/test/dsets.cpp80
1 files changed, 69 insertions, 11 deletions
diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp
index d22cc77..c48cd7e 100644
--- a/c++/test/dsets.cpp
+++ b/c++/test/dsets.cpp
@@ -798,8 +798,29 @@ test_types(H5File& file)
unsigned char buf[32];
hsize_t nelmts = sizeof(buf);
DataType type;
- try { // block 1
+ try { // block of bitfield_1
+ // test copying a predefined type
type.copy (PredType::STD_B8LE);
+
+ // Test copying a user-defined type using DataType::copy
+ DataType copied_type;
+ copied_type.copy(type);
+ // Test copying a user-defined type using DataType::operator=
+ DataType another_copied_type;
+ another_copied_type = type;
+
+ // Test copying a user-defined int type using DataType::operator=
+ IntType orig_int(PredType::STD_B8LE);
+ DataType generic_type;
+ generic_type = orig_int;
+
+ // Test copying an integer predefined type
+ IntType new_int_type(PredType::STD_B8LE);
+
+ // Test copying an int predefined type using DataType::operator=
+ IntType another_int_type;
+ another_int_type = new_int_type;
+
DataSpace space (1, &nelmts);
DataSet* dset = new DataSet(grp.createDataSet("bitfield_1", type, space));
@@ -820,12 +841,15 @@ test_types(H5File& file)
} // end try block of bitfield_1
// catch exceptions thrown in try block of bitfield_1
- catch (Exception E) { goto error; }
+ catch (Exception E) {
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
/* bitfield_2 */
nelmts = sizeof(buf)/2;
try { // bitfield_2 block
-
type.copy (PredType::STD_B16LE);
DataSpace space (1, &nelmts);
DataSet* dset = new DataSet(grp.createDataSet("bitfield_2", type, space));
@@ -839,6 +863,8 @@ test_types(H5File& file)
try { dset->write (buf, type); }
catch(DataSetIException E)
{
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
delete dset;
goto error;
}
@@ -846,7 +872,11 @@ test_types(H5File& file)
} // end try block of bitfield_2
// catch exceptions thrown in try block of bitfield_2
- catch (Exception E) { goto error; }
+ catch (Exception E) {
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
/* opaque_1 */
DataType* optype = new DataType(H5T_OPAQUE, 1);
@@ -873,8 +903,17 @@ test_types(H5File& file)
} // end try block of opaque_1
// catch exceptions thrown in try block of opaque_1
- catch (DataSetIException E) { delete optype; goto error; }
- catch (Exception E) { goto error; }
+ catch (DataSetIException E) {
+ delete optype;
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
+ catch (Exception E) {
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
/* opaque_2 */
try { // block opaque_2
@@ -899,13 +938,27 @@ test_types(H5File& file)
delete dset;
delete optype;
} //end try block of opaque_2
- catch (DataSetIException E) { delete optype; goto error; }
- catch (Exception E) { goto error; }
+ catch (DataSetIException E) {
+ delete optype;
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
+ catch (Exception E) {
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
PASSED();
return 0;
} // end top try block
- catch (Exception E) { goto error; } // Group and DataType exceptions
+
+ catch (Exception E) { // Group and DataType exceptions
+ cout << "Failure in " << E.getFuncName() << " - "
+ << E.getDetailMsg() << endl;
+ goto error;
+ }
error:
return -1;
@@ -966,15 +1019,20 @@ int test_report( int nerrors )
*
*-------------------------------------------------------------------------
*/
+static hid_t tempid = H5T_STD_B8LE;
+// the following statement caused seg. fault, need to check into - BMR
+//static PredType temp = PredType::STD_B8LE;
+// because PredType::STD_B8LE was not defined yet, so ref_counter is nil
+// and it'll fail when the ref_counter is being incremented
+// this can be a problem; must check ref_counter before increment or decrement
+
int
main(void)
{
-
h5_reset(); // in h5test.c, resets the library by closing it
hid_t fapl_id;
fapl_id = h5_fileaccess(); // in h5test.c, returns a file access template
- // should create an object from this id - BMR
#if 0
/* BMR: leave paralell stuff out! */