summaryrefslogtreecommitdiffstats
path: root/c++
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2003-06-09 17:42:02 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2003-06-09 17:42:02 (GMT)
commit01f726e30521c16f8252c0668f796a9c8aac7a62 (patch)
treed1f1c9bf1fc548dfd21be5c15edbd81580314b1a /c++
parent47f9421dd546b7bc1e1616d3beb6e288ac0e637c (diff)
downloadhdf5-01f726e30521c16f8252c0668f796a9c8aac7a62.zip
hdf5-01f726e30521c16f8252c0668f796a9c8aac7a62.tar.gz
hdf5-01f726e30521c16f8252c0668f796a9c8aac7a62.tar.bz2
[svn-r6997]
Purpose: Code cleanup Description: Moved a utility function out so other tests can use the same function and avoid code duplication. Future utility functions can also benefit from this move. Platforms tested: SunOS 5.7 (arabica) Linux 2.4 (eirene) IRIX 6.5.11 (modi4) HPUX 11.00 (kelgia)
Diffstat (limited to 'c++')
-rw-r--r--c++/test/Makefile.in6
-rw-r--r--c++/test/dsets.cpp62
-rw-r--r--c++/test/h5cpputil.cpp73
-rw-r--r--c++/test/h5cpputil.h32
4 files changed, 116 insertions, 57 deletions
diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in
index edeb20c..9af1c96 100644
--- a/c++/test/Makefile.in
+++ b/c++/test/Makefile.in
@@ -37,7 +37,7 @@ LT_LINK_LIB=$(LT) --mode=link $(CXX) -rpath $(libdir)
## executed, generally most specific tests to least specific tests.
RUNTEST=$(LT_RUN)
-TEST_SRC=dsets.cpp testhdf5.cpp tfile.cpp th5s.cpp
+TEST_SRC=dsets.cpp testhdf5.cpp tfile.cpp th5s.cpp h5cpputil.cpp
TEST_OBJ=$(TEST_SRC:.cpp=.lo)
TEST_PROGS=dsets testhdf5
@@ -52,7 +52,7 @@ $(TEST_PROGS): $(LIB) $(LIBHDF5)
testhdf5: $(TEST_OBJ)
@$(LT_LINK_EXE) $(CFLAGS) -o $@ $(TESTHDF5_OBJ) $(LIB) $(LIBHDF5) $(LDFLAGS) $(LIBS) $(DEFAULT_LIBS)
-dsets: dsets.lo
- @$(LT_LINK_EXE) $(CFLAGS) -o $@ dsets.lo $(hdf5_builddir)/../test/h5test.lo $(LIB) $(LIBHDF5) $(LDFLAGS) $(LIBS) $(DEFAULT_LIBS)
+dsets: dsets.lo h5cpputil.lo
+ @$(LT_LINK_EXE) $(CFLAGS) -o $@ dsets.lo h5cpputil.lo $(hdf5_builddir)/../test/h5test.lo $(LIB) $(LIBHDF5) $(LDFLAGS) $(LIBS) $(DEFAULT_LIBS)
@CONCLUDE@
diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp
index 4ccbac2..450bd1c 100644
--- a/c++/test/dsets.cpp
+++ b/c++/test/dsets.cpp
@@ -40,6 +40,8 @@
using namespace H5;
#endif
+#include "h5cpputil.h"
+
const char *FILENAME[] = {
"dataset",
NULL
@@ -257,7 +259,6 @@ test_simple_io( H5File& file)
/* Create a small conversion buffer to test strip mining */
DSetMemXferPropList xfer;
- //if (H5Pset_buffer (xfer, 1000, tconv_buf, NULL)<0) goto error;
xfer.setBuffer (1000, tconv_buf, NULL);
/* Create the dataset */
@@ -516,7 +517,6 @@ test_compression(H5File& file)
}
}
- //if (H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, xfer, points)<0) goto error;
dataset->write ((void*) points, PredType::NATIVE_INT, DataSpace::ALL, DataSpace::ALL, xfer);
PASSED();
@@ -581,7 +581,6 @@ test_compression(H5File& file)
delete dataset;
- //if ((dataset = H5Dopen (file, DSET_COMPRESS_NAME))<0) goto error;
dataset = new DataSet (file.openDataSet (DSET_COMPRESS_NAME));
dataset->read ((void*)check, PredType::NATIVE_INT, DataSpace::ALL, DataSpace::ALL, xfer);
@@ -649,7 +648,6 @@ test_compression(H5File& file)
*/
TESTING("compression (app-defined method)");
- // BMR: not sure how to handle this yet
#ifdef H5_WANT_H5_V1_4_COMPAT
if (H5Zregister (H5Z_FILTER_BOGUS, "bogus", bogus)<0) goto error;
#else /* H5_WANT_H5_V1_4_COMPAT */
@@ -669,7 +667,8 @@ test_compression(H5File& file)
for (j = 0; j < size[1]; j++)
{
int status = check_values (i, j, points[i][j], check[i][j]);
- if (status == -1) goto error;
+ if (status == -1)
+ goto error;
}
PASSED();
@@ -733,11 +732,7 @@ test_multiopen (H5File& file)
// Create first dataset
DataSet dset1 = file.createDataSet ("multiopen", PredType::NATIVE_INT, *space, dcpl);
- //BMR: Quincey said Rob gave a tweak to have dataset being the first
- // argument in this call but actually shouldn't be valid, so just
- // ignore the argument dset1. Just open the first dataset again
- // from the file to another DataSet object.
- // if ((dset2=H5Dopen (dset1, "."))<0) goto error;
+ // Open again the first dataset from the file to another DataSet object.
DataSet dset2 = file.openDataSet ("multiopen");
// Relieve the dataspace
@@ -748,11 +743,9 @@ test_multiopen (H5File& file)
dset1.extend (cur_size);
/* Get the size from the second handle */
- //if ((space = H5Dget_space (dset2))<0) goto error;
space = new DataSpace (dset2.getSpace());
hsize_t tmp_size[1];
- //if (H5Sget_simple_extent_dims (space, tmp_size, NULL)<0) goto error;
space->getSimpleExtentDims (tmp_size);
if (cur_size[0]!=tmp_size[0])
{
@@ -780,7 +773,7 @@ test_multiopen (H5File& file)
/*-------------------------------------------------------------------------
* Function: test_types
*
- * Purpose: Make some datasets with various types so we can test h5ls.
+ * Purpose: Test various types - should be moved to dtypes.cpp
*
* Return: Success: 0
*
@@ -973,45 +966,6 @@ test_types(H5File& file)
error:
return -1;
}
-
-
-/*-------------------------------------------------------------------------
- * Function: test_report
- *
- * Purpose: Prints out the number of errors for dataset tests if there
- * were any failures occurred. If no failure, test_report
- * prints out the "All dataset tests passed" message
- *
- * Return: if any failure has occurred: 1
- *
- * if no failure occurs: 0
- *
- * Programmer: Binh-Minh Ribler (using C code segment for reporting tests)
- * Friday, February 6, 2001
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-int test_report( int nerrors )
-{
- if (nerrors)
- {
- nerrors = MAX(1, nerrors);
- if (1 == nerrors)
- cout << "***** " << nerrors << " DATASET TEST"
- << " FAILED! *****" << endl;
- else
- cout << "***** " << nerrors << " DATASET TESTS"
- << " FAILED! *****" << endl;
- return 1;
- }
- else
- {
- cout << "All dataset tests passed." << endl;
- return 0;
- }
-}
/*-------------------------------------------------------------------------
* Function: main
@@ -1076,11 +1030,11 @@ main(void)
}
catch (Exception E)
{
- return( test_report( nerrors ));
+ return(test_report(nerrors, string(" DATASET TESTS")));
}
/* use C test utility routine to clean up data files */
h5_cleanup(FILENAME, fapl_id);
/* print out dsets test results */
- return( test_report( nerrors ));
+ return(test_report(nerrors, string(" DATASET TESTS")));
}
diff --git a/c++/test/h5cpputil.cpp b/c++/test/h5cpputil.cpp
new file mode 100644
index 0000000..df42fd8
--- /dev/null
+++ b/c++/test/h5cpputil.cpp
@@ -0,0 +1,73 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*****************************************************************************
+ FILE
+ util.cpp - Utility routines for HDF5 C++ tests.
+
+ EXTERNAL ROUTINES/VARIABLES:
+
+ ***************************************************************************/
+
+#ifdef OLD_HEADER_FILENAME
+#include <iostream.h>
+#else
+#include <iostream>
+#endif
+#include <string>
+
+#ifndef H5_NO_STD
+using namespace std;
+#endif
+
+#include "h5cpputil.h"
+#include "h5test.h"
+
+/*-------------------------------------------------------------------------
+ * Function: test_report
+ *
+ * Purpose: Prints out the number of errors for dataset tests if there
+ * were any failures occurred. If no failure, test_report
+ * prints out the "All dataset tests passed" message
+ *
+ * Return: if any failure has occurred: 1
+ *
+ * if no failure occurs: 0
+ *
+ * Programmer: Binh-Minh Ribler (using C code segment for reporting tests)
+ * Friday, February 6, 2001
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+int test_report( int nerrors, const string& testname )
+{
+ if (nerrors)
+ {
+ nerrors = MAX(1, nerrors);
+ if (1 == nerrors)
+ cout << "***** " << nerrors << testname
+ << " FAILED! *****" << endl;
+ else
+ cout << "***** " << nerrors << testname
+ << " FAILED! *****" << endl;
+ return 1;
+ }
+ else
+ {
+ cout << "All dataset tests passed." << endl;
+ return 0;
+ }
+}
diff --git a/c++/test/h5cpputil.h b/c++/test/h5cpputil.h
new file mode 100644
index 0000000..b3d7a1b
--- /dev/null
+++ b/c++/test/h5cpputil.h
@@ -0,0 +1,32 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*****************************************************************************
+ FILE
+ h5cpputil.h - Header file of the utilities/misc for HDF5 C++ tests.
+
+ EXTERNAL ROUTINES/VARIABLES:
+
+ ***************************************************************************/
+
+#ifndef _h5cpputil_h
+#define _h5cpputil_h
+
+#ifndef H5_NO_STD
+int test_report (int, const std::string&);
+#else
+int test_report (int, const string&);
+#endif
+
+#endif