summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/tfile.c100
1 files changed, 46 insertions, 54 deletions
diff --git a/test/tfile.c b/test/tfile.c
index b8902e3..8103881 100644
--- a/test/tfile.c
+++ b/test/tfile.c
@@ -2074,17 +2074,11 @@ test_cached_stab_info(void)
** mamcgree@hdfgroup.org
** June 29, 2009
**
-** Modification: Raymond Lu
-** I added a test with the system functions to make
-** sure the stat function behaves as we expected.
-** 17 September 2009
*****************************************************************/
static void
test_rw_noupdate(void)
{
- int fid; /* File ID from system-created file */
- struct stat sys_sb1, sys_sb2; /* Info from the system stat */
- hid_t file_id; /* HDF5 File ID */
+ int fd; /* File Descriptor */
h5_stat_t sb1, sb2; /* Info from 'stat' call */
double diff; /* Difference in modification times */
herr_t ret; /* Generic return value */
@@ -2094,70 +2088,68 @@ test_rw_noupdate(void)
/* First make sure the stat function behaves as we expect - the modification time
* is the time that the file was modified last time. */
- fid = open(SFILE1, O_RDWR | O_CREAT | O_TRUNC, 0666);
- CHECK(fid, FAIL, "open");
- ret = close(fid);
- CHECK(ret, FAIL, "close");
+ fd = HDopen(SFILE1, O_RDWR | O_CREAT | O_TRUNC, 0666);
+ CHECK(fd, FAIL, "HDopen");
+ ret = HDclose(fd);
+ CHECK(ret, FAIL, "HDclose");
/* Determine File's Initial Timestamp */
- ret = stat(SFILE1, &sys_sb1);
- VERIFY(ret, 0, "stat");
+ ret = HDstat(SFILE1, &sb1);
+ VERIFY(ret, 0, "HDstat");
/* Wait for 2 seconds */
- /* This ensures a system time difference between the two file accesses */
- sleep(2);
+ /* (This ensures a system time difference between the two file accesses) */
+ HDsleep(2);
- fid = open(SFILE1, O_RDWR);
- CHECK(fid, FAIL, "open");
- ret = close(fid);
- CHECK(ret, FAIL, "close");
+ fd = HDopen(SFILE1, O_RDWR, 0666);
+ CHECK(fd, FAIL, "HDopen");
+ ret = HDclose(fd);
+ CHECK(ret, FAIL, "HDclose");
/* Determine File's New Timestamp */
- ret = stat(SFILE1, &sys_sb2);
- VERIFY(ret, 0, "stat");
+ ret = HDstat(SFILE1, &sb2);
+ VERIFY(ret, 0, "HDstat");
- /* Ensure That Timestamps Are Equal */
- diff = difftime(sys_sb2.st_mtime, sys_sb1.st_mtime);
+ /* Get difference between timestamps */
+ diff = HDdifftime(sb2.st_mtime, sb1.st_mtime);
- if(!DBL_ABS_EQUAL(diff, 0.0)) {
+ /* Check That Timestamps Are Equal */
+ if(diff > 0.0) {
/* Output message about test being performed */
MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time (We know OpenVMS behaves in this way).\n"));
+ } /* end if */
+ else {
+ hid_t file_id; /* HDF5 File ID */
- goto done;
- }
-
- /* Then we can test with a HDF5 file */
- /* Create and Close a HDF5 File */
- file_id = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
- CHECK(file_id, FAIL, "H5Fcreate");
- ret = H5Fclose(file_id);
- CHECK(ret, FAIL, "H5Fclose");
-
- /* Determine File's Initial Timestamp */
- ret = HDstat(FILE1, &sb1);
- VERIFY(ret, 0, "HDfstat");
+ /* Create and Close a HDF5 File */
+ file_id = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ CHECK(file_id, FAIL, "H5Fcreate");
+ ret = H5Fclose(file_id);
+ CHECK(ret, FAIL, "H5Fclose");
- /* Wait for 2 seconds */
- /* This ensures a system time difference between the two file accesses */
- HDsleep(2);
+ /* Determine File's Initial Timestamp */
+ ret = HDstat(FILE1, &sb1);
+ VERIFY(ret, 0, "HDfstat");
- /* Open and Close File With Read/Write Permission */
- file_id = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
- CHECK(file_id, FAIL, "H5Fopen");
- ret = H5Fclose(file_id);
- CHECK(ret, FAIL, "H5Fclose");
+ /* Wait for 2 seconds */
+ /* (This ensures a system time difference between the two file accesses) */
+ HDsleep(2);
- /* Determine File's New Timestamp */
- ret = HDstat(FILE1, &sb2);
- VERIFY(ret, 0, "HDstat");
+ /* Open and Close File With Read/Write Permission */
+ file_id = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
+ CHECK(file_id, FAIL, "H5Fopen");
+ ret = H5Fclose(file_id);
+ CHECK(ret, FAIL, "H5Fclose");
- /* Ensure That Timestamps Are Equal */
- diff = HDdifftime(sb2.st_mtime, sb1.st_mtime);
- ret = (diff > 0.0);
- VERIFY(ret, 0, "Timestamp");
+ /* Determine File's New Timestamp */
+ ret = HDstat(FILE1, &sb2);
+ VERIFY(ret, 0, "HDstat");
-done:
- ; /* do nothing */
+ /* Ensure That Timestamps Are Equal */
+ diff = HDdifftime(sb2.st_mtime, sb1.st_mtime);
+ ret = (diff > 0.0);
+ VERIFY(ret, 0, "Timestamp");
+ } /* end else */
} /* end test_rw_noupdate() */
/****************************************************************