summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-09 17:49:23 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-09 17:49:23 (GMT)
commit1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab (patch)
treebb88c2ea66aebd882d50d7cc2ce258d5e3c51c44 /test
parent159fa7a232e1961940b83f035f4c27338d26337e (diff)
downloadhdf5-1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab.zip
hdf5-1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab.tar.gz
hdf5-1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab.tar.bz2
[svn-r152] Changes since 19980107
---------------------- ./html/Datatypes.html Updated to match code. ./src/H5Odtype.c ./src/H5Oprivate.h ./src/H5Tpkg.h ./src/H5detect.c Changed H5T_FIXED to H5T_INTEGER. ./src/H5T.c ./src/H5Tprivate.h ./src/H5Tpublic.h ./test/dtypes.c Implemented lots of type properties. ./src/H5detect.c ./src/H5Tpublic.h It is no longer necessary to call H5init() before using a predefined data type.
Diffstat (limited to 'test')
-rw-r--r--test/dtypes.c87
1 files changed, 86 insertions, 1 deletions
diff --git a/test/dtypes.c b/test/dtypes.c
index 6ff118f..bd180e0 100644
--- a/test/dtypes.c
+++ b/test/dtypes.c
@@ -11,6 +11,8 @@
#include <stdio.h>
#include <unistd.h>
+#include <H5Tprivate.h>
+
#ifndef HAVE_FUNCTION
#define __FUNCTION__ ""
@@ -18,6 +20,10 @@
#define AT() printf (" at %s:%d in %s()...\n", \
__FILE__, __LINE__, __FUNCTION__);
+typedef struct complex_t {
+ double re;
+ double im;
+} complex_t;
/*-------------------------------------------------------------------------
@@ -43,7 +49,7 @@ test_classes (void)
printf ("%-70s", "Testing H5Tget_class()");
- if (H5T_FIXED!=(type_class=H5Tget_class (H5T_NATIVE_INT))) {
+ if (H5T_INTEGER!=(type_class=H5Tget_class (H5T_NATIVE_INT))) {
puts ("*FAILED*");
if (!isatty (1)) {
AT ();
@@ -131,6 +137,82 @@ test_copy (void)
/*-------------------------------------------------------------------------
+ * Function: test_compound
+ *
+ * Purpose: Tests various things about compound data types.
+ *
+ * Return: Success: SUCCEED
+ *
+ * Failure: FAIL
+ *
+ * Programmer: Robb Matzke
+ * Wednesday, January 7, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+test_compound (void)
+{
+ complex_t tmp;
+ hid_t complex_id;
+ herr_t status;
+
+ printf ("%-70s", "Testing compound data types");
+
+ /* Create the empty type */
+ complex_id = H5Tcreate (H5T_COMPOUND, sizeof tmp);
+ if (complex_id<0) {
+ puts ("*FAILED*");
+ if (!isatty (1)) {
+ AT ();
+ printf (" Cannot create empty compound data type.\n");
+ }
+ goto error;
+ }
+
+ /* Add a coupld fields */
+ status = H5Tinsert (complex_id, "real", HOFFSET (tmp, re),
+ H5T_NATIVE_DOUBLE);
+ if (status<0) {
+ puts ("*FAILED*");
+ if (!isatty (1)) {
+ AT ();
+ printf (" Cannot insert real component.\n");
+ }
+ goto error;
+ }
+
+ status = H5Tinsert (complex_id, "imaginary", HOFFSET (tmp, im),
+ H5T_NATIVE_DOUBLE);
+ if (status<0) {
+ puts ("*FAILED*");
+ if (!isatty (1)) {
+ AT ();
+ printf (" Cannot insert imaginary component.\n");
+ }
+ goto error;
+ }
+
+ puts (" PASSED");
+
+ /* Just for debugging... */
+ H5T_debug (H5Aatom_object (complex_id), stdout);
+ printf ("\n");
+
+
+ return SUCCEED;
+
+ error:
+ return FAIL;
+}
+
+
+
+
+
+/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: Test the data type interface.
@@ -159,6 +241,9 @@ main (void)
status = test_copy ();
nerrors += status<0 ? 1 : 0;
+
+ status = test_compound ();
+ nerrors += status<0 ? 1 : 0;
if (nerrors) {