summaryrefslogtreecommitdiffstats
path: root/test/sheap.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/sheap.c')
-rw-r--r--test/sheap.c275
1 files changed, 0 insertions, 275 deletions
diff --git a/test/sheap.c b/test/sheap.c
deleted file mode 100644
index 9b3362c..0000000
--- a/test/sheap.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * This file is part of HDF5. The full HDF5 copyright notice, including *
- * terms governing use, modification, and redistribution, is contained in *
- * the files COPYING and Copyright.html. COPYING can be found at the root *
- * of the source code distribution tree; Copyright.html can be found at the *
- * root level of an installed copy of the electronic HDF5 document set and *
- * is linked from the top-level documents page. It can also be found at *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* Programmer: Quincey Koziol <koziol@ncsa.uiuc.edu>
- * Wednesday, March 23, 2005
- */
-#include "h5test.h"
-
-/*
- * This file needs to access private datatypes from the H5SH package.
- * This file also needs to access the segmented heap testing code.
- */
-#define H5SH_PACKAGE
-#define H5SH_TESTING
-#include "H5SHpkg.h"
-
-/* Other private headers that this test requires */
-#include "H5Iprivate.h"
-
-const char *FILENAME[] = {
- "sheap",
- NULL
-};
-
-#define SHEAP_TYPE H5SH_META
-#define SHEAP_MIN_SIZE 4096
-#define SHEAP_MAX_EXPAND_SIZE 65536
-
-
-/*-------------------------------------------------------------------------
- * Function: test_create
- *
- * Purpose: Basic tests for the segmented heap code
- *
- * Return: Success: 0
- *
- * Failure: 1
- *
- * Programmer: Quincey Koziol
- * Wednesday, March 23, 2005
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static int
-test_create(hid_t fapl)
-{
- hid_t file=-1;
- char filename[1024];
- H5F_t *f=NULL;
- haddr_t sh_addr; /* Address of block tracker created */
-
- h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
-
- /* Create the file to work on */
- if ((file=H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl))<0) TEST_ERROR;
-
- /* Get a pointer to the internal file object */
- if (NULL==(f=H5I_object(file))) {
- H5Eprint_stack(H5E_DEFAULT, stdout);
- TEST_ERROR;
- } /* end if */
-
- /*
- * Test segmented heap creation
- */
- TESTING("segmented heap creation");
- if (H5SH_create(f, H5P_DATASET_XFER_DEFAULT, &sh_addr/*out*/, SHEAP_TYPE, (hsize_t)SHEAP_MIN_SIZE, (hsize_t)SHEAP_MAX_EXPAND_SIZE)<0) {
- H5_FAILED();
- H5Eprint_stack(H5E_DEFAULT, stdout);
- goto error;
- } /* end if */
-
- PASSED();
-
- if (H5Fclose(file)<0) TEST_ERROR;
-
- return 0;
-
-error:
- H5E_BEGIN_TRY {
- H5Fclose(file);
- } H5E_END_TRY;
- return 1;
-} /* test_create() */
-
-
-/*-------------------------------------------------------------------------
- * Function: test_allocate_simple
- *
- * Purpose: Basic tests for the segmented heap code
- *
- * Return: Success: 0
- *
- * Failure: 1
- *
- * Programmer: Quincey Koziol
- * Thursday, March 24, 2005
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static int
-test_allocate_simple(hid_t fapl)
-{
- hid_t file=-1;
- char filename[1024];
- H5F_t *f=NULL;
- haddr_t sh_addr; /* Address of block tracker created */
- haddr_t obj_addr; /* Address for object */
- hsize_t obj_len; /* Length of object */
-
- h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
-
- /* Create the file to work on */
- if ((file=H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl))<0) TEST_ERROR;
-
- /* Get a pointer to the internal file object */
- if (NULL==(f=H5I_object(file))) {
- H5Eprint_stack(H5E_DEFAULT, stdout);
- TEST_ERROR;
- } /* end if */
-
- /* Create segmented heap */
- if (H5SH_create(f, H5P_DATASET_XFER_DEFAULT, &sh_addr/*out*/, SHEAP_TYPE, (hsize_t)SHEAP_MIN_SIZE, (hsize_t)SHEAP_MAX_EXPAND_SIZE)<0) {
- H5_FAILED();
- H5Eprint_stack(H5E_DEFAULT, stdout);
- goto error;
- } /* end if */
-
- /*
- * Test segmented heap allocation
- */
- TESTING("segmented heap allocate first block");
-
- /* Allocate space for a simple object */
- obj_len = 10;
- if (H5SH_alloc(f, H5P_DATASET_XFER_DEFAULT, sh_addr, obj_len, &obj_addr/*out*/)<0) {
- H5_FAILED();
- H5Eprint_stack(H5E_DEFAULT, stdout);
- goto error;
- } /* end if */
-#ifdef H5_HAVE_LARGE_HSIZET
- if(obj_addr != 530) TEST_ERROR;
-#else /* H5_HAVE_LARGE_HSIZET */
- if(obj_addr != 478) TEST_ERROR;
-#endif /* H5_HAVE_LARGE_HSIZET */
-
- PASSED();
-
- TESTING("segmented heap allocate into free space");
-
- /* Allocate space for a simple object */
- obj_len = 3800;
- if (H5SH_alloc(f, H5P_DATASET_XFER_DEFAULT, sh_addr, obj_len, &obj_addr/*out*/)<0) {
- H5_FAILED();
- H5Eprint_stack(H5E_DEFAULT, stdout);
- goto error;
- } /* end if */
-#ifdef H5_HAVE_LARGE_HSIZET
- if(obj_addr != 540) TEST_ERROR;
-#else /* H5_HAVE_LARGE_HSIZET */
- if(obj_addr != 488) TEST_ERROR;
-#endif /* H5_HAVE_LARGE_HSIZET */
-
- PASSED();
-
- TESTING("segmented heap allocate another heap block");
-
- /* Allocate space for a simple object */
- obj_len = 512;
- if (H5SH_alloc(f, H5P_DATASET_XFER_DEFAULT, sh_addr, obj_len, &obj_addr/*out*/)<0) {
- H5_FAILED();
- H5Eprint_stack(H5E_DEFAULT, stdout);
- goto error;
- } /* end if */
-#ifdef H5_HAVE_LARGE_HSIZET
- if(obj_addr != 5650) TEST_ERROR;
-#else /* H5_HAVE_LARGE_HSIZET */
- if(obj_addr != 5598) TEST_ERROR;
-#endif /* H5_HAVE_LARGE_HSIZET */
-
- PASSED();
-
- TESTING("segmented heap extend heap block");
-
- /* Allocate space for a simple object */
- obj_len = 4096;
- if (H5SH_alloc(f, H5P_DATASET_XFER_DEFAULT, sh_addr, obj_len, &obj_addr/*out*/)<0) {
- H5_FAILED();
- H5Eprint_stack(H5E_DEFAULT, stdout);
- goto error;
- } /* end if */
-#ifdef H5_HAVE_LARGE_HSIZET
- if(obj_addr != 6162) TEST_ERROR;
-#else /* H5_HAVE_LARGE_HSIZET */
- if(obj_addr != 6110) TEST_ERROR;
-#endif /* H5_HAVE_LARGE_HSIZET */
-
- PASSED();
-
- if (H5Fclose(file)<0) TEST_ERROR;
-
- return 0;
-
-error:
- H5E_BEGIN_TRY {
- H5Fclose(file);
- } H5E_END_TRY;
- return 1;
-} /* test_allocate_simple() */
-
-
-/*-------------------------------------------------------------------------
- * Function: main
- *
- * Purpose: Test the segmented heap code
- *
- * Return: Success:
- *
- * Failure:
- *
- * Programmer: Quincey Koziol
- * Wednesday, March 23, 2005
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-int
-main(void)
-{
- hid_t fapl=-1;
- int nerrors=0;
-
- /* Reset library */
- h5_reset();
- fapl = h5_fileaccess();
-
- /* Test segmented heap creation */
- nerrors += test_create(fapl);
-
- /* Test segmented heap allocation */
- nerrors += test_allocate_simple(fapl);
-
- if (nerrors) goto error;
- puts("All segmented heap tests passed.");
-#ifndef QAK
- h5_cleanup(FILENAME, fapl);
-#else /* QAK */
-HDfprintf(stderr,"Uncomment cleanup!\n");
-#endif /* QAK */
- return 0;
-
-error:
- puts("*** TESTS FAILED ***");
- H5E_BEGIN_TRY {
- H5Pclose(fapl);
- } H5E_END_TRY;
- return 1;
-}
-