summaryrefslogtreecommitdiffstats
path: root/test/tfile.c
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2006-08-24 00:52:21 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2006-08-24 00:52:21 (GMT)
commit9edac8a668f823aa7a60a97e4332216619609ba5 (patch)
treed3ba30d52bdaac0270ea68046cddeac8938765dc /test/tfile.c
parentafb817a0a71058e02625fb67f3935ddd33a48404 (diff)
downloadhdf5-9edac8a668f823aa7a60a97e4332216619609ba5.zip
hdf5-9edac8a668f823aa7a60a97e4332216619609ba5.tar.gz
hdf5-9edac8a668f823aa7a60a97e4332216619609ba5.tar.bz2
[svn-r12623] Added H5Fget_intent() function to get the "intent" of a file (read/write or
read-only). Added this to external links, so that external files are opened with the same intent as the source file. Added tests.
Diffstat (limited to 'test/tfile.c')
-rw-r--r--test/tfile.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/tfile.c b/test/tfile.c
index 19772ca..4c6e845 100644
--- a/test/tfile.c
+++ b/test/tfile.c
@@ -347,6 +347,7 @@ test_file_open(void)
size_t parm2; /*file-creation parameters */
unsigned iparm;
unsigned iparm2;
+ unsigned intent;
herr_t ret; /*generic return value */
/*
@@ -360,6 +361,11 @@ test_file_open(void)
fid1 = H5Fopen(FILE2, H5F_ACC_RDWR, H5P_DEFAULT);
CHECK(fid1, FAIL, "H5Fopen");
+ /* Get the intent */
+ ret = H5Fget_intent(fid1, &intent);
+ CHECK(ret, FAIL, "H5Fget_intent");
+ VERIFY(intent, H5F_ACC_RDWR, "H5Fget_intent");
+
/* Get the file-creation template */
tmpl1 = H5Fget_create_plist(fid1);
CHECK(tmpl1, FAIL, "H5Fget_create_plist");
@@ -409,10 +415,19 @@ test_file_open(void)
fid1 = H5Fopen(FILE2, H5F_ACC_RDONLY, fapl_id);
CHECK(fid1, FAIL, "H5Fopen");
+ /* Check the intent */
+ ret = H5Fget_intent(fid1, &intent);
+ CHECK(ret, FAIL, "H5Fget_intent");
+ VERIFY(intent, H5F_ACC_RDONLY, "H5Fget_intent");
+
/* Open dataset */
did = H5Dopen(fid1, F2_DSET);
CHECK(did, FAIL, "H5Dopen");
+ /* Check that the intent works even if NULL is passed in */
+ ret = H5Fget_intent(fid1, NULL);
+ CHECK(ret, FAIL, "H5Fget_intent");
+
/* Close first open */
ret = H5Fclose(fid1);
CHECK(ret, FAIL, "H5Fclose");
@@ -421,6 +436,10 @@ test_file_open(void)
fid2 = H5Fopen(FILE2, H5F_ACC_RDWR, fapl_id);
VERIFY(fid2, FAIL, "H5Fopen");
+ /* Check that the intent fails for an invalid ID */
+ ret = H5Fget_intent(fid1, &intent);
+ VERIFY(ret, FAIL, "H5Fget_intent");
+
/* Close dataset from first open */
ret = H5Dclose(did);
CHECK(ret, FAIL, "H5Dclose");
@@ -859,12 +878,18 @@ test_get_file_id(void)
hid_t datatype_id, dataset_id, dataspace_id, group_id, attr_id;
hid_t plist;
hsize_t dims[F2_RANK];
+ unsigned intent;
herr_t ret;
/* Create a file */
fid = H5Fcreate(FILE4, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
CHECK(fid, FAIL, "H5Fcreate");
+ /* Check the intent */
+ ret = H5Fget_intent(fid, &intent);
+ CHECK(ret, FAIL, "H5Fget_intent");
+ VERIFY(intent, H5F_ACC_RDWR, "H5Fget_intent");
+
/* Test H5Iget_file_id() */
check_file_id(fid, fid);
@@ -1469,6 +1494,7 @@ test_file_open_overlap(void)
hid_t gid;
hid_t sid;
int nobjs; /* # of open objects */
+ unsigned intent;
herr_t ret; /* Generic return value */
/* Output message about test being performed */
@@ -1482,6 +1508,11 @@ test_file_open_overlap(void)
fid2 = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
CHECK(fid2, FAIL, "H5Fopen");
+ /* Check the intent */
+ ret = H5Fget_intent(fid1, &intent);
+ CHECK(ret, FAIL, "H5Fget_intent");
+ VERIFY(intent, H5F_ACC_RDWR, "H5Fget_intent");
+
/* Create a group in file */
gid = H5Gcreate(fid1, GROUP1, (size_t)0);
CHECK(gid, FAIL, "H5Gcreate");