diff options
Diffstat (limited to 'io/test-utime.c')
-rw-r--r-- | io/test-utime.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/io/test-utime.c b/io/test-utime.c index 24c2871..2f8aa57 100644 --- a/io/test-utime.c +++ b/io/test-utime.c @@ -76,6 +76,12 @@ main (int argc, char *argv[]) return 1; } + /* The clocks used to set the modification time and that used in the + time() call need not be the same. They need not have the same + precision. Therefore we delay the following operation by one + second which makes sure we can compare with second precision. */ + sleep (1); + if (utime (file, NULL)) { perror ("utime NULL"); @@ -83,6 +89,8 @@ main (int argc, char *argv[]) return 1; } + sleep (1); + now2 = time (NULL); if (now2 == (time_t)-1) { @@ -112,12 +120,7 @@ main (int argc, char *argv[]) return 1; } -#ifdef _STATBUF_ST_NSEC -# define CORR (stnow.st_mtim.tv_nsec == 0 ? 0 : 1) -#else -# define CORR 0 -#endif - if (stnow.st_mtime + CORR < now1 || stnow.st_mtime > now2) + if (stnow.st_mtime < now1 || stnow.st_mtime > now2) { printf ("modtime %ld <%ld >%ld\n", stnow.st_mtime, now1, now2); return 1; |