hdf5/test/theap.c
Robb Matzke 78c1574378 [svn-r333] Changes since 19980324
----------------------

./MANIFEST
./src/H5HG.c		[new]
./src/H5HGprivate.h	[new]
./src/H5HGpublic.h	[new]
./src/Makefile.in
	Added global heaps, H5HG.  This compiles but is untested.

./src/H5D.c
./src/H5G.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5HL.c		[renamed from H5H.c]
./src/H5HLprivate.h	[renamed from H5Hprivate.h]
./src/H5HLpublic.h	[renamed from H5Hpublic.h]
./src/H5Oefl.c
./src/Makefile.in
./src/hdf5.h
./test/theap.c
	Renamed local heaps from H5H to H5HL.

./src/H5AC.c
./src/H5ACprivate.h
./src/debug.c
	Added debugging support for global heap collections.

./html/H5.format.html
	Ripped out the old small object heap documentation and added
	documentation for the new global heap.

./html/H5.api.html
./src/H5P.c
./src/H5Ppublic.h
./src/H5F.c
./src/H5Fprivate.h
./src/H5private.h
	The H5Pget_version() function no longer returns a small object
	heap version number.  Instead, each collection of the global
	heap has its own version number instead of a single number in
	the file boot block.

./bin/release
	Omit files marked for removal by CVS even though the removal
	hasn't been committed yet.

./test/iopipe.c
	Removed warnings about casting unsigned int to double on Irix64.

./MANIFEST
	Removed ./test/testpar/phdf5sup.c
1998-03-30 14:24:08 -05:00

91 lines
2.3 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*-------------------------------------------------------------------------
* 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 <H5private.h>
#include <H5Iprivate.h>
#include <H5ACprivate.h>
#include <H5Pprivate.h>
#include <H5Fprivate.h>
#include <H5HLprivate.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;
hid_t fid;
H5F_t *f;
haddr_t heap_addr;
char buf[NOBJS + 8];
const char *s;
size_t obj[NOBJS];
herr_t status;
MESSAGE(5, ("Testing Heaps\n"));
/* Create the file */
fid = H5Fcreate("theap.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
CHECK(fid, FAIL, "H5Fcreate");
f = H5I_object(fid);
CHECK(f, NULL, "H5I_object");
/* Create a new heap */
status = H5HL_create(f, 0, &heap_addr /*out */ );
CHECK_I(status, "H5HL_create");
/* Add stuff to the heap */
for (i = 0; i < NOBJS; i++) {
sprintf(buf, "%03d-", i);
for (j = 4; j < i; j++)
buf[j] = '0' + j % 10;
if (j > 4)
buf[j] = '\0';
obj[i] = H5HL_insert(f, &heap_addr, strlen(buf) + 1, buf);
assert ((size_t)(-1)!=obj[i]);
}
/* Flush the cache and invalidate everything */
H5AC_flush(f, NULL, 0, TRUE);
/* Read the objects back out */
for (i = 0; i < NOBJS; i++) {
s = H5HL_peek(f, &heap_addr, obj[i]);
MESSAGE(8, ("object is `%s'\n", s));
}
/* Close the file */
H5Fclose(fid);
}