mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-12 15:04:59 +08:00
[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)
This commit is contained in:
parent
47f9421dd5
commit
01f726e305
@ -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@
|
||||
|
@ -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")));
|
||||
}
|
||||
|
73
c++/test/h5cpputil.cpp
Normal file
73
c++/test/h5cpputil.cpp
Normal file
@ -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;
|
||||
}
|
||||
}
|
32
c++/test/h5cpputil.h
Normal file
32
c++/test/h5cpputil.h
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user