1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-14 14:01:48 +03:00
Commit Graph

9 Commits

Author SHA1 Message Date
Paul Eggert
5191133e01 utimensat-tests, etc.: try to fix some races
Problem reported by Bernhard Voelker in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00071.html>.
I don't know whether this patch fixes that race condition, but it
fixes *some* race conditions, so it should be a win.
* modules/chown-tests (Depends-on):
* modules/fchownat-tests (Depends-on):
* modules/fdutimensat-tests (Depends-on):
* modules/futimens-tests (Depends-on):
* modules/lchown-tests (Depends-on):
* modules/stat-time-tests (Depends-on):
* modules/utimens-tests (Depends-on):
* modules/utimensat-tests (Depends-on):
Depend on nanosleep, not usleep.
* modules/chown-tests (test_chown_LDADD):
* modules/lchown-tests (test_lchown_LDADD):
* modules/stat-time-tests (test_stat_time_LDADD):
New macro.
* modules/fchownat-tests (test_fchownat_LDADD):
* modules/fdutimensat-tests (test_fdutimensat_LDADD):
* modules/futimens-tests (test_futimens_LDADD):
* modules/utimens-tests (test_utimens_LDADD):
* modules/utimensat-tests (test_utimensat_LDADD):
Add $(LIB_NANOSLEEP).
* modules/stat-time-tests (Files): Add tests/nap.h.
* tests/nap.h: Include <limits.h>, for INT_MAX.
(lt_mtime): Remove.
(diff_timespec): New function.
(get_stat): Rename from get_mtime.  All callers changed.
(nap_works): Determine the needed delay by inspecting the
file system's timestamp jumps; this should be more reliable.
Look at both mtime and ctime, and take the maximum of the two jumps.
(nap_works, guess_delay):
Return a nanosecond cound, not a microsecond count.
All callers changed.
(nap_works, nap): Use nanosleep, not usleep.  Check for nanosleep
failure.
(nap): Multiply the guess by 1.125, to accommodate the case where
the file system's clock is a bit slower than nanosleep's clock.
* tests/test-stat-time.c (BASE): New macro.
Include nap.h.
(nap): Remove; nap.h now defines this.  This removes a duplicate
implementation of 'nap'.
2013-04-30 23:14:41 -07:00
Bruno Haible
987e5651e8 Refactor common macros used in tests. 2009-12-24 21:01:42 +01:00
Eric Blake
6038ee4b82 usleep: use it to simplify tests
Blindly using usleep makes it easier to write tests.

* modules/stat-time-tests (Depends-on): Add usleep.
(configure.ac): Drop usleep check.
* modules/chown-tests (Depends-on, configure.ac): Likewise.
* modules/lchown-tests (Depends-on, configure.ac): Likewise.
* modules/fdutimensat-tests (Depends-on, configure.ac): Likewise.
* modules/futimens-tests (Depends-on, configure.ac): Likewise.
* modules/openat-tests (Depends-on, configure.ac): Likewise.
* modules/utimens-tests (Depends-on, configure.ac): Likewise.
* modules/utimensat-tests (Depends-on, configure.ac): Likewise.
* modules/pipe-filter-gi-tests (Depends-on, configure.ac):
Likewise.
* tests/test-chown.h (nap): Rely on nicer usleep semantics.
* tests/test-lchown.h (nap): Likewise.
* tests/test-pipe-filter-gi2-main.c (small_nap): Likewise.
* tests/test-stat-time.c (nap): Likewise.
* tests/test-utimens-common.h (nap): Update comments.

Signed-off-by: Eric Blake <ebb9@byu.net>
2009-11-17 22:33:56 -07:00
Eric Blake
17090f6df9 stat-time-tests: minor cleanups
* modules/stat-time-tests (configure.ac): Use AC_CHECK_FUNCS_ONCE.
* tests/test-stat-time.c (nap): Separate assignment from call.
Suggested by Paolo Bonzini and Bruno Haible.

Signed-off-by: Eric Blake <ebb9@byu.net>
2009-10-12 20:57:13 -06:00
Jim Meyering
fd35e151ef stat-time-tests: check for the usleep function
* modules/stat-time-tests (configure.ac): Now that we test HAVE_USLEEP.
2009-10-10 11:07:39 +02:00
Bruno Haible
a49cfc24f0 Most tests don't need module 'close' any more. 2009-08-11 12:52:19 +02:00
Bruno Haible
d626b70f14 Fix build error on mingw with the modules sys_select and unistd. 2009-07-19 17:16:51 +02:00
Bruno Haible
9a665936ac Make test-stat-time pass on mingw. 2008-04-28 00:12:56 +02:00
Bruno Haible
735c00a2f3 2007-03-27 Bruno Haible <bruno@clisp.org>
* lib/stat-time.h: Include <sys/stat.h>.
2007-03-27  James Youngman  <jay@gnu.org>
        * lib/stat-time.h (get_stat_birthtime): New function for
          retrieving st_birthtime as provided by UFS2 (hence *BSD).
        * m4/stat-time.m4 (gl_STAT_BIRTHTIME): Probe for st_birthtime
          and its variants.
        * modules/stat-time (configure.ac): call gl_STAT_BIRTHTIME.
        * modules/stat-time-test: New file.
        * tests/test-stat-time.c: New test, devised by Bruno Haible.
2007-03-27 11:01:11 +00:00