summaryrefslogtreecommitdiffstats
path: root/test/ohdr.c
diff options
context:
space:
mode:
authorScott Wegner <swegner@hdfgroup.org>2008-06-19 18:46:24 (GMT)
committerScott Wegner <swegner@hdfgroup.org>2008-06-19 18:46:24 (GMT)
commit5bb358b012bb5054422cc1f8ed1302bcbc30c93c (patch)
treeaecd4c567c576d0adcd84a8112cc8fbbf22e4288 /test/ohdr.c
parent83ddc834f4108b0b3f62666dbb191a32d5cf3b5b (diff)
downloadhdf5-5bb358b012bb5054422cc1f8ed1302bcbc30c93c.zip
hdf5-5bb358b012bb5054422cc1f8ed1302bcbc30c93c.tar.gz
hdf5-5bb358b012bb5054422cc1f8ed1302bcbc30c93c.tar.bz2
[svn-r15240] Purpose: Fix ohdr Windows timezone bug
Description: On Windows, certain users were having trouble with the "ohdr" test, which does some processing on object header messages. The errors were hard to reproduce on our machines, and we eventually determined that the errors were timezone-specific. The bug is triggered on Windows when processing timestamps very near the "Epoch" (midnight on 1/1/1970)-- the mktime() function does some automatic adjustment on the time to correct for timezones. In the USA, the correction adds a few hours; in Europe, it subtracts, thus giving us times pre-Epoch. This only affects Windows because the Windows mktime() function cannot handle times before 1970-- other systems seemingly can. The fix is to simply create timestamps only as early as 01/02/1970. This way, any timezone adjustment will still be post-Epoch. This bug only affects the ohdr test, and shouldn't be a problem in the library. The earliest timestamps that will actually be read will be around the time HDF5 was created (~1996-7, per Quincey). Tested: VS2005 on WinXP h5committest (kagiso, linew, smirom)
Diffstat (limited to 'test/ohdr.c')
-rw-r--r--test/ohdr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/test/ohdr.c b/test/ohdr.c
index 08fd860..0a25993 100644
--- a/test/ohdr.c
+++ b/test/ohdr.c
@@ -153,7 +153,7 @@ main(void)
*/
TESTING("object header overflow in memory");
for(i = 0; i < 40; i++) {
- time_new = (i + 1) * 1000 + 1;
+ time_new = (i + 1) * 1000 + 1000000;
if(H5O_msg_create(&oh_loc, H5O_MTIME_ID, 0, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0)
FAIL_STACK_ERROR
} /* end for */