On 3/29/07, Bruno Haible <[EMAIL PROTECTED]> wrote:
On AIX 5.1, with gnulib as of today (29 March) the test-stat-time test fails.
More precisely, on a 'jfs2' file system, the test fails in the third ASSERT
of test_mtime. I get these time stamps:
[...]
I can see two ways to fix the test:
- Turn this ASSERT into an 'if' that does appropriate action if not fulfilled.
- Immediately after renaming the file, write something into it, so that also
on this weird filesystem the ctime is bumped.
Does the following patch fix the problem?
2007-03-30 James Youngman <[EMAIL PROTECTED]>
* tests/test-stat-time.c (prepare_test): use chmod() rather than
rename() to change the ctime of a file (because ctime is
unaffected by rename on jfs2 on AIX 5.1).
(main): Start by doing cleanup, in case a previous run failed
leaving test files behind.
Index: test-stat-time.c
===================================================================
RCS file: /sources/gnulib/gnulib/tests/test-stat-time.c,v
retrieving revision 1.3
diff -u -p -r1.3 test-stat-time.c
--- test-stat-time.c 27 Mar 2007 18:51:18 -0000 1.3
+++ test-stat-time.c 29 Mar 2007 23:22:18 -0000
@@ -84,12 +84,12 @@ prepare_test (struct stat *statinfo, str
sleep (2);
create_file ("t-stt-stamp2");
sleep (2);
- ASSERT (rename ("t-stt-testfile", "t-stt-renamed") == 0);
+ ASSERT (chmod ("t-stt-testfile", 0400) == 0);
sleep (2);
create_file ("t-stt-stamp3");
do_stat ("t-stt-stamp1", &statinfo[0]);
- do_stat ("t-stt-renamed", &statinfo[1]);
+ do_stat ("t-stt-testfile", &statinfo[1]);
do_stat ("t-stt-stamp2", &statinfo[2]);
do_stat ("t-stt-stamp3", &statinfo[3]);
@@ -164,6 +164,7 @@ main ()
signal (SIGTERM, cleanup);
#endif
+ cleanup (0);
prepare_test (statinfo, modtimes);
test_mtime (statinfo, modtimes);
test_birthtime (statinfo, modtimes, birthtimes);