From 40f94033649decaa49f935c81561973f868664a0 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 12 Nov 1998 19:28:58 -0500 Subject: [svn-r905] Added test for writing dataset region references. --- test/trefer.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 185 insertions(+), 1 deletion(-) diff --git a/test/trefer.c b/test/trefer.c index c69d8ce..c72b5d8 100644 --- a/test/trefer.c +++ b/test/trefer.c @@ -35,6 +35,15 @@ static char RcsId[] = "$Revision$"; #define SPACE1_RANK 1 #define SPACE1_DIM1 4 +/* 2-D dataset with fixed dimensions */ +#define SPACE2_NAME "Space2" +#define SPACE2_RANK 2 +#define SPACE2_DIM1 10 +#define SPACE2_DIM2 10 + +/* Element selection information */ +#define POINT1_NPOINTS 10 + /**************************************************************** ** ** test_reference_obj(): Test basic H5R (reference) object reference code. @@ -180,10 +189,184 @@ test_reference_obj(void) /* Free memory buffers */ free(wbuf); free(rbuf); + free(tbuf); } /* test_reference_obj() */ /**************************************************************** ** +** test_reference_region(): Test basic H5R (reference) object reference code. +** Tests references to various kinds of objects +** +****************************************************************/ +static void +test_reference_region(void) +{ + hid_t fid1; /* HDF5 File IDs */ + hid_t dset1, /* Dataset ID */ + dset2; /* Dereferenced dataset ID */ + hid_t sid1, /* Dataspace ID #1 */ + sid2; /* Dataspace ID #2 */ + hsize_t dims1[] = {SPACE1_DIM1}, + dims2[] = {SPACE2_DIM1, SPACE2_DIM2}; + hssize_t start[SPACE2_RANK]; /* Starting location of hyperslab */ + hsize_t stride[SPACE2_RANK]; /* Stride of hyperslab */ + hsize_t count[SPACE2_RANK]; /* Element count of hyperslab */ + hsize_t block[SPACE2_RANK]; /* Block size of hyperslab */ + hssize_t coord1[POINT1_NPOINTS][SPACE2_RANK]; /* Coordinates for point selection */ + hdset_reg_ref_t *wbuf, /* buffer to write to disk */ + *rbuf; /* buffer read from disk */ + uint8 *dwbuf, /* Buffer for writing numeric data to disk */ + *drbuf; /* Buffer for reading numeric data from disk */ + uint8 *tu8; /* Temporary pointer to uint8 data */ + intn i; /* counting variables */ + herr_t ret; /* Generic return value */ + + /* Output message about test being performed */ + MESSAGE(5, ("Testing Dataset Region Reference Functions\n")); + + /* Allocate write & read buffers */ + wbuf=malloc(sizeof(hdset_reg_ref_t)*SPACE1_DIM1); + rbuf=malloc(sizeof(hdset_reg_ref_t)*SPACE1_DIM1); + dwbuf=malloc(sizeof(uint8)*SPACE2_DIM1*SPACE2_DIM2); + drbuf=calloc(sizeof(uint8),SPACE2_DIM1*SPACE2_DIM2); + + /* Create file */ + fid1 = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + CHECK(fid1, FAIL, "H5Fcreate"); + + /* Create dataspace for datasets */ + sid2 = H5Screate_simple(SPACE2_RANK, dims2, NULL); + CHECK(sid2, FAIL, "H5Screate_simple"); + + /* Create a dataset */ + dset2=H5Dcreate(fid1,"Dataset2",H5T_STD_U8LE,sid2,H5P_DEFAULT); + CHECK(dset2, FAIL, "H5Dcreate"); + + for(tu8=dwbuf,i=0; i