diff options
author | Robb Matzke <matzke@llnl.gov> | 1997-12-10 22:41:56 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1997-12-10 22:41:56 (GMT) |
commit | d49ed7bedfdb13c3a5d58cae8def4d5dc1eb8bbf (patch) | |
tree | ee8d51ce5060470863fcb74e92f262271ba5cd77 /test/dtypes.c | |
parent | 082dd8cda9ef3d49be23dfce49e10dd30d0758bc (diff) | |
download | hdf5-d49ed7bedfdb13c3a5d58cae8def4d5dc1eb8bbf.zip hdf5-d49ed7bedfdb13c3a5d58cae8def4d5dc1eb8bbf.tar.gz hdf5-d49ed7bedfdb13c3a5d58cae8def4d5dc1eb8bbf.tar.bz2 |
[svn-r140] ./test/Makefile.in
Added new tests.
./test/dsets.c NEW
Tests datasets.
./test/dspace.c NEW
Tests data spaces.
./test/dtypes.c NEW
Tests data types.
./test/istore.c
./test/tfile.c
./test/th5p.c
./test/theap.c
./test/tohdr.c
Changed to work with new function names.
./test/testhdf5.c
Removed the data type and dataset tests since they're now in
their own files. They had to be rewritten because of extensive
changes to those interfaces.
Diffstat (limited to 'test/dtypes.c')
-rw-r--r-- | test/dtypes.c | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/test/dtypes.c b/test/dtypes.c new file mode 100644 index 0000000..b4e865f --- /dev/null +++ b/test/dtypes.c @@ -0,0 +1,174 @@ +/* + * Copyright (C) 1997 NCSA + * All rights reserved. + * + * Programmer: Robb Matzke <matzke@llnl.gov> + * Tuesday, December 9, 1997 + * + * Purpose: Tests the data type interface (H5T) + */ +#include <hdf5.h> +#include <stdio.h> +#include <unistd.h> + + +#define AT() printf (" at %s:%d in %s()...\n", \ + __FILE__, __LINE__, __FUNCTION__); + + + +/*------------------------------------------------------------------------- + * Function: test_classes + * + * Purpose: Test type classes + * + * Return: Success: SUCCEED + * + * Failure: FAIL + * + * Programmer: Robb Matzke + * Tuesday, December 9, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static herr_t +test_classes (void) +{ + H5T_class_t type_class; + + printf ("%-70s", "Testing H5Tget_class()"); + + if (H5T_FIXED!=(type_class=H5Tget_class (H5T_NATIVE_INT))) { + puts ("*FAILED*"); + if (!isatty (1)) { + AT (); + printf (" Invalid type class for H5T_NATIVE_INT\n"); + } + goto error; + } + + if (H5T_FLOAT!=(type_class=H5Tget_class (H5T_NATIVE_DOUBLE))) { + puts ("*FAILED*"); + if (!isatty (1)) { + AT (); + printf (" Invalid type class for H5T_NATIVE_DOUBLE\n"); + } + goto error; + } + + + + puts (" PASSED"); + return SUCCEED; + + error: + return FAIL; +} + + + +/*------------------------------------------------------------------------- + * Function: test_copy + * + * Purpose: Are we able to copy a data type? + * + * Return: Success: SUCCEED + * + * Failure: FAIL + * + * Programmer: Robb Matzke + * Tuesday, December 9, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static herr_t +test_copy (void) +{ + hid_t a_copy; + + printf ("%-70s", "Testing H5Tcopy()"); + + if ((a_copy=H5Tcopy (H5T_NATIVE_SHORT))<0) { + puts ("*FAILED*"); + if (!isatty (1)) { + AT (); + printf (" Cannot copy a builtin type.\n"); + } + goto error; + } + + if (H5Tclose (a_copy)<0) { + puts ("*FAILED*"); + if (!isatty (1)) { + AT (); + printf (" Cannot close the copied type.\n"); + } + goto error; + } + + if (H5Tclose (H5T_NATIVE_CHAR)>=0) { + puts ("*FAILED*"); + if (!isatty (1)) { + AT (); + printf (" Was able to free a built-in type.\n"); + } + goto error; + } + + puts (" PASSED"); + return SUCCEED; + + error: + return FAIL; +} + + +/*------------------------------------------------------------------------- + * Function: main + * + * Purpose: Test the data type interface. + * + * Return: Success: + * + * Failure: + * + * Programmer: Robb Matzke + * Tuesday, December 9, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +int +main (void) +{ + herr_t status; + intn nerrors = 0; + + H5init (); + + status = test_classes (); + nerrors += status<0 ? 1 : 0; + + status = test_copy (); + nerrors += status<0 ? 1 : 0; + + + if (nerrors) { + printf ("***** %d DATA TYPE TEST%s FAILED! *****\n", + nerrors, 1==nerrors?"":"S"); + if (isatty (1)) { + printf ("(Redirect output to a pager or a file to see debug " + "output)\n"); + } + exit (1); + } + + printf ("All data type tests passed.\n"); + exit (0); +} + |