mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-24 17:51:25 +08:00
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '66a94df13b3801547523f1ea90bc84fe2ee6824b': Removed UIUC from copyright, added helpful comment. Updated MANIFEST Added a config file for ARM (Tested on a Raspberry Pi 3B+ w/ gcc 6). Tidying from code review. Fixed stack and frame size warnings. Not complete, but fixes most of the easier cases.
This commit is contained in:
commit
3e9980d20d
1
MANIFEST
1
MANIFEST
@ -132,6 +132,7 @@
|
||||
./config/intel-flags
|
||||
./config/linux-gnu
|
||||
./config/linux-gnuaout
|
||||
./config/linux-gnueabihf
|
||||
./config/linux-gnulibc1
|
||||
./config/linux-gnulibc2
|
||||
./config/lt_vers.am
|
||||
|
16
config/linux-gnueabihf
Normal file
16
config/linux-gnueabihf
Normal file
@ -0,0 +1,16 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# 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 COPYING file, which can be found at the root of the source code
|
||||
# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
|
||||
# ARM for Raspberry Pi, etc.
|
||||
# This is the same as linux-gnulibc1
|
||||
|
||||
. $srcdir/config/linux-gnulibc1
|
@ -2601,9 +2601,9 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
|
||||
{
|
||||
H5S_t *new_space = NULL; /* New dataspace constructed */
|
||||
H5S_t *tmp_src_intersect_space = NULL; /* Temporary SIS converted from points->hyperslabs */
|
||||
H5S_sel_iter_t ss_iter; /* Selection iterator for src_space */
|
||||
H5S_sel_iter_t *ss_iter = NULL; /* Selection iterator for src_space */
|
||||
hbool_t ss_iter_init = FALSE; /* Whether ss_iter has been initialized */
|
||||
H5S_sel_iter_t ds_iter; /* Selection iterator for dst_space */
|
||||
H5S_sel_iter_t *ds_iter = NULL; /* Selection iterator for dst_space */
|
||||
hbool_t ds_iter_init = FALSE; /* Whether ds_iter has been initialized */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
@ -2617,6 +2617,11 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
|
||||
HDassert(H5S_GET_SELECT_NPOINTS(src_space) == H5S_GET_SELECT_NPOINTS(dst_space));
|
||||
HDassert(H5S_GET_EXTENT_NDIMS(src_space) == H5S_GET_EXTENT_NDIMS(src_intersect_space));
|
||||
|
||||
if(NULL == (ss_iter = H5FL_CALLOC(H5S_sel_iter_t)))
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
|
||||
if(NULL == (ds_iter = H5FL_CALLOC(H5S_sel_iter_t)))
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
|
||||
|
||||
/* Create new space, using dst extent. Start with "all" selection. */
|
||||
if(NULL == (new_space = H5S_create(H5S_SIMPLE)))
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "unable to create output dataspace")
|
||||
@ -2717,20 +2722,20 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
|
||||
|
||||
/* Initialize iterators */
|
||||
if(H5S_select_iter_init(&ss_iter, src_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
|
||||
if(H5S_select_iter_init(ss_iter, src_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "can't initialize source space selection iterator")
|
||||
ss_iter_init = TRUE;
|
||||
if(H5S_select_iter_init(&ds_iter, dst_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
|
||||
if(H5S_select_iter_init(ds_iter, dst_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "can't initialize destination space selection iterator")
|
||||
ds_iter_init = TRUE;
|
||||
|
||||
/* Iterate over points */
|
||||
do {
|
||||
HDassert(ss_iter.elmt_left > 0);
|
||||
HDassert(ss_iter.elmt_left > 0);
|
||||
HDassert(ss_iter->elmt_left > 0);
|
||||
HDassert(ss_iter->elmt_left > 0);
|
||||
|
||||
/* Get SS coords */
|
||||
if(H5S_SELECT_ITER_COORDS(&ss_iter, coords) < 0)
|
||||
if(H5S_SELECT_ITER_COORDS(ss_iter, coords) < 0)
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get source selection coordinates")
|
||||
|
||||
/* Check for intersection */
|
||||
@ -2740,7 +2745,7 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
|
||||
/* Add point if it intersects */
|
||||
if(intersect) {
|
||||
/* Get DS coords */
|
||||
if(H5S_SELECT_ITER_COORDS(&ds_iter, coords) < 0)
|
||||
if(H5S_SELECT_ITER_COORDS(ds_iter, coords) < 0)
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get destination selection coordinates")
|
||||
|
||||
/* Add point to new_space */
|
||||
@ -2749,14 +2754,14 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
|
||||
} /* end if */
|
||||
|
||||
/* Advance iterators */
|
||||
if(H5S_SELECT_ITER_NEXT(&ss_iter, 1) < 0)
|
||||
if(H5S_SELECT_ITER_NEXT(ss_iter, 1) < 0)
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "can't advacne source selection iterator")
|
||||
ss_iter.elmt_left--;
|
||||
if(H5S_SELECT_ITER_NEXT(&ds_iter, 1) < 0)
|
||||
ss_iter->elmt_left--;
|
||||
if(H5S_SELECT_ITER_NEXT(ds_iter, 1) < 0)
|
||||
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "can't advacne destination selection iterator")
|
||||
ds_iter.elmt_left--;
|
||||
} while(ss_iter.elmt_left > 0);
|
||||
HDassert(H5S_SELECT_ITER_NELMTS(&ds_iter) == 0);
|
||||
ds_iter->elmt_left--;
|
||||
} while(ss_iter->elmt_left > 0);
|
||||
HDassert(H5S_SELECT_ITER_NELMTS(ds_iter) == 0);
|
||||
} /* end if */
|
||||
else {
|
||||
HDassert(H5S_GET_SELECT_TYPE(src_space) != H5S_SEL_NONE);
|
||||
@ -2783,11 +2788,14 @@ done:
|
||||
/* General cleanup */
|
||||
if(tmp_src_intersect_space && H5S_close(tmp_src_intersect_space) < 0)
|
||||
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release temporary dataspace")
|
||||
if(ss_iter_init && H5S_SELECT_ITER_RELEASE(&ss_iter) < 0)
|
||||
if(ss_iter_init && H5S_SELECT_ITER_RELEASE(ss_iter) < 0)
|
||||
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release source selection iterator")
|
||||
if(ds_iter_init && H5S_SELECT_ITER_RELEASE(&ds_iter) < 0)
|
||||
if(ds_iter_init && H5S_SELECT_ITER_RELEASE(ds_iter) < 0)
|
||||
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release destination selection iterator")
|
||||
|
||||
ss_iter = H5FL_FREE(H5S_sel_iter_t, ss_iter);
|
||||
ds_iter = H5FL_FREE(H5S_sel_iter_t, ds_iter);
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5S_select_project_intersection() */
|
||||
|
||||
|
693
test/dsets.c
693
test/dsets.c
File diff suppressed because it is too large
Load Diff
31
test/efc.c
31
test/efc.c
@ -33,7 +33,8 @@ const char *FILENAME[] = {
|
||||
};
|
||||
|
||||
/* Global patched filename buffer */
|
||||
static char filename[6][128];
|
||||
#define N_FILENAMES 6
|
||||
static char *filename[N_FILENAMES];
|
||||
|
||||
/* Global property lists - just copies of the defaults (necessary to use
|
||||
* internal functions */
|
||||
@ -2896,10 +2897,11 @@ error:
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
unsigned nerrors = 0; /* track errors */
|
||||
H5P_genplist_t *plist; /* Property list pointer for FAPL */
|
||||
H5VL_connector_prop_t connector_prop; /* Property for VOL connector ID & info */
|
||||
hbool_t api_ctx_pushed = FALSE; /* Whether API context pushed */
|
||||
unsigned nerrors = 0; /* track errors */
|
||||
H5P_genplist_t *plist; /* Property list pointer for FAPL */
|
||||
H5VL_connector_prop_t connector_prop; /* Property for VOL connector ID & info */
|
||||
hbool_t api_ctx_pushed = FALSE; /* Whether API context pushed */
|
||||
int i; /* iterator */
|
||||
|
||||
/* Test Setup */
|
||||
HDputs("Testing the external file cache");
|
||||
@ -2908,6 +2910,11 @@ main(void)
|
||||
fcpl_id = H5Pcreate(H5P_FILE_CREATE);
|
||||
fapl_id = h5_fileaccess();
|
||||
|
||||
/* Allocate memory for filenames */
|
||||
for(i = 0; i < N_FILENAMES; i++) {
|
||||
filename[i] = (char *)HDcalloc(PATH_MAX, sizeof(char));
|
||||
}
|
||||
|
||||
/* Patch filenames */
|
||||
h5_fixname(FILENAME[0], fapl_id, filename[0], sizeof(filename[0]));
|
||||
h5_fixname(FILENAME[1], fapl_id, filename[1], sizeof(filename[1]));
|
||||
@ -2942,7 +2949,8 @@ main(void)
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl_id) < 0 ? 1 : 0);
|
||||
|
||||
/* Pop API context */
|
||||
if(api_ctx_pushed && H5CX_pop() < 0) FAIL_STACK_ERROR
|
||||
if(api_ctx_pushed && H5CX_pop() < 0)
|
||||
FAIL_STACK_ERROR
|
||||
api_ctx_pushed = FALSE;
|
||||
|
||||
if(nerrors)
|
||||
@ -2952,6 +2960,10 @@ main(void)
|
||||
|
||||
h5_clean_files(FILENAME, fapl_id);
|
||||
|
||||
for(i = 0; i < N_FILENAMES; i++) {
|
||||
HDfree(filename[i]);
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
error:
|
||||
@ -2961,7 +2973,12 @@ error:
|
||||
H5Pclose(fapl_id);
|
||||
} H5E_END_TRY
|
||||
|
||||
if(api_ctx_pushed) H5CX_pop();
|
||||
if(api_ctx_pushed)
|
||||
H5CX_pop();
|
||||
|
||||
for(i = 0; i < N_FILENAMES; i++) {
|
||||
HDfree(filename[i]);
|
||||
}
|
||||
|
||||
return EXIT_FAILURE;
|
||||
} /* end main() */
|
||||
|
@ -35,7 +35,10 @@ const char *FILENAME[] = {
|
||||
#define DIM0 100
|
||||
#define DIM1 200
|
||||
|
||||
int ipoints2[DIM0][DIM1], icheck2[DIM0][DIM1];
|
||||
int **ipoints2 = NULL;
|
||||
int **icheck2 = NULL;
|
||||
int *ipoints2_data = NULL;
|
||||
int *icheck2_data = NULL;
|
||||
|
||||
#define DSET_NAME "a_dataset"
|
||||
#define FAKE_ID (hid_t)-1
|
||||
@ -465,13 +468,29 @@ dump_error(void)
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
hid_t file, fapl;
|
||||
hid_t file, fapl;
|
||||
char filename[1024];
|
||||
const char *FUNC_main="main";
|
||||
const char *FUNC_main="main";
|
||||
int i;
|
||||
|
||||
HDfprintf(stderr, " This program tests the Error API compatible with HDF5 v1.6. There are supposed to be some error messages\n");
|
||||
fapl = h5_fileaccess();
|
||||
|
||||
/* Set up data arrays */
|
||||
if(NULL == (ipoints2_data = (int *)HDcalloc(DIM0 * DIM1, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (ipoints2 = (int **)HDcalloc(DIM0, sizeof(ipoints2_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < DIM0; i++)
|
||||
ipoints2[i] = ipoints2_data + (i * DIM1);
|
||||
|
||||
if(NULL == (icheck2_data = (int *)HDcalloc(DIM0 * DIM1, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (icheck2 = (int **)HDcalloc(DIM0, sizeof(icheck2_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < DIM0; i++)
|
||||
icheck2[i] = icheck2_data + (i * DIM1);
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR ;
|
||||
@ -500,10 +519,20 @@ main(void)
|
||||
if(H5Fclose(file) < 0) TEST_ERROR ;
|
||||
h5_clean_files(FILENAME, fapl);
|
||||
|
||||
HDfree(ipoints2);
|
||||
HDfree(ipoints2_data);
|
||||
HDfree(icheck2);
|
||||
HDfree(icheck2_data);
|
||||
|
||||
HDprintf("All error API tests passed.\n");
|
||||
return 0;
|
||||
|
||||
error:
|
||||
HDfree(ipoints2);
|
||||
HDfree(ipoints2_data);
|
||||
HDfree(icheck2);
|
||||
HDfree(icheck2_data);
|
||||
|
||||
HDprintf("***** ERROR TEST FAILED! *****\n");
|
||||
return 1;
|
||||
}
|
||||
|
@ -38,7 +38,10 @@ const char *FILENAME[] = {
|
||||
#define DIM0 100
|
||||
#define DIM1 200
|
||||
|
||||
int ipoints2[DIM0][DIM1], icheck2[DIM0][DIM1];
|
||||
int **ipoints2 = NULL;
|
||||
int **icheck2 = NULL;
|
||||
int *ipoints2_data = NULL;
|
||||
int *icheck2_data = NULL;
|
||||
|
||||
hid_t ERR_CLS;
|
||||
hid_t ERR_CLS2;
|
||||
@ -679,6 +682,7 @@ main(void)
|
||||
hid_t estack_id = -1;
|
||||
char filename[1024];
|
||||
const char *FUNC_main = "main";
|
||||
int i;
|
||||
|
||||
HDfprintf(stderr, " This program tests the Error API. There're supposed to be some error messages\n");
|
||||
|
||||
@ -689,6 +693,21 @@ main(void)
|
||||
if ((fapl = h5_fileaccess()) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Set up data arrays */
|
||||
if(NULL == (ipoints2_data = (int *)HDcalloc(DIM0 * DIM1, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (ipoints2 = (int **)HDcalloc(DIM0, sizeof(ipoints2_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < DIM0; i++)
|
||||
ipoints2[i] = ipoints2_data + (i * DIM1);
|
||||
|
||||
if(NULL == (icheck2_data = (int *)HDcalloc(DIM0 * DIM1, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (icheck2 = (int **)HDcalloc(DIM0, sizeof(icheck2_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < DIM0; i++)
|
||||
icheck2[i] = icheck2_data + (i * DIM1);
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, filename, sizeof(filename));
|
||||
if ((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -755,10 +774,20 @@ main(void)
|
||||
|
||||
h5_clean_files(FILENAME, fapl);
|
||||
|
||||
HDfree(ipoints2);
|
||||
HDfree(ipoints2_data);
|
||||
HDfree(icheck2);
|
||||
HDfree(icheck2_data);
|
||||
|
||||
HDfprintf(stderr, "\nAll error API tests passed.\n");
|
||||
return 0;
|
||||
|
||||
error:
|
||||
HDfree(ipoints2);
|
||||
HDfree(ipoints2_data);
|
||||
HDfree(icheck2);
|
||||
HDfree(icheck2_data);
|
||||
|
||||
HDfprintf(stderr, "\n***** ERROR TEST FAILED (real problem)! *****\n");
|
||||
return 1;
|
||||
}
|
||||
|
169
test/extend.c
169
test/extend.c
@ -25,11 +25,16 @@ const char *FILENAME[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
#define NX 100 /* USE AN EVEN NUMBER!*/
|
||||
#define NY 100 /* USE AN EVEN NUMBER!*/
|
||||
#define N1X 100 /* USE AN EVEN NUMBER! */
|
||||
#define N1Y 100 /* USE AN EVEN NUMBER! */
|
||||
#define N2X (N1X / 2)
|
||||
#define N2Y (N1Y / 2)
|
||||
|
||||
/* Data buffers */
|
||||
static int buf1[NY][NX], buf2[NX / 2][NY / 2];
|
||||
static int **buf1 = NULL;
|
||||
static int *buf1_data = NULL;
|
||||
static int **buf2 = NULL;
|
||||
static int *buf2_data = NULL;
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -49,8 +54,8 @@ static int
|
||||
write_data(const char *msg, hid_t file, const char *name, hid_t cparms, hid_t mem_space)
|
||||
{
|
||||
hid_t dataset, file_space, half_space;
|
||||
static const hsize_t dims[2] = {NX, NY};
|
||||
static const hsize_t half_dims[2] = {NX / 2, NY / 2};
|
||||
static const hsize_t dims[2] = {N1X, N1Y};
|
||||
static const hsize_t half_dims[2] = {N2X, N2Y};
|
||||
hsize_t size[2];
|
||||
hsize_t max_size[2] = {0, 0};
|
||||
hsize_t offset[2];
|
||||
@ -63,13 +68,13 @@ write_data(const char *msg, hid_t file, const char *name, hid_t cparms, hid_t me
|
||||
|
||||
/* Write the data */
|
||||
for(i = 0; i < 5; i++)
|
||||
for(j = 0; j < 5; j++) {
|
||||
for(j = 0; j < 5; j++) {
|
||||
|
||||
/* Extend the dataset */
|
||||
offset[0] = (hsize_t)(i * NX);
|
||||
offset[1] = (hsize_t)(j * NY);
|
||||
size[0] = offset[0] + NX;
|
||||
size[1] = offset[1] + NY;
|
||||
/* Extend the dataset */
|
||||
offset[0] = (hsize_t)(i * N1X);
|
||||
offset[1] = (hsize_t)(j * N1Y);
|
||||
size[0] = offset[0] + N1X;
|
||||
size[1] = offset[1] + N1Y;
|
||||
if(size[0] > max_size[0] || size[1] > max_size[1]) {
|
||||
if(size[0] > max_size[0])
|
||||
max_size[0] = size[0];
|
||||
@ -78,42 +83,41 @@ write_data(const char *msg, hid_t file, const char *name, hid_t cparms, hid_t me
|
||||
if(H5Dset_extent(dataset, max_size) < 0) TEST_ERROR;
|
||||
} /* end if */
|
||||
|
||||
/* Select a hyperslab */
|
||||
/* Select a hyperslab */
|
||||
if((file_space = H5Dget_space(dataset)) < 0) TEST_ERROR;
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, dims, NULL) < 0) TEST_ERROR;
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, dims, NULL) < 0) TEST_ERROR;
|
||||
|
||||
/* Write to the hyperslab */
|
||||
if(H5Dwrite(dataset, H5T_NATIVE_INT, mem_space, file_space, H5P_DEFAULT, buf1) < 0) TEST_ERROR;
|
||||
/* Write to the hyperslab */
|
||||
if(H5Dwrite(dataset, H5T_NATIVE_INT, mem_space, file_space, H5P_DEFAULT, buf1_data) < 0) TEST_ERROR;
|
||||
if(H5Sclose(file_space) < 0) TEST_ERROR;
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
|
||||
/* Read the data */
|
||||
if((half_space = H5Screate_simple(2, half_dims, NULL)) < 0) TEST_ERROR;
|
||||
if((file_space = H5Dget_space(dataset)) < 0) TEST_ERROR;
|
||||
for(i = 0; i < 10; i++) {
|
||||
for(j = 0; j < 10; j++) {
|
||||
for(j = 0; j < 10; j++) {
|
||||
|
||||
/* Select a hyperslab */
|
||||
offset[0] = (hsize_t)(i * (NX / 2));
|
||||
offset[1] = (hsize_t)(j * (NY / 2));
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, half_dims, NULL) < 0) TEST_ERROR;
|
||||
/* Select a hyperslab */
|
||||
offset[0] = (hsize_t)(i * N2X);
|
||||
offset[1] = (hsize_t)(j * N2Y);
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, half_dims, NULL) < 0) TEST_ERROR;
|
||||
|
||||
/* Read */
|
||||
if(H5Dread(dataset, H5T_NATIVE_INT, half_space, file_space, H5P_DEFAULT, buf2) < 0) TEST_ERROR;
|
||||
/* Read */
|
||||
if(H5Dread(dataset, H5T_NATIVE_INT, half_space, file_space, H5P_DEFAULT, buf2_data) < 0) TEST_ERROR;
|
||||
|
||||
/* Compare */
|
||||
for(k = 0; k < (NX / 2); k++)
|
||||
for(m = 0; m < (NY / 2); m++)
|
||||
if(buf2[k][m] != buf1[(i % 2) * (NX / 2) + k][(j % 2) * (NY / 2) + m]) {
|
||||
HDprintf(" i=%d, j=%d, k=%d, m=%d\n", i, j, k, m);
|
||||
HDprintf(" buf2[%d][%d]=%d\n", k, m, buf2[k][m]);
|
||||
HDprintf(" buf1[%d][%d]=%d\n", (i % 2) * (NX / 2) + k, (j % 2) * (NY / 2) + m, buf1[(i % 2) * (NX / 2) + k][(j % 2) * (NY / 2) + m]);
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
/* Compare */
|
||||
for(k = 0; k < N2X; k++)
|
||||
for(m = 0; m < N2Y; m++)
|
||||
if(buf2[k][m] != buf1[(i % 2) * N2X + k][(j % 2) * N2Y + m]) {
|
||||
HDprintf(" i=%d, j=%d, k=%d, m=%d\n", i, j, k, m);
|
||||
HDprintf(" buf2[%d][%d]=%d\n", k, m, buf2[k][m]);
|
||||
HDprintf(" buf1[%d][%d]=%d\n", (i % 2) * N2X + k, (j % 2) * N2Y + m, buf1[(i % 2) * N2X + k][(j % 2) * N2Y + m]);
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
|
||||
|
||||
/* Cleanup */
|
||||
if(H5Dclose(dataset) < 0) TEST_ERROR;
|
||||
if(H5Sclose(file_space) < 0) TEST_ERROR;
|
||||
@ -146,8 +150,8 @@ static int
|
||||
write_data_deprec(const char *msg, hid_t file, const char *name, hid_t cparms, hid_t mem_space)
|
||||
{
|
||||
hid_t dataset, file_space, half_space;
|
||||
static const hsize_t dims[2] = {NX, NY};
|
||||
static const hsize_t half_dims[2] = {NX / 2, NY / 2};
|
||||
static const hsize_t dims[2] = {N1X, N1Y};
|
||||
static const hsize_t half_dims[2] = {N2X, N2Y};
|
||||
static hsize_t size[2];
|
||||
hsize_t offset[2];
|
||||
int i, j, k, m;
|
||||
@ -159,48 +163,48 @@ write_data_deprec(const char *msg, hid_t file, const char *name, hid_t cparms, h
|
||||
|
||||
/* Write the data */
|
||||
for(i = 0; i < 5; i++)
|
||||
for(j = 0; j < 5; j++) {
|
||||
for(j = 0; j < 5; j++) {
|
||||
|
||||
/* Extend the dataset */
|
||||
offset[0] = (hsize_t)(i * NX);
|
||||
offset[1] = (hsize_t)(j * NY);
|
||||
size[0] = offset[0] + NX;
|
||||
size[1] = offset[1] + NY;
|
||||
if(H5Dextend(dataset, size) < 0) TEST_ERROR;
|
||||
/* Extend the dataset */
|
||||
offset[0] = (hsize_t)(i * N1X);
|
||||
offset[1] = (hsize_t)(j * N1Y);
|
||||
size[0] = offset[0] + N1X;
|
||||
size[1] = offset[1] + N1Y;
|
||||
if(H5Dextend(dataset, size) < 0) TEST_ERROR;
|
||||
|
||||
/* Select a hyperslab */
|
||||
/* Select a hyperslab */
|
||||
if((file_space = H5Dget_space(dataset)) < 0) TEST_ERROR;
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, dims, NULL) < 0) TEST_ERROR;
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, dims, NULL) < 0) TEST_ERROR;
|
||||
|
||||
/* Write to the hyperslab */
|
||||
if(H5Dwrite(dataset, H5T_NATIVE_INT, mem_space, file_space, H5P_DEFAULT, buf1) < 0) TEST_ERROR;
|
||||
/* Write to the hyperslab */
|
||||
if(H5Dwrite(dataset, H5T_NATIVE_INT, mem_space, file_space, H5P_DEFAULT, buf1_data) < 0) TEST_ERROR;
|
||||
if(H5Sclose(file_space) < 0) TEST_ERROR;
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
|
||||
/* Read the data */
|
||||
if((half_space = H5Screate_simple(2, half_dims, NULL)) < 0) TEST_ERROR;
|
||||
if((file_space = H5Dget_space(dataset)) < 0) TEST_ERROR;
|
||||
for(i = 0; i < 10; i++) {
|
||||
for(j = 0; j < 10; j++) {
|
||||
for(j = 0; j < 10; j++) {
|
||||
|
||||
/* Select a hyperslab */
|
||||
offset[0] = (hsize_t)(i * (NX / 2));
|
||||
offset[1] = (hsize_t)(j * (NY / 2));
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, half_dims, NULL) < 0) TEST_ERROR;
|
||||
/* Select a hyperslab */
|
||||
offset[0] = (hsize_t)(i * N2X);
|
||||
offset[1] = (hsize_t)(j * N2Y);
|
||||
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, offset, NULL, half_dims, NULL) < 0) TEST_ERROR;
|
||||
|
||||
/* Read */
|
||||
if(H5Dread(dataset, H5T_NATIVE_INT, half_space, file_space, H5P_DEFAULT, buf2) < 0) TEST_ERROR;
|
||||
/* Read */
|
||||
if(H5Dread(dataset, H5T_NATIVE_INT, half_space, file_space, H5P_DEFAULT, buf2_data) < 0) TEST_ERROR;
|
||||
|
||||
/* Compare */
|
||||
for(k = 0; k < (NX / 2); k++)
|
||||
for(m = 0; m < (NY / 2); m++)
|
||||
if(buf2[k][m] != buf1[(i % 2) * (NX / 2) + k][(j % 2) * (NY / 2) + m]) {
|
||||
HDprintf(" i=%d, j=%d, k=%d, m=%d\n", i, j, k, m);
|
||||
HDprintf(" buf2[%d][%d]=%d\n", k, m, buf2[k][m]);
|
||||
HDprintf(" buf1[%d][%d]=%d\n", (i % 2) * (NX / 2) + k, (j % 2) * (NY / 2) + m, buf1[(i % 2) * (NX / 2) + k][(j % 2) * (NY / 2) + m]);
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
/* Compare */
|
||||
for(k = 0; k < N2X; k++)
|
||||
for(m = 0; m < N2Y; m++)
|
||||
if(buf2[k][m] != buf1[(i % 2) * N2X + k][(j % 2) * N2Y + m]) {
|
||||
HDprintf(" i=%d, j=%d, k=%d, m=%d\n", i, j, k, m);
|
||||
HDprintf(" buf2[%d][%d]=%d\n", k, m, buf2[k][m]);
|
||||
HDprintf(" buf1[%d][%d]=%d\n", (i % 2) * N2X + k, (j % 2) * N2Y + m, buf1[(i % 2) * N2X + k][(j % 2) * N2Y + m]);
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
|
||||
|
||||
@ -236,8 +240,8 @@ main (void)
|
||||
hid_t file, mem_space, cparms;
|
||||
hid_t fapl;
|
||||
int nerrors = 0;
|
||||
static const hsize_t dims[2] = {NX, NY};
|
||||
static const hsize_t chunk_dims[2] = {NX/2, NY/2};
|
||||
static const hsize_t dims[2] = {N1X, N1Y};
|
||||
static const hsize_t chunk_dims[2] = {N2X, N2Y};
|
||||
static hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
|
||||
char filename[1024];
|
||||
int i, j;
|
||||
@ -246,9 +250,23 @@ main (void)
|
||||
fapl = h5_fileaccess();
|
||||
|
||||
/* Initialize buffer and space */
|
||||
for(i = 0; i < NX; i++)
|
||||
for(j = 0; j < NY; j++)
|
||||
buf1[i][j] = i * NY + j;
|
||||
if(NULL == (buf1_data = (int *)HDcalloc(N1X * N1Y, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (buf1 = (int **)HDcalloc(N1X, sizeof(buf1_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < N1X; i++)
|
||||
buf1[i] = buf1_data + (i * N1Y);
|
||||
|
||||
if(NULL == (buf2_data = (int *)HDcalloc(N2X * N2Y, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (buf2 = (int **)HDcalloc(N2X, sizeof(buf2_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < N2X; i++)
|
||||
buf2[i] = buf2_data + (i * N2Y);
|
||||
|
||||
for(i = 0; i < N1X; i++)
|
||||
for(j = 0; j < N1Y; j++)
|
||||
buf1[i][j] = i * N1Y + j;
|
||||
|
||||
if((mem_space = H5Screate_simple(2, dims, maxdims)) < 0) TEST_ERROR;
|
||||
|
||||
@ -288,9 +306,20 @@ main (void)
|
||||
HDprintf("All extend tests passed.\n");
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
HDfree(buf1);
|
||||
HDfree(buf1_data);
|
||||
HDfree(buf2);
|
||||
HDfree(buf2_data);
|
||||
|
||||
HDexit(EXIT_SUCCESS);
|
||||
|
||||
error:
|
||||
|
||||
HDfree(buf1);
|
||||
HDfree(buf1_data);
|
||||
HDfree(buf2);
|
||||
HDfree(buf2_data);
|
||||
|
||||
HDprintf("*** One or more extend tests failed ***\n");
|
||||
HDexit(EXIT_FAILURE);
|
||||
} /* end main() */
|
||||
|
22
test/fheap.c
22
test/fheap.c
@ -7617,7 +7617,8 @@ test_man_incr_insert_remove(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_
|
||||
H5F_t *f = NULL; /* Internal file object pointer */
|
||||
H5HF_t *fh = NULL; /* Fractal heap wrapper */
|
||||
haddr_t fh_addr; /* Address of fractal heap */
|
||||
unsigned char heap_id[100][MAX_HEAP_ID_LEN]; /* Heap ID for object inserted */
|
||||
unsigned char **heap_id = NULL;
|
||||
unsigned char *heap_id_data = NULL;
|
||||
struct a_type_t1 {
|
||||
char a[10];
|
||||
char b[40];
|
||||
@ -7629,6 +7630,14 @@ test_man_incr_insert_remove(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_
|
||||
/* Set the filename to use for this test (dependent on fapl) */
|
||||
h5_fixname(FILENAME[0], fapl, filename, sizeof(filename));
|
||||
|
||||
/* Set up data array */
|
||||
if(NULL == (heap_id_data = (unsigned char *)HDcalloc(100 * MAX_HEAP_ID_LEN, sizeof(unsigned char))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (heap_id = (unsigned char **)HDcalloc(100, sizeof(heap_id_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < 100; i++)
|
||||
heap_id[i] = heap_id_data + (i * MAX_HEAP_ID_LEN);
|
||||
|
||||
/* Create the file to work on */
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, tparam->my_fcpl, fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
@ -7695,7 +7704,10 @@ test_man_incr_insert_remove(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_
|
||||
/* All tests passed */
|
||||
PASSED()
|
||||
|
||||
return(0);
|
||||
HDfree(heap_id);
|
||||
HDfree(heap_id_data);
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
@ -7703,7 +7715,11 @@ error:
|
||||
H5HF_close(fh);
|
||||
H5Fclose(file);
|
||||
} H5E_END_TRY;
|
||||
return(1);
|
||||
|
||||
HDfree(heap_id);
|
||||
HDfree(heap_id_data);
|
||||
|
||||
return 1;
|
||||
} /* test_man_incr_insert_remove() */
|
||||
#endif /* QAK */
|
||||
|
||||
|
59
test/th5s.c
59
test/th5s.c
@ -2459,11 +2459,12 @@ test_h5s_compound_scalar_read(void)
|
||||
/* Close file */
|
||||
ret = H5Fclose(fid1);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
} /* test_h5s_compound_scalar_read() */
|
||||
} /* end test_h5s_compound_scalar_read() */
|
||||
|
||||
/* Data arrays for chunk test */
|
||||
double chunk_data_dbl[50000][3];
|
||||
float chunk_data_flt[50000][3];
|
||||
|
||||
/* Data array sizes for chunk test */
|
||||
#define CHUNK_DATA_NX 50000
|
||||
#define CHUNK_DATA_NY 3
|
||||
|
||||
/****************************************************************
|
||||
**
|
||||
@ -2481,22 +2482,41 @@ test_h5s_chunk(void)
|
||||
hid_t space_id;
|
||||
hsize_t dims[2];
|
||||
hsize_t csize[2];
|
||||
double **chunk_data_dbl = NULL;
|
||||
double *chunk_data_dbl_data = NULL;
|
||||
float **chunk_data_flt = NULL;
|
||||
float *chunk_data_flt_data = NULL;
|
||||
int i,j;
|
||||
|
||||
/* Allocate memory */
|
||||
chunk_data_dbl_data = (double *)HDcalloc(CHUNK_DATA_NX * CHUNK_DATA_NY, sizeof(double));
|
||||
CHECK_PTR(chunk_data_dbl_data, "HDcalloc");
|
||||
chunk_data_dbl = (double **)HDcalloc(CHUNK_DATA_NX, sizeof(chunk_data_dbl_data));
|
||||
CHECK_PTR(chunk_data_dbl, "HDcalloc");
|
||||
for (i = 0; i < CHUNK_DATA_NX; i++)
|
||||
chunk_data_dbl[i] = chunk_data_dbl_data + (i * CHUNK_DATA_NY);
|
||||
|
||||
chunk_data_flt_data = (float *)HDcalloc(CHUNK_DATA_NX * CHUNK_DATA_NY, sizeof(float));
|
||||
CHECK_PTR(chunk_data_flt_data, "HDcalloc");
|
||||
chunk_data_flt = (float **)HDcalloc(CHUNK_DATA_NX, sizeof(chunk_data_flt_data));
|
||||
CHECK_PTR(chunk_data_flt, "HDcalloc");
|
||||
for (i = 0; i < CHUNK_DATA_NX; i++)
|
||||
chunk_data_flt[i] = chunk_data_flt_data + (i * CHUNK_DATA_NY);
|
||||
|
||||
fileID = H5Fcreate(DATAFILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
CHECK(fileID, FAIL, "H5Fcreate");
|
||||
|
||||
plist_id = H5Pcreate(H5P_DATASET_CREATE);
|
||||
CHECK(plist_id, FAIL, "H5Pcreate");
|
||||
|
||||
csize[0] = 50000;
|
||||
csize[1] = 3;
|
||||
csize[0] = CHUNK_DATA_NX;
|
||||
csize[1] = CHUNK_DATA_NY;
|
||||
status = H5Pset_chunk(plist_id, 2, csize);
|
||||
CHECK(status, FAIL, "H5Pset_chunk");
|
||||
|
||||
/* Create the dataspace */
|
||||
dims[0] = 50000;
|
||||
dims[1] = 3;
|
||||
dims[0] = CHUNK_DATA_NX;
|
||||
dims[1] = CHUNK_DATA_NY;
|
||||
space_id = H5Screate_simple(2, dims, NULL);
|
||||
CHECK(space_id, FAIL, "H5Screate_simple");
|
||||
|
||||
@ -2504,11 +2524,11 @@ test_h5s_chunk(void)
|
||||
CHECK(dsetID, FAIL, "H5Dcreate2");
|
||||
|
||||
/* Initialize float array */
|
||||
for(i = 0; i < 50000; i++)
|
||||
for(j = 0; j < 3; j++)
|
||||
for(i = 0; i < CHUNK_DATA_NX; i++)
|
||||
for(j = 0; j < CHUNK_DATA_NY; j++)
|
||||
chunk_data_flt[i][j] = (float)(i + 1) * 2.5F - (float)j * 100.3F;
|
||||
|
||||
status = H5Dwrite(dsetID, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_flt);
|
||||
status = H5Dwrite(dsetID, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_flt_data);
|
||||
CHECK(status, FAIL, "H5Dwrite");
|
||||
|
||||
status = H5Pclose(plist_id);
|
||||
@ -2521,17 +2541,17 @@ test_h5s_chunk(void)
|
||||
CHECK(status, FAIL, "H5Fclose");
|
||||
|
||||
/* Reset/initialize the data arrays to read in */
|
||||
HDmemset(chunk_data_dbl, 0, sizeof(double) * 50000 * 3);
|
||||
HDmemset(chunk_data_flt, 0, sizeof(float) * 50000 * 3);
|
||||
HDmemset(chunk_data_dbl_data, 0, sizeof(double) * CHUNK_DATA_NX * CHUNK_DATA_NY);
|
||||
HDmemset(chunk_data_flt_data, 0, sizeof(float) * CHUNK_DATA_NX * CHUNK_DATA_NY);
|
||||
|
||||
fileID = H5Fopen(DATAFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
CHECK(fileID, FAIL, "H5Fopen");
|
||||
dsetID = H5Dopen2(fileID, "coords", H5P_DEFAULT);
|
||||
CHECK(dsetID, FAIL, "H5Dopen2");
|
||||
|
||||
status= H5Dread(dsetID, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_dbl);
|
||||
status= H5Dread(dsetID, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_dbl_data);
|
||||
CHECK(status, FAIL, "H5Dread");
|
||||
status= H5Dread(dsetID, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_flt);
|
||||
status= H5Dread(dsetID, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_flt_data);
|
||||
CHECK(status, FAIL, "H5Dread");
|
||||
|
||||
status = H5Dclose(dsetID);
|
||||
@ -2539,13 +2559,18 @@ test_h5s_chunk(void)
|
||||
status = H5Fclose(fileID);
|
||||
CHECK(status, FAIL, "H5Fclose");
|
||||
|
||||
for(i=0; i<50000; i++) {
|
||||
for(j=0; j<3; j++) {
|
||||
for(i = 0; i < CHUNK_DATA_NX; i++) {
|
||||
for(j = 0; j < CHUNK_DATA_NY; j++) {
|
||||
/* Check if the two values are within 0.001% range. */
|
||||
if(!H5_DBL_REL_EQUAL(chunk_data_dbl[i][j], (double)chunk_data_flt[i][j], (double)0.00001F))
|
||||
TestErrPrintf("%u: chunk_data_dbl[%d][%d]=%e, chunk_data_flt[%d][%d]=%e\n", (unsigned)__LINE__, i, j, chunk_data_dbl[i][j], i, j, (double)chunk_data_flt[i][j]);
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
|
||||
HDfree(chunk_data_dbl);
|
||||
HDfree(chunk_data_dbl_data);
|
||||
HDfree(chunk_data_flt);
|
||||
HDfree(chunk_data_flt_data);
|
||||
} /* test_h5s_chunk() */
|
||||
|
||||
/****************************************************************
|
||||
|
@ -95,11 +95,20 @@ test_unregister_filters(hid_t fapl_id)
|
||||
char filename[FILENAME_BUF_SIZE];
|
||||
const hsize_t chunk_dims[2] = {FILTER_CHUNK_DIM1, FILTER_CHUNK_DIM2}; /* Chunk dimensions */
|
||||
hsize_t dims[2];
|
||||
int data[DSET_DIM1][DSET_DIM2];
|
||||
int **buf = NULL;
|
||||
int *buf_data = NULL;
|
||||
herr_t ret;
|
||||
|
||||
TESTING("Unregistering filter");
|
||||
|
||||
/* Set up data array */
|
||||
if(NULL == (buf_data = (int *)HDcalloc(DSET_DIM1 * DSET_DIM2, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (buf = (int **)HDcalloc(DSET_DIM1, sizeof(buf_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < DSET_DIM1; i++)
|
||||
buf[i] = buf_data + (i * DSET_DIM2);
|
||||
|
||||
/* Create first file */
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof(filename));
|
||||
if((fid1 = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
@ -176,7 +185,7 @@ test_unregister_filters(hid_t fapl_id)
|
||||
/* Initialize the data for writing */
|
||||
for(i = n = 0; i < DSET_DIM1; i++)
|
||||
for(j = 0; j < DSET_DIM2; j++)
|
||||
data[i][j] = n++;
|
||||
buf[i][j] = n++;
|
||||
|
||||
/* Create the dataspace */
|
||||
dims[0] = DSET_DIM1;
|
||||
@ -189,7 +198,7 @@ test_unregister_filters(hid_t fapl_id)
|
||||
goto error;
|
||||
|
||||
/* Write the data to the dataset */
|
||||
if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data) < 0)
|
||||
if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) < 0)
|
||||
goto error;
|
||||
|
||||
/* Unregister the filter before closing the dataset. It should fail */
|
||||
@ -211,7 +220,7 @@ test_unregister_filters(hid_t fapl_id)
|
||||
goto error;
|
||||
|
||||
/* Write the data to the dataset */
|
||||
if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data) < 0)
|
||||
if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) < 0)
|
||||
goto error;
|
||||
|
||||
/* Close the dataset in the second file */
|
||||
@ -232,6 +241,9 @@ test_unregister_filters(hid_t fapl_id)
|
||||
if(H5Fclose(fid2) < 0)
|
||||
goto error;
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
|
||||
@ -247,6 +259,9 @@ error:
|
||||
H5Sclose(sid);
|
||||
} H5E_END_TRY;
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
|
161
test/vds.c
161
test/vds.c
@ -1134,11 +1134,11 @@ error:
|
||||
static int
|
||||
test_vds_prefix_first(unsigned config, hid_t fapl)
|
||||
{
|
||||
char srcfilename[FILENAME_BUF_SIZE];
|
||||
char srcfilename_map[FILENAME_BUF_SIZE];
|
||||
char vfilename[FILENAME_BUF_SIZE];
|
||||
char srcfilenamepct[FILENAME_BUF_SIZE];
|
||||
char srcfilenamepct_map[FILENAME_BUF_SIZE];
|
||||
char *srcfilename = NULL;
|
||||
char *srcfilename_map = NULL;
|
||||
char *vfilename = NULL;
|
||||
char *srcfilenamepct = NULL;
|
||||
char *srcfilenamepct_map = NULL;
|
||||
const char *srcfilenamepct_map_orig = "vds%%%%_src";
|
||||
hid_t srcfile[4] = {-1, -1, -1, -1}; /* Files with source dsets */
|
||||
hid_t vfile = -1; /* File with virtual dset */
|
||||
@ -1158,11 +1158,22 @@ test_vds_prefix_first(unsigned config, hid_t fapl)
|
||||
|
||||
TESTING("basic virtual dataset I/O via H5Pset_vds_prefix(): all selection")
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, vfilename, sizeof vfilename);
|
||||
h5_fixname(FILENAME[8], fapl, srcfilename, sizeof srcfilename);
|
||||
h5_fixname_printf(FILENAME[8], fapl, srcfilename_map, sizeof srcfilename_map);
|
||||
h5_fixname(FILENAME[10], fapl, srcfilenamepct, sizeof srcfilenamepct);
|
||||
h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, sizeof srcfilenamepct_map);
|
||||
if((srcfilename = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilename_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((vfilename = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilenamepct = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilenamepct_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, vfilename, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[8], fapl, srcfilename, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(FILENAME[8], fapl, srcfilename_map, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[10], fapl, srcfilenamepct, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, FILENAME_BUF_SIZE);
|
||||
|
||||
/* create tmp directory and get current working directory path */
|
||||
if (HDmkdir(TMPDIR, (mode_t)0755) < 0 && errno != EEXIST)
|
||||
@ -1346,6 +1357,12 @@ test_vds_prefix_first(unsigned config, hid_t fapl)
|
||||
TEST_ERROR
|
||||
dcpl = -1;
|
||||
|
||||
HDfree(srcfilename);
|
||||
HDfree(srcfilename_map);
|
||||
HDfree(vfilename);
|
||||
HDfree(srcfilenamepct);
|
||||
HDfree(srcfilenamepct_map);
|
||||
|
||||
PASSED();
|
||||
return 0;
|
||||
|
||||
@ -1369,6 +1386,12 @@ test_vds_prefix_first(unsigned config, hid_t fapl)
|
||||
if(HDsetenv("HDF5_VDS_PREFIX", "", 1) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
HDfree(srcfilename);
|
||||
HDfree(srcfilename_map);
|
||||
HDfree(vfilename);
|
||||
HDfree(srcfilenamepct);
|
||||
HDfree(srcfilenamepct_map);
|
||||
|
||||
return 1;
|
||||
} /* end test_vds_prefix */
|
||||
|
||||
@ -1386,12 +1409,12 @@ test_vds_prefix_first(unsigned config, hid_t fapl)
|
||||
static int
|
||||
test_basic_io(unsigned config, hid_t fapl)
|
||||
{
|
||||
char srcfilename[FILENAME_BUF_SIZE];
|
||||
char srcfilename_map[FILENAME_BUF_SIZE];
|
||||
char vfilename[FILENAME_BUF_SIZE];
|
||||
char vfilename2[FILENAME_BUF_SIZE];
|
||||
char srcfilenamepct[FILENAME_BUF_SIZE];
|
||||
char srcfilenamepct_map[FILENAME_BUF_SIZE];
|
||||
char *srcfilename = NULL;
|
||||
char *srcfilename_map = NULL;
|
||||
char *vfilename = NULL;
|
||||
char *vfilename2 = NULL;
|
||||
char *srcfilenamepct = NULL;
|
||||
char *srcfilenamepct_map = NULL;
|
||||
const char *srcfilenamepct_map_orig = "vds%%%%_src";
|
||||
hid_t srcfile[4] = {-1, -1, -1, -1}; /* Files with source dsets */
|
||||
hid_t vfile = -1; /* File with virtual dset */
|
||||
@ -1419,12 +1442,25 @@ test_basic_io(unsigned config, hid_t fapl)
|
||||
|
||||
TESTING("basic virtual dataset I/O")
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, vfilename, sizeof vfilename);
|
||||
h5_fixname(FILENAME[1], fapl, vfilename2, sizeof vfilename2);
|
||||
h5_fixname(FILENAME[2], fapl, srcfilename, sizeof srcfilename);
|
||||
h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, sizeof srcfilename_map);
|
||||
h5_fixname(FILENAME[4], fapl, srcfilenamepct, sizeof srcfilenamepct);
|
||||
h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, sizeof srcfilenamepct_map);
|
||||
if((srcfilename = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilename_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((vfilename = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((vfilename2 = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilenamepct = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilenamepct_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, vfilename, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[1], fapl, vfilename2, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[2], fapl, srcfilename, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[4], fapl, srcfilenamepct, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, FILENAME_BUF_SIZE);
|
||||
|
||||
/* Create DCPL */
|
||||
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0)
|
||||
@ -4227,6 +4263,13 @@ test_basic_io(unsigned config, hid_t fapl)
|
||||
TEST_ERROR
|
||||
dcpl = -1;
|
||||
|
||||
HDfree(srcfilename);
|
||||
HDfree(srcfilename_map);
|
||||
HDfree(vfilename);
|
||||
HDfree(vfilename2);
|
||||
HDfree(srcfilenamepct);
|
||||
HDfree(srcfilenamepct_map);
|
||||
|
||||
PASSED();
|
||||
return 0;
|
||||
|
||||
@ -4247,6 +4290,13 @@ error:
|
||||
H5Pclose(dcpl);
|
||||
} H5E_END_TRY;
|
||||
|
||||
HDfree(srcfilename);
|
||||
HDfree(srcfilename_map);
|
||||
HDfree(vfilename);
|
||||
HDfree(vfilename2);
|
||||
HDfree(srcfilenamepct);
|
||||
HDfree(srcfilenamepct_map);
|
||||
|
||||
return 1;
|
||||
} /* end test_basic_io() */
|
||||
|
||||
@ -7286,15 +7336,15 @@ error:
|
||||
static int
|
||||
test_printf(unsigned config, hid_t fapl)
|
||||
{
|
||||
char srcfilename[FILENAME_BUF_SIZE];
|
||||
char srcfilename_map[FILENAME_BUF_SIZE];
|
||||
char srcfilename2[FILENAME_BUF_SIZE];
|
||||
char srcfilename2_map[FILENAME_BUF_SIZE];
|
||||
char vfilename[FILENAME_BUF_SIZE];
|
||||
char printf_srcfilename_map[FILENAME_BUF_SIZE];
|
||||
char *srcfilename = NULL;
|
||||
char *srcfilename_map = NULL;
|
||||
char *srcfilename2 = NULL;
|
||||
char *srcfilename2_map = NULL;
|
||||
char *vfilename = NULL;
|
||||
char *printf_srcfilename_map = NULL;
|
||||
char *srcfilenamepct = NULL;
|
||||
char *srcfilenamepct_map = NULL;
|
||||
const char *printf_srcfilename_map_orig = "vds_src_%b";
|
||||
char srcfilenamepct[FILENAME_BUF_SIZE];
|
||||
char srcfilenamepct_map[FILENAME_BUF_SIZE];
|
||||
const char *srcfilenamepct_map_orig = "vds%%%%_src";
|
||||
hid_t srcfile[4] = {-1, -1, -1, -1}; /* Files with source dsets */
|
||||
hid_t vfile = -1; /* File with virtual dset */
|
||||
@ -7322,14 +7372,31 @@ test_printf(unsigned config, hid_t fapl)
|
||||
|
||||
TESTING("virtual dataset I/O with printf source")
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, vfilename, sizeof vfilename);
|
||||
h5_fixname(FILENAME[2], fapl, srcfilename, sizeof srcfilename);
|
||||
h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, sizeof srcfilename_map);
|
||||
h5_fixname(FILENAME[3], fapl, srcfilename2, sizeof srcfilename2);
|
||||
h5_fixname_printf(FILENAME[2], fapl, srcfilename2_map, sizeof srcfilename2_map);
|
||||
h5_fixname_printf(printf_srcfilename_map_orig, fapl, printf_srcfilename_map, sizeof printf_srcfilename_map);
|
||||
h5_fixname(FILENAME[4], fapl, srcfilenamepct, sizeof srcfilenamepct);
|
||||
h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, sizeof srcfilenamepct_map);
|
||||
if((srcfilename = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilename_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilename2 = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilename2_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((vfilename = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((printf_srcfilename_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilenamepct = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
if((srcfilenamepct_map = (char *)HDcalloc(FILENAME_BUF_SIZE, sizeof(char))) == NULL)
|
||||
TEST_ERROR;
|
||||
|
||||
h5_fixname(FILENAME[0], fapl, vfilename, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[2], fapl, srcfilename, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[3], fapl, srcfilename2, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(FILENAME[2], fapl, srcfilename2_map, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(printf_srcfilename_map_orig, fapl, printf_srcfilename_map, FILENAME_BUF_SIZE);
|
||||
h5_fixname(FILENAME[4], fapl, srcfilenamepct, FILENAME_BUF_SIZE);
|
||||
h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, FILENAME_BUF_SIZE);
|
||||
|
||||
/* Create DCPL */
|
||||
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0)
|
||||
@ -10940,6 +11007,15 @@ test_printf(unsigned config, hid_t fapl)
|
||||
TEST_ERROR
|
||||
memspace = -1;
|
||||
|
||||
HDfree(srcfilename);
|
||||
HDfree(srcfilename_map);
|
||||
HDfree(srcfilename2);
|
||||
HDfree(srcfilename2_map);
|
||||
HDfree(vfilename);
|
||||
HDfree(printf_srcfilename_map);
|
||||
HDfree(srcfilenamepct);
|
||||
HDfree(srcfilenamepct_map);
|
||||
|
||||
PASSED();
|
||||
return 0;
|
||||
|
||||
@ -10960,6 +11036,15 @@ error:
|
||||
H5Pclose(dapl);
|
||||
} H5E_END_TRY;
|
||||
|
||||
HDfree(srcfilename);
|
||||
HDfree(srcfilename_map);
|
||||
HDfree(srcfilename2);
|
||||
HDfree(srcfilename2_map);
|
||||
HDfree(vfilename);
|
||||
HDfree(printf_srcfilename_map);
|
||||
HDfree(srcfilenamepct);
|
||||
HDfree(srcfilenamepct_map);
|
||||
|
||||
return 1;
|
||||
} /* end test_printf() */
|
||||
|
||||
|
196
test/vfd.c
196
test/vfd.c
@ -842,8 +842,7 @@ error:
|
||||
*
|
||||
* Purpose: Tests the file handle interface for FAMILY driver
|
||||
*
|
||||
* Return: Success: 0
|
||||
* Failure: -1
|
||||
* Return: SUCCEED/FAIL
|
||||
*
|
||||
* Programmer: Raymond Lu
|
||||
* Tuesday, Sept 24, 2002
|
||||
@ -861,12 +860,21 @@ test_family(void)
|
||||
char dname[]="dataset";
|
||||
unsigned int i, j;
|
||||
int *fhandle=NULL, *fhandle2=NULL;
|
||||
int buf[FAMILY_NUMBER][FAMILY_SIZE];
|
||||
int **buf = NULL;
|
||||
int *buf_data = NULL;
|
||||
hsize_t dims[2]={FAMILY_NUMBER, FAMILY_SIZE};
|
||||
hsize_t file_size;
|
||||
|
||||
TESTING("FAMILY file driver");
|
||||
|
||||
/* Set up data array */
|
||||
if(NULL == (buf_data = (int *)HDcalloc(FAMILY_NUMBER * FAMILY_SIZE, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (buf = (int **)HDcalloc(FAMILY_NUMBER, sizeof(buf_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < FAMILY_NUMBER; i++)
|
||||
buf[i] = buf_data + (i * FAMILY_SIZE);
|
||||
|
||||
/* Set property list and file name for FAMILY driver */
|
||||
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -890,7 +898,7 @@ test_family(void)
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA))
|
||||
TEST_ERROR
|
||||
|
||||
if((file=H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if(H5Fclose(file) < 0)
|
||||
@ -905,7 +913,7 @@ test_family(void)
|
||||
if(H5Pset_fapl_family(fapl, (hsize_t)H5F_FAMILY_DEFAULT, H5P_DEFAULT) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if((file=H5Fopen(filename, H5F_ACC_RDWR, fapl)) < 0)
|
||||
if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Check file size API */
|
||||
@ -917,7 +925,7 @@ test_family(void)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Create and write dataset */
|
||||
if((space=H5Screate_simple(2, dims, NULL)) < 0)
|
||||
if((space = H5Screate_simple(2, dims, NULL)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Retrieve the access property list... */
|
||||
@ -932,14 +940,14 @@ test_family(void)
|
||||
if (H5Pclose(access_fapl) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if((dset=H5Dcreate2(file, dname, H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
if((dset = H5Dcreate2(file, dname, H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
for(i = 0; i < FAMILY_NUMBER; i++)
|
||||
for(j = 0; j < FAMILY_SIZE; j++)
|
||||
buf[i][j] = (int)((i * 10000) + j);
|
||||
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* check file handle API */
|
||||
@ -1004,8 +1012,11 @@ test_family(void)
|
||||
if(H5Pclose(fapl) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
PASSED();
|
||||
return 0;
|
||||
return SUCCEED;
|
||||
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
@ -1015,8 +1026,12 @@ error:
|
||||
H5Pclose(fapl2);
|
||||
H5Fclose(file);
|
||||
} H5E_END_TRY;
|
||||
return -1;
|
||||
}
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
return FAIL;
|
||||
} /* end test_family() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -1136,8 +1151,7 @@ error:
|
||||
*
|
||||
* Purpose: Actually use the member fapl input to the member vfd.
|
||||
*
|
||||
* Return: Success: 0
|
||||
* Failure: -1
|
||||
* Return: SUCCEED/FAIL
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
* 21 May 2019
|
||||
@ -1147,108 +1161,91 @@ error:
|
||||
static herr_t
|
||||
test_family_member_fapl(void)
|
||||
{
|
||||
hid_t file = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t memb_fapl_id = H5I_INVALID_HID;
|
||||
hid_t space = H5I_INVALID_HID;
|
||||
hid_t dset = H5I_INVALID_HID;
|
||||
hid_t file = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t memb_fapl_id = H5I_INVALID_HID;
|
||||
hid_t space = H5I_INVALID_HID;
|
||||
hid_t dset = H5I_INVALID_HID;
|
||||
char filename[1024];
|
||||
char dname[] = "dataset";
|
||||
unsigned i = 0;
|
||||
unsigned j = 0;
|
||||
int buf[FAMILY_NUMBER][FAMILY_SIZE];
|
||||
hsize_t dims[2] = {FAMILY_NUMBER, FAMILY_SIZE};
|
||||
char dname[] = "dataset";
|
||||
unsigned i = 0;
|
||||
unsigned j = 0;
|
||||
int **buf = NULL;
|
||||
int *buf_data = NULL;
|
||||
hsize_t dims[2] = {FAMILY_NUMBER, FAMILY_SIZE};
|
||||
|
||||
TESTING("Family member FAPL");
|
||||
|
||||
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
|
||||
if (H5I_INVALID_HID == fapl_id) {
|
||||
/* Set up data array */
|
||||
if(NULL == (buf_data = (int *)HDcalloc(FAMILY_NUMBER * FAMILY_SIZE, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
}
|
||||
memb_fapl_id = H5Pcreate(H5P_FILE_ACCESS);
|
||||
if (H5I_INVALID_HID == memb_fapl_id) {
|
||||
if(NULL == (buf = (int **)HDcalloc(FAMILY_NUMBER, sizeof(buf_data))))
|
||||
TEST_ERROR;
|
||||
}
|
||||
if (H5Pset_fapl_sec2(memb_fapl_id) == FAIL) {
|
||||
for (i = 0; i < FAMILY_NUMBER; i++)
|
||||
buf[i] = buf_data + (i * FAMILY_SIZE);
|
||||
|
||||
if((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) == H5I_INVALID_HID)
|
||||
TEST_ERROR;
|
||||
}
|
||||
if (H5Pset_fapl_family(fapl_id, (hsize_t)FAMILY_SIZE, memb_fapl_id) == FAIL) {
|
||||
|
||||
if((memb_fapl_id = H5Pcreate(H5P_FILE_ACCESS)) == H5I_INVALID_HID)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
if (H5Pset_fapl_sec2(memb_fapl_id) == FAIL)
|
||||
TEST_ERROR;
|
||||
if (H5Pset_fapl_family(fapl_id, (hsize_t)FAMILY_SIZE, memb_fapl_id) == FAIL)
|
||||
TEST_ERROR;
|
||||
|
||||
h5_fixname(FILENAME[2], fapl_id, filename, sizeof(filename));
|
||||
|
||||
file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id);
|
||||
if (H5I_INVALID_HID == file) {
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) == H5I_INVALID_HID)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
space = H5Screate_simple(2, dims, NULL);
|
||||
if (H5I_INVALID_HID == space) {
|
||||
if((space = H5Screate_simple(2, dims, NULL)) == H5I_INVALID_HID)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
/* Create and write to dataset, then close file.
|
||||
*/
|
||||
dset = H5Dcreate2(
|
||||
file,
|
||||
dname,
|
||||
H5T_NATIVE_INT,
|
||||
space,
|
||||
H5P_DEFAULT,
|
||||
H5P_DEFAULT,
|
||||
H5P_DEFAULT);
|
||||
if (H5I_INVALID_HID == dset) {
|
||||
if((dset = H5Dcreate2(file, dname, H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) == H5I_INVALID_HID)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
for (i = 0; i < FAMILY_NUMBER; i++) {
|
||||
for (j = 0; j < FAMILY_SIZE; j++) {
|
||||
buf[i][j] = (int)((i * 10000) + j);
|
||||
}
|
||||
}
|
||||
if (H5Dwrite(dset,
|
||||
H5T_NATIVE_INT,
|
||||
H5S_ALL,
|
||||
H5S_ALL,
|
||||
H5P_DEFAULT,
|
||||
buf)
|
||||
== FAIL)
|
||||
{
|
||||
|
||||
if (H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
if (H5Dclose(dset) == FAIL) {
|
||||
|
||||
if (H5Dclose(dset) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
if (H5Sclose(space) == FAIL) {
|
||||
if (H5Sclose(space) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
if (H5Fclose(file) == FAIL) {
|
||||
if (H5Fclose(file) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
/* "Close" member FAPL at top level and re-open file.
|
||||
* Should succeed, with library managing reference count properly
|
||||
*/
|
||||
if (H5Pclose(memb_fapl_id) == FAIL) {
|
||||
if (H5Pclose(memb_fapl_id) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id);
|
||||
if (H5I_INVALID_HID == file) {
|
||||
if ((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) == H5I_INVALID_HID)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
if (H5Fclose(file) == FAIL) {
|
||||
if (H5Fclose(file) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
h5_delete_test_file(FILENAME[2], fapl_id);
|
||||
|
||||
if (H5Pclose(fapl_id) == FAIL) {
|
||||
if (H5Pclose(fapl_id) == FAIL)
|
||||
TEST_ERROR;
|
||||
}
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
PASSED();
|
||||
return 0;
|
||||
return SUCCEED;
|
||||
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
@ -1259,7 +1256,10 @@ error:
|
||||
H5Fclose(file);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return -1;
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
return FAIL;
|
||||
} /* end test_family_member_fapl() */
|
||||
|
||||
|
||||
@ -1337,10 +1337,19 @@ test_multi(void)
|
||||
char dname[]="dataset";
|
||||
char meta[] = "this is some metadata on this file";
|
||||
int i, j;
|
||||
int buf[MULTI_SIZE][MULTI_SIZE];
|
||||
int **buf = NULL;
|
||||
int *buf_data = NULL;
|
||||
|
||||
TESTING("MULTI file driver");
|
||||
|
||||
/* Set up data array */
|
||||
if(NULL == (buf_data = (int *)HDcalloc(MULTI_SIZE * MULTI_SIZE, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (buf = (int **)HDcalloc(MULTI_SIZE, sizeof(buf_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < MULTI_SIZE; i++)
|
||||
buf[i] = buf_data + (i * MULTI_SIZE);
|
||||
|
||||
/* Set file access property list for MULTI driver */
|
||||
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -1443,7 +1452,7 @@ test_multi(void)
|
||||
for(i=0; i<MULTI_SIZE; i++)
|
||||
for(j=0; j<MULTI_SIZE; j++)
|
||||
buf[i][j] = i*10000+j;
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if((fapl2=H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
@ -1521,6 +1530,9 @@ test_multi(void)
|
||||
if(H5Pclose(fapl) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
PASSED();
|
||||
|
||||
return SUCCEED;
|
||||
@ -1534,6 +1546,10 @@ error:
|
||||
H5Fclose(file);
|
||||
H5Aclose(attr);
|
||||
} H5E_END_TRY;
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
return FAIL;
|
||||
} /* end test_multi() */
|
||||
|
||||
@ -1572,10 +1588,19 @@ test_multi_compat(void)
|
||||
char sv[H5FD_MEM_NTYPES][32];
|
||||
hsize_t dims[2]={MULTI_SIZE, MULTI_SIZE};
|
||||
int i, j;
|
||||
int buf[MULTI_SIZE][MULTI_SIZE];
|
||||
int **buf = NULL;
|
||||
int *buf_data = NULL;
|
||||
|
||||
TESTING("MULTI file driver backward compatibility");
|
||||
|
||||
/* Set up data array */
|
||||
if(NULL == (buf_data = (int *)HDcalloc(MULTI_SIZE * MULTI_SIZE, sizeof(int))))
|
||||
TEST_ERROR;
|
||||
if(NULL == (buf = (int **)HDcalloc(MULTI_SIZE, sizeof(buf_data))))
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < MULTI_SIZE; i++)
|
||||
buf[i] = buf_data + (i * MULTI_SIZE);
|
||||
|
||||
/* Set file access property list for MULTI driver */
|
||||
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -1659,7 +1684,7 @@ test_multi_compat(void)
|
||||
for(i=0; i<MULTI_SIZE; i++)
|
||||
for(j=0; j<MULTI_SIZE; j++)
|
||||
buf[i][j] = i*10000+j;
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if(H5Dclose(dset) < 0)
|
||||
@ -1697,9 +1722,12 @@ test_multi_compat(void)
|
||||
if(H5Pclose(fapl) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
PASSED();
|
||||
|
||||
return 0;
|
||||
return SUCCEED;
|
||||
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
@ -1708,8 +1736,12 @@ error:
|
||||
H5Pclose(fapl);
|
||||
H5Fclose(file);
|
||||
} H5E_END_TRY;
|
||||
return -1;
|
||||
}
|
||||
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
return FAIL;
|
||||
} /* end test_multi_compat() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
|
@ -72,7 +72,7 @@ uint64_t swap_uint64(uint64_t val);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct Options opt;
|
||||
struct Options *opt;
|
||||
int outfile_named = FALSE;
|
||||
int token;
|
||||
int i;
|
||||
@ -99,8 +99,8 @@ int main(int argc, char *argv[])
|
||||
(void) HDsetvbuf(stderr, (char *) NULL, _IOLBF, 0);
|
||||
(void) HDsetvbuf(stdout, (char *) NULL, _IOLBF, 0);
|
||||
|
||||
/* Initialize the file structure to 0 */
|
||||
HDmemset(&opt, 0, sizeof(struct Options));
|
||||
if((opt = (struct Options *)HDcalloc(1, sizeof(struct Options))) == NULL)
|
||||
goto err;
|
||||
|
||||
if (argv[1] && (HDstrcmp("-V", argv[1]) == 0)) {
|
||||
print_version(PROGRAMNAME);
|
||||
@ -130,12 +130,12 @@ int main(int argc, char *argv[])
|
||||
switch (state) {
|
||||
|
||||
case 1: /* counting input files */
|
||||
if (opt.fcount < 29) {
|
||||
(void) HDstrcpy(opt.infiles[opt.fcount].datafile, argv[i]);
|
||||
in = &(opt.infiles[opt.fcount].in);
|
||||
opt.infiles[opt.fcount].config = 0;
|
||||
setDefaultValues(in, opt.fcount);
|
||||
opt.fcount++;
|
||||
if (opt->fcount < 29) {
|
||||
(void) HDstrcpy(opt->infiles[opt->fcount].datafile, argv[i]);
|
||||
in = &(opt->infiles[opt->fcount].in);
|
||||
opt->infiles[opt->fcount].config = 0;
|
||||
setDefaultValues(in, opt->fcount);
|
||||
opt->fcount++;
|
||||
}
|
||||
else {
|
||||
(void) HDfprintf(stderr, err9, argv[i]);
|
||||
@ -148,8 +148,8 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 3: /* get configfile name */
|
||||
(void) HDstrcpy(opt.infiles[opt.fcount-1].configfile, argv[i]);
|
||||
opt.infiles[opt.fcount - 1].config = 1;
|
||||
(void) HDstrcpy(opt->infiles[opt->fcount-1].configfile, argv[i]);
|
||||
opt->infiles[opt->fcount - 1].config = 1;
|
||||
break;
|
||||
|
||||
case 4: /* -o found; look for outfile */
|
||||
@ -160,7 +160,7 @@ int main(int argc, char *argv[])
|
||||
(void) HDfprintf(stderr, err10, argv[i]);
|
||||
goto err;
|
||||
}
|
||||
(void) HDstrcpy(opt.outfile, argv[i]);
|
||||
(void) HDstrcpy(opt->outfile, argv[i]);
|
||||
outfile_named = TRUE;
|
||||
break;
|
||||
|
||||
@ -232,11 +232,11 @@ int main(int argc, char *argv[])
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (process(&opt) == -1)
|
||||
if (process(opt) == -1)
|
||||
goto err;
|
||||
|
||||
for (i = 0; i < opt.fcount; i++) {
|
||||
in = &(opt.infiles[i].in);
|
||||
for (i = 0; i < opt->fcount; i++) {
|
||||
in = &(opt->infiles[i].in);
|
||||
if (in->sizeOfDimension)
|
||||
HDfree(in->sizeOfDimension);
|
||||
if (in->sizeOfChunk)
|
||||
@ -248,12 +248,13 @@ int main(int argc, char *argv[])
|
||||
if (in->data)
|
||||
HDfree(in->data);
|
||||
}
|
||||
HDfree(opt);
|
||||
|
||||
return (EXIT_SUCCESS);
|
||||
return EXIT_SUCCESS;
|
||||
err:
|
||||
(void) HDfprintf(stderr, "%s", err4);
|
||||
for (i = 0; i < opt.fcount; i++) {
|
||||
in = &(opt.infiles[i].in);
|
||||
for (i = 0; i < opt->fcount; i++) {
|
||||
in = &(opt->infiles[i].in);
|
||||
if (in->sizeOfDimension)
|
||||
HDfree(in->sizeOfDimension);
|
||||
if (in->sizeOfChunk)
|
||||
@ -265,7 +266,9 @@ err:
|
||||
if (in->data)
|
||||
HDfree(in->data);
|
||||
}
|
||||
return (EXIT_FAILURE);
|
||||
HDfree(opt);
|
||||
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
static int gtoken(char *s)
|
||||
|
@ -463,10 +463,23 @@ gent_dataset(void)
|
||||
{
|
||||
hid_t fid, dataset, space;
|
||||
hsize_t dims[2];
|
||||
int dset1[10][20];
|
||||
double dset2[30][20];
|
||||
int **dset1 = NULL;
|
||||
int *dset1_data = NULL;
|
||||
double **dset2 = NULL;
|
||||
double *dset2_data = NULL;
|
||||
int i, j;
|
||||
|
||||
/* Set up data arrays */
|
||||
dset1_data = (int *)HDcalloc(10 * 20, sizeof(int));
|
||||
dset1 = (int **)HDcalloc(10, sizeof(dset1_data));
|
||||
for (i = 0; i < 10; i++)
|
||||
dset1[i] = dset1_data + (i * 20);
|
||||
|
||||
dset2_data = (double *)HDcalloc(30 * 20, sizeof(double));
|
||||
dset2 = (double **)HDcalloc(30, sizeof(dset2_data));
|
||||
for (i = 0; i < 30; i++)
|
||||
dset2[i] = dset2_data + (i * 20);
|
||||
|
||||
fid = H5Fcreate(FILE2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/* dset1 */
|
||||
@ -478,7 +491,7 @@ gent_dataset(void)
|
||||
for(j = 0; j < 20; j++)
|
||||
dset1[i][j] = j + i;
|
||||
|
||||
H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset1);
|
||||
H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset1_data);
|
||||
H5Sclose(space);
|
||||
H5Dclose(dataset);
|
||||
|
||||
@ -491,11 +504,16 @@ gent_dataset(void)
|
||||
for(j = 0; j < 20; j++)
|
||||
dset2[i][j] = 0.0001F * (float)j + (float)i;
|
||||
|
||||
H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2);
|
||||
H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_data);
|
||||
|
||||
H5Sclose(space);
|
||||
H5Dclose(dataset);
|
||||
H5Fclose(fid);
|
||||
|
||||
HDfree(dset1);
|
||||
HDfree(dset1_data);
|
||||
HDfree(dset2);
|
||||
HDfree(dset2_data);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1773,9 +1791,17 @@ static void gent_str(void) {
|
||||
int a[8][10];
|
||||
char s[12][33];
|
||||
} compound_t;
|
||||
compound_t comp1[3][6];
|
||||
|
||||
compound_t **comp1 = NULL;
|
||||
compound_t *comp1_data = NULL;
|
||||
hsize_t mdims[2];
|
||||
|
||||
/* Set up data array */
|
||||
comp1_data = (compound_t *)HDcalloc(3 * 6, sizeof(compound_t));
|
||||
comp1 = (compound_t **)HDcalloc(3, sizeof(comp1_data));
|
||||
for (i = 0; i < 3; i++)
|
||||
comp1[i] = comp1_data + (i * 6);
|
||||
|
||||
fid = H5Fcreate(FILE13, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/* string 1 : nullterm string */
|
||||
@ -1861,7 +1887,7 @@ static void gent_str(void) {
|
||||
}
|
||||
|
||||
dataset = H5Dcreate2(fid, "/comp1", f_type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
H5Dwrite(dataset, f_type2, H5S_ALL, H5S_ALL, H5P_DEFAULT, comp1);
|
||||
H5Dwrite(dataset, f_type2, H5S_ALL, H5S_ALL, H5P_DEFAULT, comp1_data);
|
||||
|
||||
H5Tclose(f_type);
|
||||
H5Tclose(f_type2);
|
||||
@ -1869,6 +1895,9 @@ static void gent_str(void) {
|
||||
H5Dclose(dataset);
|
||||
|
||||
H5Fclose(fid);
|
||||
|
||||
HDfree(comp1);
|
||||
HDfree(comp1_data);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -3748,9 +3777,15 @@ void gent_multi(void)
|
||||
H5FD_mem_t mt, memb_map[H5FD_MEM_NTYPES];
|
||||
hid_t memb_fapl[H5FD_MEM_NTYPES];
|
||||
const char *memb_name[H5FD_MEM_NTYPES];
|
||||
char sv[H5FD_MEM_NTYPES][1024];
|
||||
char **sv = NULL;
|
||||
char *sv_data = NULL;
|
||||
haddr_t memb_addr[H5FD_MEM_NTYPES];
|
||||
|
||||
sv_data = (char *)HDcalloc(H5FD_MEM_NTYPES * 1024, sizeof(char));
|
||||
sv = (char **)HDcalloc(H5FD_MEM_NTYPES, sizeof(sv_data));
|
||||
for (i = 0; i < H5FD_MEM_NTYPES; i++)
|
||||
sv[i] = sv_data + (i * 1024);
|
||||
|
||||
fapl = H5Pcreate(H5P_FILE_ACCESS);
|
||||
|
||||
HDmemset(memb_map, 0, sizeof memb_map);
|
||||
@ -3791,6 +3826,9 @@ void gent_multi(void)
|
||||
H5Dclose(dataset);
|
||||
H5Fclose(fid);
|
||||
H5Pclose(fapl);
|
||||
|
||||
HDfree(sv);
|
||||
HDfree(sv_data);
|
||||
}
|
||||
|
||||
static void gent_large_objname(void)
|
||||
@ -7959,7 +7997,7 @@ static void gent_compound_attr_intsizes(void) {
|
||||
int64_t dset64[F70_XDIM][F70_YDIM64];
|
||||
double dsetdbl[F70_XDIM][F70_YDIM8];
|
||||
} Array1Struct;
|
||||
Array1Struct Array1[F70_LENGTH];
|
||||
Array1Struct *Array1 = NULL;
|
||||
|
||||
hid_t Array1Structid; /* File datatype identifier */
|
||||
herr_t status; /* Error checking variable */
|
||||
@ -7967,6 +8005,8 @@ static void gent_compound_attr_intsizes(void) {
|
||||
|
||||
int m, n, o; /* Array init loop vars */
|
||||
|
||||
Array1 = (Array1Struct *)HDcalloc(F70_LENGTH, sizeof(Array1Struct));
|
||||
|
||||
/* Initialize the data in the arrays/datastructure */
|
||||
for (m = 0; m < F70_LENGTH; m++) {
|
||||
|
||||
@ -8198,6 +8238,8 @@ static void gent_compound_attr_intsizes(void) {
|
||||
|
||||
status = H5Fclose(fid);
|
||||
HDassert(status >= 0);
|
||||
|
||||
HDfree(Array1);
|
||||
}
|
||||
|
||||
static void gent_nested_compound_dt(void) { /* test nested data type */
|
||||
|
@ -25,7 +25,8 @@
|
||||
#define FAMILY_SIZE 1024
|
||||
#define FILENAME "family_file%05d.h5"
|
||||
|
||||
static int buf[FAMILY_NUMBER][FAMILY_SIZE];
|
||||
int **buf = NULL;
|
||||
int *buf_data = NULL;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
@ -34,66 +35,82 @@ int main(void)
|
||||
int i, j;
|
||||
hsize_t dims[2]={FAMILY_NUMBER, FAMILY_SIZE};
|
||||
|
||||
/* Set up data array */
|
||||
if(NULL == (buf_data = (int *)HDcalloc(FAMILY_NUMBER * FAMILY_SIZE, sizeof(int)))) {
|
||||
HDperror("HDcalloc");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
if(NULL == (buf = (int **)HDcalloc(FAMILY_NUMBER, sizeof(buf_data)))) {
|
||||
HDperror("HDcalloc");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
for (i = 0; i < FAMILY_NUMBER; i++)
|
||||
buf[i] = buf_data + (i * FAMILY_SIZE);
|
||||
|
||||
/* Set property list and file name for FAMILY driver */
|
||||
if ((fapl=H5Pcreate(H5P_FILE_ACCESS)) < 0) {
|
||||
perror ("H5Pcreate");
|
||||
exit (EXIT_FAILURE);
|
||||
if ((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0) {
|
||||
HDperror("H5Pcreate");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(H5Pset_fapl_family(fapl, (hsize_t)FAMILY_SIZE, H5P_DEFAULT) < 0) {
|
||||
perror ("H5Pset_fapl_family");
|
||||
exit (EXIT_FAILURE);
|
||||
HDperror("H5Pset_fapl_family");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if((file = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) {
|
||||
perror("H5Fcreate");
|
||||
exit(EXIT_FAILURE);
|
||||
HDperror("H5Fcreate");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Create and write dataset */
|
||||
if((space = H5Screate_simple(2, dims, NULL)) < 0) {
|
||||
perror("H5Screate_simple");
|
||||
exit(EXIT_FAILURE);
|
||||
HDperror("H5Screate_simple");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
if((dset = H5Dcreate2(file, dname, H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
|
||||
perror("H5Dcreate2");
|
||||
exit(EXIT_FAILURE);
|
||||
HDperror("H5Dcreate2");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
for(i = 0; i<FAMILY_NUMBER; i++)
|
||||
for(j = 0; j<FAMILY_SIZE; j++)
|
||||
for(i = 0; i < FAMILY_NUMBER; i++)
|
||||
for(j = 0; j < FAMILY_SIZE; j++)
|
||||
buf[i][j] = i * 10000 + j;
|
||||
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0) {
|
||||
perror("H5Dwrite");
|
||||
exit(EXIT_FAILURE);
|
||||
if(H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf_data) < 0) {
|
||||
HDperror("H5Dwrite");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
if(H5Sclose(space) < 0) {
|
||||
perror ("H5Sclose");
|
||||
exit (EXIT_FAILURE);
|
||||
HDperror("H5Sclose");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(H5Dclose(dset) < 0) {
|
||||
perror ("H5Dclose");
|
||||
exit (EXIT_FAILURE);
|
||||
HDperror("H5Dclose");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(H5Pclose(fapl) < 0) {
|
||||
perror ("H5Pclose");
|
||||
exit (EXIT_FAILURE);
|
||||
HDperror("H5Pclose");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(H5Fclose(file) < 0) {
|
||||
perror ("H5Fclose");
|
||||
exit (EXIT_FAILURE);
|
||||
HDperror("H5Fclose");
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
puts(" PASSED"); fflush(stdout);
|
||||
HDfree(buf);
|
||||
HDfree(buf_data);
|
||||
|
||||
return 0;
|
||||
HDputs(" PASSED");
|
||||
HDfflush(stdout);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user