OHDR tests now accept h5_fileaccess() fapls.

Formatting, informative comments, and minor renaming.
This commit is contained in:
Jacob Smith
2018-12-26 14:35:22 -06:00
parent cfdbb220d8
commit b2afa88fa0
3 changed files with 164 additions and 142 deletions

View File

@@ -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 */
/*-------------------------------------------------------------------------

View File

@@ -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 */

View File

@@ -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);