diff options
Diffstat (limited to 'test/sheap.c')
-rw-r--r-- | test/sheap.c | 275 |
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; -} - |