1997-07-31 05:17:56 +08:00
/****************************************************************************
* NCSA HDF *
* Software Development Group *
* National Center for Supercomputing Applications *
* University of Illinois at Urbana - Champaign *
* 605 E . Springfield , Champaign IL 61820 *
* *
* For conditions of distribution and use , see the accompanying *
* hdf / COPYING file . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* $Id$ */
/*
* This header file contains information required for testing the HDF5 library .
*/
# ifndef HDF5TEST_H
# define HDF5TEST_H
1997-08-16 00:53:11 +08:00
/*
* Include required headers . This file tests internal library functions ,
* so we include the private headers here .
*/
# include <H5private.h>
1997-12-17 05:08:59 +08:00
# include <H5Eprivate.h>
1997-07-31 05:17:56 +08:00
1997-08-16 00:53:11 +08:00
extern int num_errs ;
extern int Verbosity ;
1997-07-31 05:17:56 +08:00
/* Use %ld to print the value because long should cover most cases. */
/* Used to make certain a return value _is_not_ a value */
# define CHECK(ret, val, where) \
do { if ( Verbosity > 9 ) print_func ( " Call to routine: %15s at line %4d in %s returned %ld \n " , where , ( int ) __LINE__ , __FILE__ , ( long ) ret ) ; \
1997-12-17 05:08:59 +08:00
if ( ret = = val ) { print_func ( " *** UNEXPECTED RETURN from %s is %ld at line %4d in %s \n " , where , ( long ) ret , ( int ) __LINE__ , __FILE__ ) ; num_errs + + ; H5Eprint ( H5E_thrdid_g , stdout ) ; } \
1997-07-31 05:17:56 +08:00
} while ( 0 )
# define CHECK_I(ret,where) { \
if ( Verbosity > 9 ) { \
print_func ( " Call to routine: %15s at line %4d in %s returned %ld \n " , \
( where ) , ( int ) __LINE__ , __FILE__ , ( long ) ( ret ) ) ; \
1997-08-10 00:47:25 +08:00
} \
if ( ( ret ) < 0 ) { \
print_func ( " *** UNEXPECTED RETURN from %s is %ld line %4d in %s \n " , \
( where ) , ( long ) ( ret ) , ( int ) __LINE__ , __FILE__ ) ; \
1997-12-17 05:08:59 +08:00
H5Eprint ( H5E_thrdid_g , stdout ) ; \
1997-08-10 00:47:25 +08:00
num_errs + + ; \
1997-07-31 05:17:56 +08:00
} \
}
# define CHECK_PTR(ret,where) { \
if ( Verbosity > 9 ) { \
print_func ( " Call to routine: %15s at line %4d in %s returned %p \n " , \
1997-08-10 00:47:25 +08:00
( where ) , ( int ) __LINE__ , __FILE__ , ( ret ) ) ; \
} \
if ( ! ( ret ) ) { \
print_func ( " *** UNEXPECTED RETURN from %s is NULL line %4d in %s \n " , \
( where ) , ( int ) __LINE__ , __FILE__ ) ; \
1997-12-17 05:08:59 +08:00
H5Eprint ( H5E_thrdid_g , stdout ) ; \
1997-08-10 00:47:25 +08:00
num_errs + + ; \
1997-07-31 05:17:56 +08:00
} \
}
/* Used to make certain a return value _is_ a value */
# define VERIFY(x, val, where) \
do { if ( Verbosity > 9 ) print_func ( " Call to routine: %15s at line %4d in %s had value %ld \n " , where , ( int ) __LINE__ , __FILE__ , ( long ) x ) ; \
1997-12-17 05:08:59 +08:00
if ( x ! = val ) { print_func ( " *** UNEXPECTED VALUE from %s is %ld at line %4d in %s \n " , where , ( long ) x , ( int ) __LINE__ , __FILE__ ) ; H5Eprint ( H5E_thrdid_g , stdout ) ; num_errs + + ; } \
1997-07-31 05:17:56 +08:00
} while ( 0 )
/* Used to document process through a test and to check for errors */
# define RESULT(ret,func) \
do { \
if ( Verbosity > 8 ) print_func ( " Call to routine: %15s at line %4d in %s returned %ld \n " , func , ( int ) __LINE__ , __FILE__ , ( long ) ret ) ; \
if ( Verbosity > 9 ) HEprint ( stdout , 0 ) ; \
1997-12-17 05:08:59 +08:00
if ( ret = = FAIL ) { print_func ( " *** UNEXPECTED RETURN from %s is %ld at line %4d in %s \n " , func , ( long ) ret , ( int ) __LINE__ , __FILE__ ) ; H5Eprint ( H5E_thrdid_g , stdout ) ; num_errs + + ; } \
1997-07-31 05:17:56 +08:00
} while ( 0 )
/* Used to document process through a test */
1997-08-30 00:59:28 +08:00
# define MESSAGE(V,A) {if (Verbosity>(V)) print_func A;}
1997-07-31 05:17:56 +08:00
/* definitions for command strings */
# define VERBOSITY_STR "Verbosity"
# define SKIP_STR "Skip"
# define TEST_STR "Test"
# define CLEAN_STR "Cleanup"
/* System command to use for Cleanup */
# ifdef VMS
# define CLEAN_CMD "delete *.hdf;*"
# else
# ifdef WIN32
# define CLEAN_CMD "del *.hdf"
# else
/* default is Unix */
# define CLEAN_CMD "rm -f *.hdf"
# endif /* WIN32 */
# endif /*VMS */
/* Prototypes for the support routines */
int print_func ( const char * , . . . ) ;
/* Prototypes for the test routines */
void test_metadata ( void ) ;
void test_file ( void ) ;
void test_heap ( void ) ;
1997-08-08 03:23:41 +08:00
void test_ohdr ( void ) ;
1997-08-10 00:47:25 +08:00
void test_stab ( void ) ;
1997-08-30 07:19:22 +08:00
void test_h5t ( void ) ;
1997-09-04 21:03:31 +08:00
void test_h5p ( void ) ;
1997-09-12 23:33:07 +08:00
void test_h5d ( void ) ;
1997-07-31 05:17:56 +08:00
# endif /* HDF5TEST_H */