summaryrefslogtreecommitdiffstats
path: root/test/theap.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/theap.c')
-rw-r--r--test/theap.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/test/theap.c b/test/theap.c
new file mode 100644
index 0000000..41a9cbc
--- /dev/null
+++ b/test/theap.c
@@ -0,0 +1,87 @@
+/*-------------------------------------------------------------------------
+ * Copyright (C) 1997 National Center for Supercomputing Applications.
+ * All rights reserved.
+ *
+ *-------------------------------------------------------------------------
+ *
+ * Created: theap.c
+ * Jul 17 1997
+ * Robb Matzke <robb@maya.nuance.com>
+ *
+ * Purpose:
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "testhdf5.h"
+
+#include "H5ACprivate.h"
+#include "H5Fprivate.h"
+#include "H5Hprivate.h"
+
+#define NOBJS 40
+
+
+/*-------------------------------------------------------------------------
+ * Function: test_heap
+ *
+ * Purpose: Test name and object heaps.
+ *
+ * Return: void
+ *
+ * Programmer: Robb Matzke
+ * robb@maya.nuance.com
+ * Jul 17 1997
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+void
+test_heap (void)
+{
+ int i, j;
+ hatom_t fid;
+ hdf5_file_t *f;
+ off_t heap;
+ char buf[NOBJS+8];
+ const char *s;
+ off_t obj[NOBJS];
+
+ MESSAGE (5, print_func("Testing Heaps\n"););
+
+ /* Create the file */
+ fid = H5Fcreate ("theap.h5", H5ACC_OVERWRITE, 0, 0);
+ CHECK (fid, FAIL, "H5Fcreate");
+ f = H5Aatom_object (fid);
+ CHECK (f, NULL, "H5Aatom_object");
+
+ /* Create a new heap */
+ heap = H5H_new (f, 0);
+ CHECK_I (heap, "H5H_new");
+
+ /* Add stuff to the heap */
+ for (i=0; i<NOBJS; i++) {
+ fprintf (stderr, "%d\n", i);
+ sprintf (buf, "%03d-", i);
+ for (j=4; j<i; j++) buf[j] = '0' + j%10;
+ if (j>4) buf[j] = '\0';
+
+ obj[i] = H5H_insert (f, heap, strlen(buf)+1, buf);
+ CHECK_I (heap, "H5H_insert");
+ }
+
+ /* Flush the cache and invalidate everything */
+ H5AC_flush (f, NULL, 0, TRUE);
+
+ /* Read the objects back out */
+ for (i=0; i<NOBJS; i++) {
+ s = H5H_peek (f, heap, obj[i]);
+ print_func ("object is `%s'\n", s);
+ }
+
+ /* Close the file */
+ H5Fclose (fid);
+}
+