mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-09 07:32:32 +08:00
fd318bcf1f
Description: Added * tests for some generic datatype operations * tests for compound datatype operations These tests are checked in now to make sure they're safe! They can use some more comments and minor cleanups. Will do very soon. Fixed few minor typos. Platforms tested AIX 5.1 (copper) SunOS 5.8 64-bit (sol) HPUX 11.00 (kelgia)
123 lines
3.9 KiB
C++
123 lines
3.9 KiB
C++
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* 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
|
|
|
|
#include "h5test.h"
|
|
|
|
#ifndef H5_NO_NAMESPACE
|
|
using namespace H5;
|
|
#endif
|
|
|
|
#ifndef H5_NO_STD
|
|
using std::cerr;
|
|
using std::endl;
|
|
#endif
|
|
|
|
#define SUBTEST(WHAT) {printf(" Subtest: %-52s",WHAT); fflush(stdout);}
|
|
|
|
int test_report (int, const H5std_string&);
|
|
void issue_fail_msg(const char* where, int line, const char* file_name,
|
|
const char* message="");
|
|
|
|
template <class Type1, class Type2>
|
|
void verify_val(Type1 x, Type2 value, const char* where, int line, const char* file_name)
|
|
{
|
|
if (GetTestVerbosity()>=VERBO_HI)
|
|
{
|
|
cerr << " Call to routine: " << where << " at line " << line
|
|
<< " in " << file_name << " had value " << x << endl;
|
|
}
|
|
if (x != value)
|
|
{
|
|
cerr << "*** UNEXPECTED VALUE from " << where << " should be "
|
|
<< value << ", but is " << x << " at line " << line
|
|
<< " in " << file_name << endl;
|
|
IncTestNumErrs();
|
|
}
|
|
}
|
|
|
|
template <class Type1, class Type2>
|
|
void verify_val(Type1 x, Type2 value, const char* msg, const char* file_name, int line)
|
|
{
|
|
if (x != value)
|
|
{
|
|
cerr << "*** UNEXPECTED VALUE: " << file_name << ":line " << line
|
|
<< ":" << msg << " different: " << x << ", should be " << value
|
|
<< endl;
|
|
IncTestNumErrs();
|
|
}
|
|
}
|
|
|
|
template <class Type1, class Type2>
|
|
void verify_val_noteq(Type1 x, Type2 value, const char* where, int line, const char* file_name)
|
|
{
|
|
if (GetTestVerbosity()>=VERBO_HI)
|
|
{
|
|
cerr << " Call to routine: " << where << " at line " << line
|
|
<< " in " << file_name << " had value " << x << endl;
|
|
}
|
|
if (x == value)
|
|
{
|
|
cerr << "*** UNEXPECTED VALUE from " << where << " should not be "
|
|
<< value << " at line " << line << " in " << file_name << endl;
|
|
IncTestNumErrs();
|
|
}
|
|
}
|
|
|
|
class InvalidActionException : public Exception {
|
|
public:
|
|
InvalidActionException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
|
|
InvalidActionException();
|
|
virtual ~InvalidActionException();
|
|
};
|
|
|
|
/* Prototypes for the test routines */
|
|
void test_attr(void);
|
|
void test_compound(void);
|
|
void test_file(void);
|
|
void test_h5s(void);
|
|
void test_reference(void);
|
|
void test_types(void);
|
|
void test_vlstrings(void);
|
|
|
|
/* Prototypes for the cleanup routines */
|
|
void cleanup_attr(void);
|
|
void cleanup_compound(void);
|
|
void cleanup_file(void);
|
|
void cleanup_h5s(void);
|
|
void cleanup_reference(void);
|
|
void cleanup_types(void);
|
|
void cleanup_vlstrings(void);
|
|
/* not yet
|
|
void cleanup_select(void);
|
|
void cleanup_time(void);
|
|
void cleanup_vltypes(void);
|
|
void cleanup_iterate(void);
|
|
void cleanup_array(void);
|
|
void cleanup_genprop(void);
|
|
void cleanup_misc(void);
|
|
*/
|
|
|
|
#endif
|