mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-18 15:15:56 +08:00
[svn-r7802] *** empty log message ***
This commit is contained in:
parent
7948d9eb26
commit
6f6b6bb5e8
121
test/tfile.c
121
test/tfile.c
@ -53,6 +53,8 @@
|
|||||||
#define F3_SYM_INTERN_K F2_SYM_INTERN_K
|
#define F3_SYM_INTERN_K F2_SYM_INTERN_K
|
||||||
#define FILE3 "tfile3.h5"
|
#define FILE3 "tfile3.h5"
|
||||||
|
|
||||||
|
#define GROUP_NAME "/group"
|
||||||
|
#define DSET_NAME "dataset"
|
||||||
#define ATTR_NAME "attr"
|
#define ATTR_NAME "attr"
|
||||||
#define TYPE_NAME "type"
|
#define TYPE_NAME "type"
|
||||||
#define FILE4 "tfile4.h5"
|
#define FILE4 "tfile4.h5"
|
||||||
@ -69,6 +71,8 @@ static void
|
|||||||
create_objects(hid_t, hid_t, hid_t *, hid_t *, hid_t *, hid_t *);
|
create_objects(hid_t, hid_t, hid_t *, hid_t *, hid_t *, hid_t *);
|
||||||
static void
|
static void
|
||||||
test_obj_count_and_id(hid_t, hid_t, hid_t, hid_t, hid_t, hid_t);
|
test_obj_count_and_id(hid_t, hid_t, hid_t, hid_t, hid_t, hid_t);
|
||||||
|
static void
|
||||||
|
check_file_id(hid_t, hid_t);
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
**
|
**
|
||||||
@ -827,39 +831,59 @@ create_objects(hid_t fid1, hid_t fid2, hid_t *ret_did, hid_t *ret_gid1,
|
|||||||
static void
|
static void
|
||||||
test_get_file_id(void)
|
test_get_file_id(void)
|
||||||
{
|
{
|
||||||
hid_t fid1, fid2;
|
hid_t fid, fid2, fid3;
|
||||||
hid_t datatype_id, dataset_id, dataspace_id, group_id, attr_id;
|
hid_t datatype_id, dataset_id, dataspace_id, group_id, attr_id;
|
||||||
hid_t plist;
|
hid_t plist;
|
||||||
hsize_t dims[F2_RANK];
|
hsize_t dims[F2_RANK];
|
||||||
herr_t ret;
|
herr_t ret;
|
||||||
|
int numb;
|
||||||
|
|
||||||
/* Create a file */
|
/* Create a file */
|
||||||
fid1 = H5Fcreate(FILE4, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
fid = H5Fcreate(FILE4, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||||
CHECK(fid1, FAIL, "H5Fcreate");
|
CHECK(fid, FAIL, "H5Fcreate");
|
||||||
|
|
||||||
/* Return a duplicated file ID even not expecting user to do it.
|
/* Test H5Iget_file_id() */
|
||||||
* And close this duplicated ID
|
check_file_id(fid, fid);
|
||||||
*/
|
|
||||||
fid2 = H5Iget_file_id(fid1);
|
|
||||||
CHECK(fid2, FAIL, "H5Iget_file_id");
|
|
||||||
VERIFY(fid2, fid1, "H5Iget_file_id");
|
|
||||||
|
|
||||||
ret = H5Fclose(fid2);
|
|
||||||
CHECK(ret, FAIL, "H5Fclose");
|
|
||||||
|
|
||||||
/* Create a group in the file. Make a duplicated file ID from the group.
|
/* Create a group in the file. Make a duplicated file ID from the group.
|
||||||
* And close this duplicated ID
|
* And close this duplicated ID
|
||||||
*/
|
*/
|
||||||
group_id = H5Gcreate(fid1, "/group", 0);
|
group_id = H5Gcreate(fid, GROUP_NAME, 0);
|
||||||
CHECK(group_id, FAIL, "H5Gcreate");
|
CHECK(group_id, FAIL, "H5Gcreate");
|
||||||
|
|
||||||
fid2 = H5Iget_file_id(group_id);
|
/* Test H5Iget_file_id() */
|
||||||
CHECK(fid2, FAIL, "H5Iget_file_id");
|
check_file_id(fid, group_id);
|
||||||
VERIFY(fid2, fid1, "H5Iget_file_id");
|
|
||||||
|
|
||||||
ret = H5Fclose(fid2);
|
/* Close the file and get file ID from the group ID */
|
||||||
|
ret = H5Fclose(fid);
|
||||||
CHECK(ret, FAIL, "H5Fclose");
|
CHECK(ret, FAIL, "H5Fclose");
|
||||||
|
|
||||||
|
/* Test H5Iget_file_id() */
|
||||||
|
check_file_id(-1, group_id);
|
||||||
|
|
||||||
|
ret = H5Gclose(group_id);
|
||||||
|
CHECK(ret, FAIL, "H5Gclose");
|
||||||
|
|
||||||
|
/* Open the file again. Test H5Iget_file_id() */
|
||||||
|
fid = H5Fopen(FILE4, H5F_ACC_RDWR, H5P_DEFAULT);
|
||||||
|
CHECK(fid, FAIL, "H5Fcreate");
|
||||||
|
|
||||||
|
group_id = H5Gopen(fid, GROUP_NAME);
|
||||||
|
CHECK(group_id, FAIL, "H5Gcreate");
|
||||||
|
|
||||||
|
/* Test H5Iget_file_id() */
|
||||||
|
check_file_id(fid, group_id);
|
||||||
|
|
||||||
|
/* Open the file for second time. Test H5Iget_file_id() */
|
||||||
|
fid3 = H5Freopen(fid);
|
||||||
|
CHECK(fid3, FAIL, "H5Freopen");
|
||||||
|
|
||||||
|
/* Test H5Iget_file_id() */
|
||||||
|
check_file_id(fid3, fid3);
|
||||||
|
|
||||||
|
ret = H5Fclose(fid3);
|
||||||
|
CHECK(ret, FAIL, "H5Fclose");
|
||||||
|
|
||||||
/* Create a dataset in the group. Make a duplicated file ID from the
|
/* Create a dataset in the group. Make a duplicated file ID from the
|
||||||
* dataset. And close this duplicated ID.
|
* dataset. And close this duplicated ID.
|
||||||
*/
|
*/
|
||||||
@ -868,29 +892,21 @@ test_get_file_id(void)
|
|||||||
dataspace_id = H5Screate_simple(F2_RANK, dims, NULL);
|
dataspace_id = H5Screate_simple(F2_RANK, dims, NULL);
|
||||||
CHECK(dataspace_id, FAIL, "H5Screate_simple");
|
CHECK(dataspace_id, FAIL, "H5Screate_simple");
|
||||||
|
|
||||||
dataset_id = H5Dcreate(group_id, "/dset", H5T_NATIVE_INT, dataspace_id,
|
dataset_id = H5Dcreate(group_id, DSET_NAME, H5T_NATIVE_INT, dataspace_id,
|
||||||
H5P_DEFAULT);
|
H5P_DEFAULT);
|
||||||
CHECK(dataset_id, FAIL, "H5Dcreate");
|
CHECK(dataset_id, FAIL, "H5Dcreate");
|
||||||
|
|
||||||
fid2 = H5Iget_file_id(dataset_id);
|
/* Test H5Iget_file_id() */
|
||||||
CHECK(fid2, FAIL, "H5Iget_file_id");
|
check_file_id(fid, dataset_id);
|
||||||
VERIFY(fid2, fid1, "H5Iget_file_id");
|
|
||||||
|
|
||||||
ret = H5Fclose(fid2);
|
|
||||||
CHECK(ret, FAIL, "H5Fclose");
|
|
||||||
|
|
||||||
/* Create an attribute for the dataset. Make a duplicated file ID from
|
/* Create an attribute for the dataset. Make a duplicated file ID from
|
||||||
* this attribute. And close it.
|
* this attribute. And close it.
|
||||||
*/
|
*/
|
||||||
attr_id=H5Acreate(dataset_id,ATTR_NAME,H5T_NATIVE_INT,dataspace_id,H5P_DEFAULT);
|
attr_id=H5Acreate(dataset_id,ATTR_NAME,H5T_NATIVE_INT,dataspace_id,H5P_DEFAULT);
|
||||||
CHECK(ret, FAIL, "H5Acreate");
|
CHECK(ret, FAIL, "H5Acreate");
|
||||||
|
|
||||||
fid2 = H5Iget_file_id(attr_id);
|
|
||||||
CHECK(fid2, FAIL, "H5Iget_file_id");
|
|
||||||
VERIFY(fid2, fid1, "H5Iget_file_id");
|
|
||||||
|
|
||||||
ret = H5Fclose(fid2);
|
/* Test H5Iget_file_id() */
|
||||||
CHECK(ret, FAIL, "H5Fclose");
|
check_file_id(fid, attr_id);
|
||||||
|
|
||||||
/* Create a named datatype. Make a duplicated file ID from
|
/* Create a named datatype. Make a duplicated file ID from
|
||||||
* this attribute. And close it.
|
* this attribute. And close it.
|
||||||
@ -898,15 +914,11 @@ test_get_file_id(void)
|
|||||||
datatype_id=H5Tcopy(H5T_NATIVE_INT);
|
datatype_id=H5Tcopy(H5T_NATIVE_INT);
|
||||||
CHECK(ret, FAIL, "H5Acreate");
|
CHECK(ret, FAIL, "H5Acreate");
|
||||||
|
|
||||||
ret = H5Tcommit(fid1, TYPE_NAME, datatype_id);
|
ret = H5Tcommit(fid, TYPE_NAME, datatype_id);
|
||||||
CHECK(ret, FAIL, "H5Tcommit");
|
CHECK(ret, FAIL, "H5Tcommit");
|
||||||
|
|
||||||
fid2 = H5Iget_file_id(datatype_id);
|
/* Test H5Iget_file_id() */
|
||||||
CHECK(fid2, FAIL, "H5Iget_file_id");
|
check_file_id(fid, datatype_id);
|
||||||
VERIFY(fid2, fid1, "H5Iget_file_id");
|
|
||||||
|
|
||||||
ret = H5Fclose(fid2);
|
|
||||||
CHECK(ret, FAIL, "H5Fclose");
|
|
||||||
|
|
||||||
/* Create a property list and try to get file ID from it.
|
/* Create a property list and try to get file ID from it.
|
||||||
* Supposed to fail.
|
* Supposed to fail.
|
||||||
@ -935,7 +947,32 @@ test_get_file_id(void)
|
|||||||
ret = H5Gclose(group_id);
|
ret = H5Gclose(group_id);
|
||||||
CHECK(ret, FAIL, "H5Gclose");
|
CHECK(ret, FAIL, "H5Gclose");
|
||||||
|
|
||||||
ret = H5Fclose(fid1);
|
ret = H5Fclose(fid);
|
||||||
|
CHECK(ret, FAIL, "H5Fclose");
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
**
|
||||||
|
** check_file_id(): Internal function of test_get_file_id()
|
||||||
|
**
|
||||||
|
*****************************************************************/
|
||||||
|
static void
|
||||||
|
check_file_id(hid_t fid, hid_t object_id)
|
||||||
|
{
|
||||||
|
hid_t new_fid;
|
||||||
|
herr_t ret;
|
||||||
|
|
||||||
|
/* Return a duplicated file ID even not expecting user to do it.
|
||||||
|
* And close this duplicated ID
|
||||||
|
*/
|
||||||
|
new_fid = H5Iget_file_id(object_id);
|
||||||
|
|
||||||
|
if(fid >=0)
|
||||||
|
VERIFY(new_fid, fid, "H5Iget_file_id");
|
||||||
|
else
|
||||||
|
CHECK(new_fid, FAIL, "H5Iget_file_id");
|
||||||
|
|
||||||
|
ret = H5Fclose(new_fid);
|
||||||
CHECK(ret, FAIL, "H5Fclose");
|
CHECK(ret, FAIL, "H5Fclose");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user