[svn-r143] ./test/dsets.c

Added test for creation of chunked datasets.

./test/dsets.c
./test/istore.c
./test/tfile.c
	Template changes.

./test/th5p.c
	Accommodated changes to H5P.
This commit is contained in:
Robb Matzke 1997-12-11 13:49:26 -05:00
parent efc14a5341
commit dbf689c4e6
4 changed files with 153 additions and 95 deletions

View File

@ -16,6 +16,9 @@
#define AT() printf (" at %s:%d in %s()...\n", \
__FILE__, __LINE__, __FUNCTION__);
#define DSET_DEFAULT_NAME "default"
#define DSET_CHUNKED_NAME "chunked"
#define DSET_SIMPLE_IO_NAME "simple_io"
/*-------------------------------------------------------------------------
@ -37,9 +40,10 @@
static herr_t
test_create (hid_t file)
{
hid_t dataset, space;
hid_t dataset, space, create_parms;
intn dims[2];
herr_t status;
size_t csize[2];
printf ("%-70s", "Testing create/open/close");
@ -51,8 +55,11 @@ test_create (hid_t file)
status = H5Pset_space (space, 2, dims);
assert (status>=0);
/* Create the dataset */
dataset = H5Dcreate (file, "dataset_01", H5T_NATIVE_DOUBLE, space,
/*
* Create a dataset using the default dataset creation properties. We're
* not sure what they are, so we won't check.
*/
dataset = H5Dcreate (file, DSET_DEFAULT_NAME, H5T_NATIVE_DOUBLE, space,
H5C_DEFAULT);
if (dataset<0) {
puts ("*FAILED*");
@ -73,8 +80,11 @@ test_create (hid_t file)
goto error;
}
/* Try creating a dataset that already exists. This should fail. */
dataset = H5Dcreate (file, "dataset_01", H5T_NATIVE_DOUBLE, space,
/*
* Try creating a dataset that already exists. This should fail since a
* dataset can only be created once.
*/
dataset = H5Dcreate (file, DSET_DEFAULT_NAME, H5T_NATIVE_DOUBLE, space,
H5C_DEFAULT);
if (dataset>=0) {
puts ("*FAILED*");
@ -85,13 +95,16 @@ test_create (hid_t file)
goto error;
}
/* Try opening and closing an existing dataset */
dataset = H5Dopen (file, "dataset_01");
/*
* Open the dataset we created above and then close it. This is how
* existing datasets are accessed.
*/
dataset = H5Dopen (file, DSET_DEFAULT_NAME);
if (dataset<0) {
puts ("*FAILED*");
if (!isatty (1)) {
AT ();
printf (" Cannot open dataset `dataset_01'.\n");
printf (" Cannot open dataset `%s'.\n", DSET_DEFAULT_NAME);
}
goto error;
}
@ -104,7 +117,10 @@ test_create (hid_t file)
goto error;
}
/* Try opening a non-existent dataset. This should fail */
/*
* Try opening a non-existent dataset. This should fail since new datasets
* cannot be created with this function.
*/
dataset = H5Dopen (file, "does_not_exist");
if (dataset>=0) {
puts ("*FAILED*");
@ -114,6 +130,48 @@ test_create (hid_t file)
}
goto error;
}
/*
* Create a new dataset that uses chunked storage instead of the default
* layout.
*/
create_parms = H5Ccreate (H5C_DATASET_CREATE);
assert (create_parms>=0);
status = H5Cset_prop (create_parms, H5D_LAYOUT, H5D_CHUNKED);
assert (status>=0);
status = H5Cset_prop (create_parms, H5D_CHUNK_NDIMS, 2);
assert (status>=0);
csize[0] = 5;
csize[1] = 100;
status = H5Cset_prop (create_parms, H5D_CHUNK_SIZE, csize);
assert (status>=0);
dataset = H5Dcreate (file, DSET_CHUNKED_NAME, H5T_NATIVE_DOUBLE, space,
create_parms);
if (dataset<0) {
puts ("*FAILED*");
if (!isatty (1)) {
AT ();
printf (" Could not create a chunked dataset.\n");
}
goto error;
}
/*
* Close the chunked dataset.
*/
if (H5Dclose (dataset)<0) {
puts ("*FAILED*");
if (!isatty (1)) {
AT ();
printf (" Cannot close chunked dataset.\n");
}
goto error;
}
puts (" PASSED");
return SUCCEED;
@ -167,7 +225,7 @@ test_simple_io (hid_t file)
assert (status>=0);
/* Create the dataset */
dataset = H5Dcreate (file, "dataset_02", H5T_NATIVE_INT, space,
dataset = H5Dcreate (file, DSET_SIMPLE_IO_NAME, H5T_NATIVE_INT, space,
H5C_DEFAULT);
assert (dataset>=0);

View File

@ -523,7 +523,7 @@ main (int argc, char *argv[])
herr_t status;
int nerrors = 0;
uintn size_of_test;
uint8 offset_size;
size_t offset_size;
H5G_entry_t *ent = NULL;
hid_t template_id;
H5F_create_t *creation_template = NULL;
@ -559,7 +559,7 @@ main (int argc, char *argv[])
*/
offset_size = 8;
template_id = H5Ccreate (H5C_FILE_CREATE);
H5Csetparm (template_id, H5F_OFFSET_SIZE, &offset_size);
H5Cset_prop (template_id, H5F_SIZEOF_ADDR, offset_size);
creation_template = H5Aatom_object (template_id);
/* Create the test file */

View File

@ -61,8 +61,9 @@ static void test_file_create(void)
{
hid_t fid1,fid2,fid3; /* HDF5 File IDs */
hid_t tmpl1,tmpl2; /* File creation templates */
uintn parm; /* File-creation parameters */
uint8 parm2; /* File-creation parameters */
size_t parm; /* File-creation parameters */
size_t parm2; /* File-creation parameters */
int iparm;
herr_t ret; /* Generic return value */
/* Output message about test being performed */
@ -81,25 +82,25 @@ static void test_file_create(void)
CHECK(tmpl1,FAIL,"H5Fget_create_template");
/* Get the file-creation parameters */
ret=H5Cgetparm(tmpl1,H5F_USERBLOCK_SIZE,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F1_USERBLOCK_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_USERBLOCK, &parm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm,F1_USERBLOCK_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_OFFSET_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F1_OFFSET_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_ADDR, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F1_OFFSET_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_LENGTH_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F1_LENGTH_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_SIZE, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F1_LENGTH_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_LEAF_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F1_SYM_LEAF_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_LEAF_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F1_SYM_LEAF_K,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_INTERN_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F1_SYM_INTERN_K,"H5Cgetparm");
ret =H5Cget_prop (tmpl1, H5F_SYM_INTERN_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F1_SYM_INTERN_K,"H5Cget_prop");
/* Release file-creation template */
ret=H5Mclose(tmpl1);
@ -115,24 +116,22 @@ static void test_file_create(void)
/* Set the new file-creation parameters */
parm=F2_USERBLOCK_SIZE;
ret=H5Csetparm(tmpl1,H5F_USERBLOCK_SIZE,&parm);
CHECK(ret,FAIL,"H5Csetparm");
ret = H5Cset_prop (tmpl1, H5F_SIZEOF_USERBLOCK, parm);
CHECK(ret,FAIL,"H5Cset_prop");
parm2=F2_OFFSET_SIZE;
ret=H5Csetparm(tmpl1,H5F_OFFSET_SIZE,&parm2);
CHECK(ret,FAIL,"H5Csetparm");
ret = H5Cset_prop (tmpl1, H5F_SIZEOF_ADDR, parm2);
CHECK(ret,FAIL,"H5Cset_prop");
parm2=F2_LENGTH_SIZE;
ret=H5Csetparm(tmpl1,H5F_LENGTH_SIZE,&parm2);
CHECK(ret,FAIL,"H5Csetparm");
ret = H5Cset_prop (tmpl1, H5F_SIZEOF_SIZE, parm2);
CHECK(ret,FAIL,"H5Cset_prop");
parm=F2_SYM_LEAF_K;
ret=H5Csetparm(tmpl1,H5F_SYM_LEAF_K,&parm);
CHECK(ret,FAIL,"H5Csetparm");
ret = H5Cset_prop (tmpl1, H5F_SYM_LEAF_K, F2_SYM_LEAF_K);
CHECK(ret,FAIL,"H5Cset_prop");
parm=F2_SYM_INTERN_K;
ret=H5Csetparm(tmpl1,H5F_SYM_INTERN_K,&parm);
CHECK(ret,FAIL,"H5Csetparm");
ret = H5Cset_prop (tmpl1, H5F_SYM_INTERN_K, F2_SYM_INTERN_K);
CHECK(ret,FAIL,"H5Cset_prop");
/* Try to create second file, with non-standard file-creation template params */
fid2=H5Fcreate(FILE2,H5ACC_OVERWRITE,tmpl1,0);
@ -147,25 +146,25 @@ static void test_file_create(void)
CHECK(tmpl1,FAIL,"H5Fget_create_template");
/* Get the file-creation parameters */
ret=H5Cgetparm(tmpl1,H5F_USERBLOCK_SIZE,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F2_USERBLOCK_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_USERBLOCK, &parm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm,F2_USERBLOCK_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_OFFSET_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F2_LENGTH_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_SIZE, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F2_LENGTH_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_LENGTH_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F2_OFFSET_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_ADDR, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F2_OFFSET_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_LEAF_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F2_SYM_LEAF_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_LEAF_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F2_SYM_LEAF_K,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_INTERN_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F2_SYM_INTERN_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_INTERN_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F2_SYM_INTERN_K,"H5Cget_prop");
/* Clone the file-creation template */
tmpl2=H5Mcopy(tmpl1);
@ -177,8 +176,8 @@ static void test_file_create(void)
/* Set the new file-creation parameter */
parm=F3_USERBLOCK_SIZE;
ret=H5Csetparm(tmpl2,H5F_USERBLOCK_SIZE,&parm);
CHECK(ret,FAIL,"H5Csetparm");
ret = H5Cset_prop (tmpl2, H5F_SIZEOF_USERBLOCK, parm);
CHECK(ret,FAIL,"H5Cset_prop");
/* Try to create second file, with non-standard file-creation template params */
fid3=H5Fcreate(FILE3,H5ACC_OVERWRITE,tmpl2,0);
@ -193,25 +192,25 @@ static void test_file_create(void)
CHECK(tmpl1,FAIL,"H5Fget_create_template");
/* Get the file-creation parameters */
ret=H5Cgetparm(tmpl1,H5F_USERBLOCK_SIZE,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F3_USERBLOCK_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_USERBLOCK, &parm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm,F3_USERBLOCK_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_OFFSET_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F3_LENGTH_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_ADDR, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F3_LENGTH_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_LENGTH_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F3_OFFSET_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_SIZE, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F3_OFFSET_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_LEAF_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F3_SYM_LEAF_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_LEAF_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F3_SYM_LEAF_K,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_INTERN_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F3_SYM_INTERN_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_INTERN_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F3_SYM_INTERN_K,"H5Cget_prop");
/* Release file-creation template */
ret=H5Mclose(tmpl1);
@ -240,8 +239,9 @@ static void test_file_open(void)
{
hid_t fid1; /* HDF5 File IDs */
hid_t tmpl1; /* File creation templates */
uintn parm; /* File-creation parameters */
uint8 parm2; /* File-creation parameters */
size_t parm; /* File-creation parameters */
size_t parm2; /* File-creation parameters */
int iparm;
herr_t ret; /* Generic return value */
/* Output message about test being performed */
@ -256,25 +256,25 @@ static void test_file_open(void)
CHECK(tmpl1,FAIL,"H5Fget_create_template");
/* Get the file-creation parameters */
ret=H5Cgetparm(tmpl1,H5F_USERBLOCK_SIZE,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F2_USERBLOCK_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_USERBLOCK, &parm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm,F2_USERBLOCK_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_OFFSET_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F2_OFFSET_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_ADDR, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F2_OFFSET_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_LENGTH_SIZE,&parm2);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm2,F2_LENGTH_SIZE,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SIZEOF_SIZE, &parm2);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(parm2,F2_LENGTH_SIZE,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_LEAF_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F2_SYM_LEAF_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_LEAF_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F2_SYM_LEAF_K,"H5Cget_prop");
ret=H5Cgetparm(tmpl1,H5F_SYM_INTERN_K,&parm);
CHECK(ret,FAIL,"H5Cgetparm");
VERIFY(parm,F2_SYM_INTERN_K,"H5Cgetparm");
ret = H5Cget_prop (tmpl1, H5F_SYM_INTERN_K, &iparm);
CHECK(ret,FAIL,"H5Cget_prop");
VERIFY(iparm,F2_SYM_INTERN_K,"H5Cget_prop");
/* Release file-creation template */
ret=H5Mclose(tmpl1);

View File

@ -58,7 +58,7 @@ static void test_h5p_basic(void)
hid_t fid1; /* HDF5 File IDs */
hid_t sid1,sid2; /* Dataspace ID */
uint32 rank; /* Logical rank of dataspace */
uint32 dims1[]={SPACE1_DIM1,SPACE1_DIM2,SPACE1_DIM3}, /* dataspace dim sizes */
size_t dims1[]={SPACE1_DIM1,SPACE1_DIM2,SPACE1_DIM3}, /* dataspace dim sizes */
dims2[]={SPACE2_DIM1,SPACE2_DIM2,SPACE2_DIM3,SPACE2_DIM4},
tdims[4]; /* Dimension array to test with */
uintn n; /* number of dataspace elements */
@ -81,11 +81,11 @@ static void test_h5p_basic(void)
CHECK(n,UFAIL,"H5Pnelem");
VERIFY(n,SPACE1_DIM1*SPACE1_DIM2*SPACE1_DIM3,"H5Pnelem");
rank=H5Pget_lrank(sid1);
rank=H5Pget_ndims(sid1);
CHECK(rank,UFAIL,"H5Pget_lrank");
VERIFY(rank,SPACE1_RANK,"H5Pget_lrank");
ret=H5Pget_ldims(sid1,tdims);
ret=H5Pget_dims(sid1,tdims);
CHECK(ret,FAIL,"H5Pget_ldims");
VERIFY(HDmemcmp(tdims,dims1,SPACE1_RANK*sizeof(uint32)),0,"H5Pget_ldims");
@ -99,11 +99,11 @@ static void test_h5p_basic(void)
CHECK(n,UFAIL,"H5Pnelem");
VERIFY(n,SPACE2_DIM1*SPACE2_DIM2*SPACE2_DIM3*SPACE2_DIM4,"H5Pnelem");
rank=H5Pget_lrank(sid2);
rank=H5Pget_ndims(sid2);
CHECK(rank,UFAIL,"H5Pget_lrank");
VERIFY(rank,SPACE2_RANK,"H5Pget_lrank");
ret=H5Pget_ldims(sid2,tdims);
ret=H5Pget_dims(sid2,tdims);
CHECK(ret,FAIL,"H5Pget_ldims");
VERIFY(HDmemcmp(tdims,dims2,SPACE2_RANK*sizeof(uint32)),0,"H5Pget_ldims");