OHDR tests now accept h5_fileaccess() fapls.
Formatting, informative comments, and minor renaming.
This commit is contained in:
@@ -857,12 +857,13 @@ H5D__prepare_minimized_oh(H5F_t *file, H5D_t *dset, H5O_loc_t *oloc)
|
||||
if (ohdr_size == 0)
|
||||
HGOTO_ERROR(H5E_OHDR, H5E_BADVALUE, FAIL, "computed header size is invalid")
|
||||
|
||||
/* Special allocation of space for compact datsets is handled by the call here. */
|
||||
if(H5O__apply_ohdr(file, oh, dset->shared->dcpl_id, ohdr_size, (size_t)1, oloc) == FAIL)
|
||||
HGOTO_ERROR(H5E_OHDR, H5E_BADVALUE, FAIL, "can't apply object header to file")
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* H5D_prepare_minimized_oh */
|
||||
} /* H5D__prepare_minimized_oh */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
|
||||
88
test/ohdr.c
88
test/ohdr.c
@@ -821,7 +821,7 @@ oh_compare(hid_t did1, hid_t did2)
|
||||
* minimized dataset object headers.
|
||||
*/
|
||||
static herr_t
|
||||
test_minimized_oh_attribute_addition(void)
|
||||
test_minimized_dset_ohdr_attribute_addition(hid_t fapl_id)
|
||||
{
|
||||
hsize_t array_10[1] = {10}; /* dataspace extent */
|
||||
char buffer[10] = ""; /* to inspect string attribute */
|
||||
@@ -871,7 +871,7 @@ test_minimized_oh_attribute_addition(void)
|
||||
ret = H5Pset_dset_no_attrs_hint(dcpl_id, TRUE);
|
||||
if(ret < 0) TEST_ERROR
|
||||
|
||||
file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id);
|
||||
if(file_id < 0) TEST_ERROR
|
||||
|
||||
H5E_BEGIN_TRY {
|
||||
@@ -1031,14 +1031,14 @@ error :
|
||||
(void)H5Fclose(file_id);
|
||||
} H5E_END_TRY;
|
||||
return FAIL;
|
||||
} /* test_minimized_oh_attribute_addition */
|
||||
} /* test_minimized_dset_ohdr_attribute_addition */
|
||||
|
||||
/*
|
||||
* Compare header sizes against when headers have been minimized.
|
||||
* Repeats tests with headers "compact" and normal.
|
||||
*/
|
||||
static herr_t
|
||||
test_minimized_oh_size_comparisons(void)
|
||||
test_minimized_dset_ohdr_size_comparisons(hid_t fapl_id)
|
||||
{
|
||||
hsize_t array_10[1] = {10}; /* dataspace extents */
|
||||
unsigned compact = 0;
|
||||
@@ -1050,23 +1050,31 @@ test_minimized_oh_size_comparisons(void)
|
||||
hid_t dcpl_dontmin = -1;
|
||||
hid_t dcpl_default = -1;
|
||||
|
||||
/* IDs for non-minimzed file open */
|
||||
/* IDs for non-minimized file open */
|
||||
hid_t file_f_id = -1; /* lower 'f' for standard file setting */
|
||||
hid_t dset_f_x_id = -1; /* 'x' for default */
|
||||
hid_t dset_f_N_id = -1; /* 'N' for explcit non-minimized dset */
|
||||
hid_t dset_f_Y_id = -1; /* 'Y' for minimzed dset */
|
||||
hid_t dset_f_Y_id = -1; /* 'Y' for minimized dset */
|
||||
|
||||
/* IDs for minimzed file open */
|
||||
hid_t file_F_id = -1; /* upper 'F' for minimzed file setting */
|
||||
/* IDs for minimized file open */
|
||||
hid_t file_F_id = -1; /* upper 'F' for minimized file setting */
|
||||
hid_t dset_F_x_id = -1; /* 'x' for default */
|
||||
hid_t dset_F_N_id = -1; /* 'N' for explcit non-minimized dset */
|
||||
hid_t dset_F_Y_id = -1; /* 'Y' for minimzed dset */
|
||||
hid_t dset_F_Y_id = -1; /* 'Y' for minimized dset */
|
||||
|
||||
char filename_a[512] = "";
|
||||
char filename_b[512] = "";
|
||||
|
||||
herr_t ret;
|
||||
|
||||
/* dataset suffixes:
|
||||
* | default | minimize | don't minimize (dcpl-set)
|
||||
* ---------------+---------+----------+---------------
|
||||
* file-default | f_x | f_Y | f_N
|
||||
* ---------------+---------+----------+---------------
|
||||
* file-minimized | F_x | F_Y | F_N
|
||||
*/
|
||||
|
||||
TESTING("minimized dset object headers size comparisons");
|
||||
|
||||
/*********
|
||||
@@ -1110,7 +1118,7 @@ test_minimized_oh_size_comparisons(void)
|
||||
int_type_id = H5Tcopy(H5T_NATIVE_INT);
|
||||
if(int_type_id < 0) TEST_ERROR
|
||||
|
||||
file_f_id = H5Fcreate(filename_a, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
file_f_id = H5Fcreate(filename_a, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id);
|
||||
if(file_f_id < 0) TEST_ERROR
|
||||
|
||||
dset_f_x_id = H5Dcreate(file_f_id, "default", int_type_id, dspace_id, H5P_DEFAULT, dcpl_default, H5P_DEFAULT);
|
||||
@@ -1122,7 +1130,7 @@ test_minimized_oh_size_comparisons(void)
|
||||
dset_f_Y_id = H5Dcreate(file_f_id, "dsetMIN", int_type_id, dspace_id, H5P_DEFAULT, dcpl_minimize, H5P_DEFAULT);
|
||||
if(dset_f_x_id < 0) TEST_ERROR
|
||||
|
||||
file_F_id = H5Fcreate(filename_b, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
file_F_id = H5Fcreate(filename_b, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id);
|
||||
if(file_F_id < 0) TEST_ERROR
|
||||
ret = H5Fset_dset_no_attrs_hint(file_F_id, TRUE);
|
||||
if(ret < 0) TEST_ERROR
|
||||
@@ -1197,13 +1205,13 @@ error :
|
||||
(void)H5Dclose(dset_F_Y_id);
|
||||
} H5E_END_TRY;
|
||||
return FAIL;
|
||||
} /* test_minimized_oh_size_comparisons */
|
||||
} /* test_minimized_dset_ohdr_size_comparisons */
|
||||
|
||||
/*
|
||||
* Test minimized dataset object header with filter/pipeline message
|
||||
*/
|
||||
static herr_t
|
||||
test_minimized_oh_with_filter(void)
|
||||
test_minimized_dset_ohdr_with_filter(hid_t fapl_id)
|
||||
{
|
||||
char filename[512] = "";
|
||||
const hsize_t extents[1] = {1024}; /* extents of dataspace */
|
||||
@@ -1222,12 +1230,13 @@ test_minimized_oh_with_filter(void)
|
||||
hid_t file_id = -1;
|
||||
herr_t ret;
|
||||
|
||||
/* | default | minimize
|
||||
* ----------+---------+---------
|
||||
* no filter | xx | mx
|
||||
* ----------+---------+---------
|
||||
* filter | xZ | mZ
|
||||
*/
|
||||
/* dcpl suffixes:
|
||||
* | default | minimize
|
||||
* ----------+---------+---------
|
||||
* no filter | xx | mx
|
||||
* ----------+---------+---------
|
||||
* filter | xZ | mZ
|
||||
*/
|
||||
|
||||
TESTING("minimized dset object headers with filter message");
|
||||
|
||||
@@ -1264,7 +1273,7 @@ test_minimized_oh_with_filter(void)
|
||||
dtype_id = H5Tcopy(H5T_NATIVE_INT);
|
||||
if(dtype_id < 0) TEST_ERROR
|
||||
|
||||
file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id);
|
||||
if(file_id < 0) TEST_ERROR
|
||||
|
||||
dset_xx_id = H5Dcreate(file_id, "xx", dtype_id, dspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
@@ -1320,13 +1329,13 @@ error:
|
||||
(void)H5Fclose(file_id);
|
||||
} H5E_END_TRY;
|
||||
return FAIL;
|
||||
} /* test_minimized_oh_with_filter */
|
||||
} /* test_minimized_dset_ohdr_with_filter */
|
||||
|
||||
/*
|
||||
* Test minimized dataset object header and recording modification times.
|
||||
*/
|
||||
static herr_t
|
||||
test_minimized_oh_modification_times(void)
|
||||
test_minimized_dset_ohdr_modification_times(hid_t _fapl_id)
|
||||
{
|
||||
/* test-local structure for parameterized testing
|
||||
*/
|
||||
@@ -1358,6 +1367,16 @@ test_minimized_oh_modification_times(void)
|
||||
{ 2, }, /* version 2 object header */
|
||||
};
|
||||
|
||||
/* dcpl suffixes:
|
||||
* | default | minimize
|
||||
* ------------+---------+---------
|
||||
* default | xx | mx
|
||||
* ------------+---------+---------
|
||||
* don't track | xN | mN
|
||||
* ------------+---------+---------
|
||||
* track | xT | mT
|
||||
*/
|
||||
|
||||
TESTING("minimized dset object headers with modification times");
|
||||
|
||||
/*********
|
||||
@@ -1403,7 +1422,8 @@ test_minimized_oh_modification_times(void)
|
||||
* per-case setup *
|
||||
* -------------- */
|
||||
|
||||
fapl_id = H5P_DEFAULT;
|
||||
fapl_id = H5Pcopy(_fapl_id);
|
||||
if(fapl_id < 0) TEST_ERROR
|
||||
|
||||
if(cases[i].oh_version > 1) {
|
||||
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
|
||||
@@ -1453,9 +1473,7 @@ test_minimized_oh_modification_times(void)
|
||||
if(H5Dclose(dset_mT_id) < 0) TEST_ERROR
|
||||
if(H5Dclose(dset_mN_id) < 0) TEST_ERROR
|
||||
if(H5Fclose(file_id) < 0) TEST_ERROR
|
||||
|
||||
if((fapl_id != H5P_DEFAULT) && (H5Pclose(fapl_id) < 0))
|
||||
TEST_ERROR
|
||||
if(H5Pclose(fapl_id) < 0) TEST_ERROR
|
||||
|
||||
} /* for each version tested */
|
||||
|
||||
@@ -1490,13 +1508,13 @@ error:
|
||||
(void)H5Pclose(fapl_id);
|
||||
} H5E_END_TRY;
|
||||
return FAIL;
|
||||
} /* test_minimized_oh_modification_times */
|
||||
} /* test_minimized_dset_ohdr_modification_times */
|
||||
|
||||
/*
|
||||
* Test minimized dataset object header with a fill value set.
|
||||
*/
|
||||
static herr_t
|
||||
test_minimized_oh_fillvalue_backwards_compatability(void)
|
||||
test_minimized_dset_ohdr_fillvalue_backwards_compatability(hid_t _fapl_id)
|
||||
{
|
||||
char filename[512] = "";
|
||||
const hsize_t extents[1] = {64}; /* extents of dataspace */
|
||||
@@ -1534,7 +1552,7 @@ test_minimized_oh_fillvalue_backwards_compatability(void)
|
||||
ret = H5Pset_fill_value(dcpl_id, dtype_id, fill);
|
||||
if(ret == FAIL) TEST_ERROR;
|
||||
|
||||
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
|
||||
fapl_id = H5Pcopy(_fapl_id);
|
||||
if(fapl_id < 0) TEST_ERROR
|
||||
|
||||
ret = H5Pset_libver_bounds(fapl_id, H5F_LIBVER_EARLIEST, H5F_LIBVER_LATEST);
|
||||
@@ -1599,7 +1617,7 @@ error:
|
||||
(void)H5Fclose(file_id);
|
||||
} H5E_END_TRY;
|
||||
return FAIL;
|
||||
} /* test_minimized_oh_fillvalue_backwards_compatability */
|
||||
} /* test_minimized_dset_ohdr_fillvalue_backwards_compatability */
|
||||
|
||||
#define STR_EARLIEST "earliest"
|
||||
#define STR_V18 "v18"
|
||||
@@ -1898,19 +1916,19 @@ main(void)
|
||||
if(test_ohdr_cache(filename, fapl) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
if(test_minimized_oh_attribute_addition() < 0)
|
||||
if(test_minimized_dset_ohdr_attribute_addition(fapl) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
if(test_minimized_oh_size_comparisons() < 0)
|
||||
if(test_minimized_dset_ohdr_size_comparisons(fapl) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
if(test_minimized_oh_with_filter() < 0)
|
||||
if(test_minimized_dset_ohdr_with_filter(fapl) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
if(test_minimized_oh_modification_times() < 0)
|
||||
if(test_minimized_dset_ohdr_modification_times(fapl) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
if(test_minimized_oh_fillvalue_backwards_compatability() < 0)
|
||||
if(test_minimized_dset_ohdr_fillvalue_backwards_compatability(fapl) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
} /* high */
|
||||
|
||||
215
test/tattr.c
215
test/tattr.c
@@ -161,6 +161,10 @@ typedef struct {
|
||||
static herr_t attr_op1(hid_t loc_id, const char *name, const H5A_info_t *ainfo,
|
||||
void *op_data);
|
||||
|
||||
/* Global dcpl ID, can be re-set as a generated dcpl for various operations
|
||||
* across multiple tests.
|
||||
* e.g., minimized dataset object headers
|
||||
*/
|
||||
static hid_t dcpl_g = H5P_DEFAULT;
|
||||
|
||||
|
||||
@@ -11011,7 +11015,7 @@ test_attr(void)
|
||||
CHECK_I(ret, "H5Pset_shared_mesg_index");
|
||||
|
||||
for(minimize_dset_oh = 0; minimize_dset_oh <= 1; minimize_dset_oh++) {
|
||||
if (minimize_dset_oh == 0) {
|
||||
if(minimize_dset_oh == 0) {
|
||||
MESSAGE(7, ("testing with default dataset object headers\n"));
|
||||
dcpl_g = H5P_DEFAULT;
|
||||
} else {
|
||||
@@ -11020,129 +11024,128 @@ test_attr(void)
|
||||
CHECK(dcpl, FAIL, "H5Pcreate");
|
||||
ret = H5Pset_dset_no_attrs_hint(dcpl, TRUE);
|
||||
CHECK_I(ret, "H5Pset_dset_no_attrs_hint");
|
||||
|
||||
dcpl_g = dcpl;
|
||||
}
|
||||
|
||||
for(new_format = FALSE; new_format <= TRUE; new_format++) {
|
||||
hid_t my_fapl;
|
||||
for(new_format = FALSE; new_format <= TRUE; new_format++) {
|
||||
hid_t my_fapl;
|
||||
|
||||
if(new_format) {
|
||||
MESSAGE(7, ("testing with new file format\n"));
|
||||
my_fapl = fapl2;
|
||||
} else {
|
||||
MESSAGE(7, ("testing with old file format\n"));
|
||||
my_fapl = fapl;
|
||||
}
|
||||
|
||||
/* These next two tests use the same file information */
|
||||
test_attr_basic_write(my_fapl); /* Test basic H5A writing code */
|
||||
test_attr_basic_read(my_fapl); /* Test basic H5A reading code */
|
||||
|
||||
/* These next two tests use their own file information */
|
||||
test_attr_flush(my_fapl); /* Test H5A I/O in the presence of H5Fflush calls */
|
||||
test_attr_plist(my_fapl); /* Test attribute property lists */
|
||||
|
||||
/* These next two tests use the same file information */
|
||||
test_attr_compound_write(my_fapl); /* Test complex datatype H5A writing code */
|
||||
test_attr_compound_read(my_fapl); /* Test complex datatype H5A reading code */
|
||||
|
||||
/* These next two tests use the same file information */
|
||||
test_attr_scalar_write(my_fapl); /* Test scalar dataspace H5A writing code */
|
||||
test_attr_scalar_read(my_fapl); /* Test scalar dataspace H5A reading code */
|
||||
|
||||
/* These next four tests use the same file information */
|
||||
test_attr_mult_write(my_fapl); /* Test H5A writing code for multiple attributes */
|
||||
test_attr_mult_read(my_fapl); /* Test H5A reading code for multiple attributes */
|
||||
test_attr_iterate(my_fapl); /* Test H5A iterator code */
|
||||
test_attr_delete(my_fapl); /* Test H5A code for deleting attributes */
|
||||
|
||||
/* This next test uses its own file information */
|
||||
test_attr_dtype_shared(my_fapl); /* Test using shared dataypes in attributes */
|
||||
|
||||
/* This next test uses its own file information */
|
||||
test_attr_duplicate_ids(my_fapl);
|
||||
|
||||
for(use_shared = FALSE; use_shared <= TRUE; use_shared++) {
|
||||
hid_t my_fcpl;
|
||||
|
||||
if(new_format == TRUE && use_shared) {
|
||||
MESSAGE(7, ("testing with shared attributes\n"));
|
||||
my_fcpl = fcpl2;
|
||||
if(new_format) {
|
||||
MESSAGE(7, ("testing with new file format\n"));
|
||||
my_fapl = fapl2;
|
||||
} else {
|
||||
MESSAGE(7, ("testing without shared attributes\n"));
|
||||
my_fcpl = fcpl;
|
||||
MESSAGE(7, ("testing with old file format\n"));
|
||||
my_fapl = fapl;
|
||||
}
|
||||
|
||||
test_attr_big(my_fcpl, my_fapl); /* Test storing big attribute */
|
||||
test_attr_null_space(my_fcpl, my_fapl); /* Test storing attribute with NULL dataspace */
|
||||
test_attr_deprec(fcpl, my_fapl); /* Test deprecated API routines */
|
||||
test_attr_many(new_format, my_fcpl, my_fapl); /* Test storing lots of attributes */
|
||||
test_attr_info_null_info_pointer(my_fcpl, my_fapl); /* Test passing a NULL attribute info pointer to H5Aget_info(_by_name/_by_idx) */
|
||||
/* These next two tests use the same file information */
|
||||
test_attr_basic_write(my_fapl); /* Test basic H5A writing code */
|
||||
test_attr_basic_read(my_fapl); /* Test basic H5A reading code */
|
||||
|
||||
/* New attribute API routine tests
|
||||
*/
|
||||
test_attr_info_by_idx(new_format, my_fcpl, my_fapl); /* Test querying attribute info by index */
|
||||
test_attr_delete_by_idx(new_format, my_fcpl, my_fapl); /* Test deleting attribute by index */
|
||||
test_attr_iterate2(new_format, my_fcpl, my_fapl); /* Test iterating over attributes by index */
|
||||
test_attr_open_by_idx(new_format, my_fcpl, my_fapl); /* Test opening attributes by index */
|
||||
test_attr_open_by_name(new_format, my_fcpl, my_fapl); /* Test opening attributes by name */
|
||||
test_attr_create_by_name(new_format, my_fcpl, my_fapl); /* Test creating attributes by name */
|
||||
/* These next two tests use their own file information */
|
||||
test_attr_flush(my_fapl); /* Test H5A I/O in the presence of H5Fflush calls */
|
||||
test_attr_plist(my_fapl); /* Test attribute property lists */
|
||||
|
||||
/* Tests that address specific bugs
|
||||
*/
|
||||
test_attr_bug1(my_fcpl, my_fapl); /* Test odd allocation operations */
|
||||
test_attr_bug2(my_fcpl, my_fapl); /* Test many deleted attributes */
|
||||
test_attr_bug3(my_fcpl, my_fapl); /* Test "self referential" attributes */
|
||||
test_attr_bug4(my_fcpl, my_fapl); /* Test attributes on named datatypes */
|
||||
test_attr_bug5(my_fcpl, my_fapl); /* Test opening/closing attributes through different file handles */
|
||||
test_attr_bug6(my_fcpl, my_fapl); /* Test reading empty attribute */
|
||||
/* test_attr_bug7 is specific to the "new" object header format,
|
||||
* and in fact fails if used with the old format due to the
|
||||
* attributes being larger than 64K */
|
||||
test_attr_bug8(my_fcpl, my_fapl); /* Test attribute expanding object header with undecoded messages */
|
||||
test_attr_bug9(my_fcpl, my_fapl); /* Test large attributes converting to dense storage */
|
||||
/* These next two tests use the same file information */
|
||||
test_attr_compound_write(my_fapl); /* Test complex datatype H5A writing code */
|
||||
test_attr_compound_read(my_fapl); /* Test complex datatype H5A reading code */
|
||||
|
||||
/* tests specific to the "new format"
|
||||
*/
|
||||
if (new_format == TRUE) {
|
||||
/* General attribute tests */
|
||||
test_attr_dense_create(my_fcpl, my_fapl); /* Test dense attribute storage creation */
|
||||
test_attr_dense_open(my_fcpl, my_fapl); /* Test opening attributes in dense storage */
|
||||
test_attr_dense_delete(my_fcpl, my_fapl); /* Test deleting attributes in dense storage */
|
||||
test_attr_dense_rename(my_fcpl, my_fapl); /* Test renaming attributes in dense storage */
|
||||
test_attr_dense_unlink(my_fcpl, my_fapl); /* Test unlinking object with attributes in dense storage */
|
||||
test_attr_dense_limits(my_fcpl, my_fapl); /* Test dense attribute storage limits */
|
||||
test_attr_dense_dup_ids(my_fcpl, my_fapl); /* Test duplicated IDs for dense attribute storage */
|
||||
/* These next two tests use the same file information */
|
||||
test_attr_scalar_write(my_fapl); /* Test scalar dataspace H5A writing code */
|
||||
test_attr_scalar_read(my_fapl); /* Test scalar dataspace H5A reading code */
|
||||
|
||||
/* Attribute creation order tests
|
||||
/* These next four tests use the same file information */
|
||||
test_attr_mult_write(my_fapl); /* Test H5A writing code for multiple attributes */
|
||||
test_attr_mult_read(my_fapl); /* Test H5A reading code for multiple attributes */
|
||||
test_attr_iterate(my_fapl); /* Test H5A iterator code */
|
||||
test_attr_delete(my_fapl); /* Test H5A code for deleting attributes */
|
||||
|
||||
/* This next test uses its own file information */
|
||||
test_attr_dtype_shared(my_fapl); /* Test using shared dataypes in attributes */
|
||||
|
||||
/* This next test uses its own file information */
|
||||
test_attr_duplicate_ids(my_fapl);
|
||||
|
||||
for(use_shared = FALSE; use_shared <= TRUE; use_shared++) {
|
||||
hid_t my_fcpl;
|
||||
|
||||
if(new_format == TRUE && use_shared) {
|
||||
MESSAGE(7, ("testing with shared attributes\n"));
|
||||
my_fcpl = fcpl2;
|
||||
} else {
|
||||
MESSAGE(7, ("testing without shared attributes\n"));
|
||||
my_fcpl = fcpl;
|
||||
}
|
||||
|
||||
test_attr_big(my_fcpl, my_fapl); /* Test storing big attribute */
|
||||
test_attr_null_space(my_fcpl, my_fapl); /* Test storing attribute with NULL dataspace */
|
||||
test_attr_deprec(fcpl, my_fapl); /* Test deprecated API routines */
|
||||
test_attr_many(new_format, my_fcpl, my_fapl); /* Test storing lots of attributes */
|
||||
test_attr_info_null_info_pointer(my_fcpl, my_fapl); /* Test passing a NULL attribute info pointer to H5Aget_info(_by_name/_by_idx) */
|
||||
|
||||
/* New attribute API routine tests
|
||||
*/
|
||||
test_attr_corder_create_basic(my_fcpl, my_fapl);/* Test creating an object w/attribute creation order info */
|
||||
test_attr_corder_create_compact(my_fcpl, my_fapl); /* Test compact attribute storage on an object w/attribute creation order info */
|
||||
test_attr_corder_create_dense(my_fcpl, my_fapl);/* Test dense attribute storage on an object w/attribute creation order info */
|
||||
test_attr_corder_create_reopen(my_fcpl, my_fapl);/* Test creating attributes w/reopening file from using new format to using old format */
|
||||
test_attr_corder_transition(my_fcpl, my_fapl); /* Test attribute storage transitions on an object w/attribute creation order info */
|
||||
test_attr_corder_delete(my_fcpl, my_fapl); /* Test deleting object using dense storage w/attribute creation order info */
|
||||
test_attr_info_by_idx(new_format, my_fcpl, my_fapl); /* Test querying attribute info by index */
|
||||
test_attr_delete_by_idx(new_format, my_fcpl, my_fapl); /* Test deleting attribute by index */
|
||||
test_attr_iterate2(new_format, my_fcpl, my_fapl); /* Test iterating over attributes by index */
|
||||
test_attr_open_by_idx(new_format, my_fcpl, my_fapl); /* Test opening attributes by index */
|
||||
test_attr_open_by_name(new_format, my_fcpl, my_fapl); /* Test opening attributes by name */
|
||||
test_attr_create_by_name(new_format, my_fcpl, my_fapl); /* Test creating attributes by name */
|
||||
|
||||
/* More complex tests with exclusively both "new format" and "shared" attributes
|
||||
/* Tests that address specific bugs
|
||||
*/
|
||||
if(use_shared == TRUE) {
|
||||
test_attr_shared_write(my_fcpl, my_fapl); /* Test writing to shared attributes in compact & dense storage */
|
||||
test_attr_shared_rename(my_fcpl, my_fapl); /* Test renaming shared attributes in compact & dense storage */
|
||||
test_attr_shared_delete(my_fcpl, my_fapl); /* Test deleting shared attributes in compact & dense storage */
|
||||
test_attr_shared_unlink(my_fcpl, my_fapl); /* Test unlinking object with shared attributes in compact & dense storage */
|
||||
} /* if using shared attributes */
|
||||
|
||||
test_attr_delete_last_dense(my_fcpl, my_fapl);
|
||||
|
||||
test_attr_bug1(my_fcpl, my_fapl); /* Test odd allocation operations */
|
||||
test_attr_bug2(my_fcpl, my_fapl); /* Test many deleted attributes */
|
||||
test_attr_bug3(my_fcpl, my_fapl); /* Test "self referential" attributes */
|
||||
test_attr_bug4(my_fcpl, my_fapl); /* Test attributes on named datatypes */
|
||||
test_attr_bug5(my_fcpl, my_fapl); /* Test opening/closing attributes through different file handles */
|
||||
test_attr_bug6(my_fcpl, my_fapl); /* Test reading empty attribute */
|
||||
/* test_attr_bug7 is specific to the "new" object header format,
|
||||
* and in fact fails if used with the old format due to the
|
||||
* attributes being larger than 64K */
|
||||
test_attr_bug7(my_fcpl, my_fapl); /* Test creating and deleting large attributes in ohdr chunk 0 */
|
||||
test_attr_bug8(my_fcpl, my_fapl); /* Test attribute expanding object header with undecoded messages */
|
||||
test_attr_bug9(my_fcpl, my_fapl); /* Test large attributes converting to dense storage */
|
||||
|
||||
} /* if using "new format" */
|
||||
} /* for unshared/shared attributes */
|
||||
} /* for old/new format */
|
||||
/* tests specific to the "new format"
|
||||
*/
|
||||
if (new_format == TRUE) {
|
||||
/* General attribute tests */
|
||||
test_attr_dense_create(my_fcpl, my_fapl); /* Test dense attribute storage creation */
|
||||
test_attr_dense_open(my_fcpl, my_fapl); /* Test opening attributes in dense storage */
|
||||
test_attr_dense_delete(my_fcpl, my_fapl); /* Test deleting attributes in dense storage */
|
||||
test_attr_dense_rename(my_fcpl, my_fapl); /* Test renaming attributes in dense storage */
|
||||
test_attr_dense_unlink(my_fcpl, my_fapl); /* Test unlinking object with attributes in dense storage */
|
||||
test_attr_dense_limits(my_fcpl, my_fapl); /* Test dense attribute storage limits */
|
||||
test_attr_dense_dup_ids(my_fcpl, my_fapl); /* Test duplicated IDs for dense attribute storage */
|
||||
|
||||
/* Attribute creation order tests
|
||||
*/
|
||||
test_attr_corder_create_basic(my_fcpl, my_fapl);/* Test creating an object w/attribute creation order info */
|
||||
test_attr_corder_create_compact(my_fcpl, my_fapl); /* Test compact attribute storage on an object w/attribute creation order info */
|
||||
test_attr_corder_create_dense(my_fcpl, my_fapl);/* Test dense attribute storage on an object w/attribute creation order info */
|
||||
test_attr_corder_create_reopen(my_fcpl, my_fapl);/* Test creating attributes w/reopening file from using new format to using old format */
|
||||
test_attr_corder_transition(my_fcpl, my_fapl); /* Test attribute storage transitions on an object w/attribute creation order info */
|
||||
test_attr_corder_delete(my_fcpl, my_fapl); /* Test deleting object using dense storage w/attribute creation order info */
|
||||
|
||||
/* More complex tests with exclusively both "new format" and "shared" attributes
|
||||
*/
|
||||
if(use_shared == TRUE) {
|
||||
test_attr_shared_write(my_fcpl, my_fapl); /* Test writing to shared attributes in compact & dense storage */
|
||||
test_attr_shared_rename(my_fcpl, my_fapl); /* Test renaming shared attributes in compact & dense storage */
|
||||
test_attr_shared_delete(my_fcpl, my_fapl); /* Test deleting shared attributes in compact & dense storage */
|
||||
test_attr_shared_unlink(my_fcpl, my_fapl); /* Test unlinking object with shared attributes in compact & dense storage */
|
||||
} /* if using shared attributes */
|
||||
|
||||
test_attr_delete_last_dense(my_fcpl, my_fapl);
|
||||
|
||||
/* test_attr_bug7 is specific to the "new" object header format,
|
||||
* and in fact fails if used with the old format due to the
|
||||
* attributes being larger than 64K */
|
||||
test_attr_bug7(my_fcpl, my_fapl); /* Test creating and deleting large attributes in ohdr chunk 0 */
|
||||
|
||||
} /* if using "new format" */
|
||||
} /* for unshared/shared attributes */
|
||||
} /* for old/new format */
|
||||
|
||||
if (minimize_dset_oh != 0) {
|
||||
ret = H5Pclose(dcpl);
|
||||
|
||||
Reference in New Issue
Block a user