From 01f726e30521c16f8252c0668f796a9c8aac7a62 Mon Sep 17 00:00:00 2001 From: Binh-Minh Ribler Date: Mon, 9 Jun 2003 12:42:02 -0500 Subject: [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) --- c++/test/Makefile.in | 6 ++--- c++/test/dsets.cpp | 62 ++++++------------------------------------ c++/test/h5cpputil.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ c++/test/h5cpputil.h | 32 ++++++++++++++++++++++ 4 files changed, 116 insertions(+), 57 deletions(-) create mode 100644 c++/test/h5cpputil.cpp create mode 100644 c++/test/h5cpputil.h 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 +#else +#include +#endif +#include + +#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 -- cgit v0.12