diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2000-10-19 16:42:33 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2000-10-19 16:42:33 (GMT) |
commit | 95445613ca4282b2e62fb98b832e755f79d3a968 (patch) | |
tree | eee37d5f144c7f9b0a23fecbf38fbe63b640f507 /test/ttime.c | |
parent | e5c61707549a9d193075db17f01557743b8a8407 (diff) | |
download | hdf5-95445613ca4282b2e62fb98b832e755f79d3a968.zip hdf5-95445613ca4282b2e62fb98b832e755f79d3a968.tar.gz hdf5-95445613ca4282b2e62fb98b832e755f79d3a968.tar.bz2 |
[svn-r2699] Purpose:
Bug fix
Description:
"Time" datatypes (H5T_UNIX_D*) were not being stored and retrieved in
the datatype object header message correctly.
Solution:
Store endian-ness and precision in the datatype object header message and
added test to continue to track them working correctly.
This fixes bug #512.
Platforms tested:
FreeBSD 4.1.1 (hawkwind)
Diffstat (limited to 'test/ttime.c')
-rw-r--r-- | test/ttime.c | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/test/ttime.c b/test/ttime.c new file mode 100644 index 0000000..2ff5426 --- /dev/null +++ b/test/ttime.c @@ -0,0 +1,155 @@ +/**************************************************************************** + * 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. * + * * + ****************************************************************************/ + +#ifdef RCSID +static char RcsId[] = "$Revision$"; +#endif + +/* $Id$ */ + +/*********************************************************** +* +* Test program: ttime +* +* Test the Time Datatype functionality +* +*************************************************************/ + +#include <testhdf5.h> + +#include <hdf5.h> + +#define FILE "ttime.h5" + +/**************************************************************** +** +** test_time(): Main time datatype testing routine. +** +****************************************************************/ +void +test_time(void) +{ + hid_t file_id, tid; /* identifiers */ + herr_t status; + + /* Output message about test being performed */ + MESSAGE(5, ("Testing Time Datatypes\n")); + + /* Create a new file using default properties. */ + file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + CHECK(file_id, FAIL, "H5Fcreate"); + + tid = H5Tcopy (H5T_UNIX_D32LE); + CHECK(tid, FAIL, "H5Tcopy"); + status = H5Tcommit(file_id, "Committed D32LE type", tid); + CHECK(status, FAIL, "H5Tcommit"); + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + tid = H5Tcopy (H5T_UNIX_D32BE); + CHECK(tid, FAIL, "H5Tcopy"); + status = H5Tcommit(file_id, "Committed D32BE type", tid); + CHECK(status, FAIL, "H5Tcommit"); + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + tid = H5Tcopy (H5T_UNIX_D64LE); + CHECK(tid, FAIL, "H5Tcopy"); + status = H5Tcommit(file_id, "Committed D64LE type", tid); + CHECK(status, FAIL, "H5Tcommit"); + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + tid = H5Tcopy (H5T_UNIX_D64BE); + CHECK(tid, FAIL, "H5Tcopy"); + status = H5Tcommit(file_id, "Committed D64BE type", tid); + CHECK(status, FAIL, "H5Tcommit"); + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + /* Close the file. */ + status = H5Fclose(file_id); + CHECK(status, FAIL, "H5Fclose"); + + file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT); + CHECK(file_id, FAIL, "H5Fopen"); + + tid = H5Topen(file_id, "Committed D32LE type"); + CHECK(tid, FAIL, "H5Topen"); + + if(!H5Tequal(tid, H5T_UNIX_D32LE)) { + num_errs++; + MESSAGE(0, ("H5T_UNIX_D32LE datatype not found")); + } /* end if */ + + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + tid = H5Topen(file_id, "Committed D32BE type"); + CHECK(tid, FAIL, "H5Topen"); + + if(!H5Tequal(tid, H5T_UNIX_D32BE)) { + num_errs++; + MESSAGE(0, ("H5T_UNIX_D32BE datatype not found")); + } /* end if */ + + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + tid = H5Topen(file_id, "Committed D64LE type"); + CHECK(tid, FAIL, "H5Topen"); + + if(!H5Tequal(tid, H5T_UNIX_D64LE)) { + num_errs++; + MESSAGE(0, ("H5T_UNIX_D64LE datatype not found")); + } /* end if */ + + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + tid = H5Topen(file_id, "Committed D64BE type"); + CHECK(tid, FAIL, "H5Topen"); + + if(!H5Tequal(tid, H5T_UNIX_D64BE)) { + num_errs++; + MESSAGE(0, ("H5T_UNIX_D64BE datatype not found")); + } /* end if */ + + status = H5Tclose (tid); + CHECK(status, FAIL, "H5Tclose"); + + status = H5Fclose(file_id); + CHECK(status, FAIL, "H5Fclose"); + +} /* test_reference() */ + + +/*------------------------------------------------------------------------- + * Function: cleanup_time + * + * Purpose: Cleanup temporary test files + * + * Return: none + * + * Programmer: Quincey Koziol + * October 19, 2000 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +void +cleanup_time(void) +{ + remove(FILE); +} + |