diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | io/test-utime.c | 15 | ||||
-rw-r--r-- | localedata/ChangeLog | 7 | ||||
-rw-r--r-- | localedata/collate-test.c | 21 | ||||
-rw-r--r-- | localedata/xfrm-test.c | 21 |
5 files changed, 50 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog index bdbbf4b114..291dbc2063 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-07-15 Ulrich Drepper <drepper@redhat.com> + + * io/test-utime.c (main): Make test yet more robust. + 2003-07-14 Ulrich Drepper <drepper@redhat.com> More cancellation handling fixups. diff --git a/io/test-utime.c b/io/test-utime.c index 24c287160b..2f8aa57266 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; diff --git a/localedata/ChangeLog b/localedata/ChangeLog index fe67746cb2..f59607c6f4 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,10 @@ +2003-07-13 Petter Reinholdtsen <pere@hungry.com> + + * collate-test.c (main): Correct handling of files with more then + 100 lines. Print error message if argument is missing, instead of + segfaulting. + * xfrm-test.c: Likewise. + 2003-07-02 Ulrich Drepper <drepper@redhat.com> * locales/lo_LA: Update collation info for U0EAF and U0EC6. diff --git a/localedata/collate-test.c b/localedata/collate-test.c index 3aa873af4b..21a06d8593 100644 --- a/localedata/collate-test.c +++ b/localedata/collate-test.c @@ -1,5 +1,5 @@ /* Test collation function using real data. - Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -27,8 +27,8 @@ struct lines { - const char *key; - const char *line; + char *key; + char *line; }; static int xstrcoll (const void *, const void *); @@ -43,6 +43,9 @@ main (int argc, char *argv[]) size_t len = 0; size_t n; + if (argc < 2) + error (1, 0, "usage: %s <random seed>", argv[0]); + setlocale (LC_ALL, ""); nstrings_max = 100; @@ -63,8 +66,8 @@ main (int argc, char *argv[]) if (nstrings == nstrings_max) { strings = (struct lines *) realloc (strings, - (nstrings_max *= 2 - * sizeof (*strings))); + (nstrings_max *= 2) + * sizeof (*strings)); if (strings == NULL) { perror (argv[0]); @@ -78,6 +81,7 @@ main (int argc, char *argv[]) strings[nstrings].key = strndup (line, l); ++nstrings; } + free (line); /* First shuffle. */ srandom (atoi (argv[1])); @@ -105,7 +109,12 @@ main (int argc, char *argv[]) /* Print the result. */ for (n = 0; n < nstrings; ++n) - fputs (strings[n].line, stdout); + { + fputs (strings[n].line, stdout); + free (strings[n].line); + free (strings[n].key); + } + free (strings); return result; } diff --git a/localedata/xfrm-test.c b/localedata/xfrm-test.c index 4ebef13eae..5fe517a2e8 100644 --- a/localedata/xfrm-test.c +++ b/localedata/xfrm-test.c @@ -1,5 +1,5 @@ /* Test collation function via transformation using real data. - Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -27,8 +27,8 @@ struct lines { - const char *xfrm; - const char *line; + char *xfrm; + char *line; }; static int xstrcmp (const void *, const void *); @@ -43,6 +43,9 @@ main (int argc, char *argv[]) size_t len = 0; size_t n; + if (argc < 2) + error (1, 0, "usage: %s <random seed>", argv[0]); + setlocale (LC_ALL, ""); nstrings_max = 100; @@ -65,8 +68,8 @@ main (int argc, char *argv[]) if (nstrings == nstrings_max) { strings = (struct lines *) realloc (strings, - (nstrings_max *= 2 - * sizeof (*strings))); + (nstrings_max *= 2) + * sizeof (*strings)); if (strings == NULL) { perror (argv[0]); @@ -87,6 +90,7 @@ main (int argc, char *argv[]) line[l] = saved; ++nstrings; } + free (line); /* First shuffle. */ srandom (atoi (argv[1])); @@ -116,7 +120,12 @@ main (int argc, char *argv[]) /* Print the result. */ for (n = 0; n < nstrings; ++n) - fputs (strings[n].line, stdout); + { + fputs (strings[n].line, stdout); + free (strings[n].line); + free (strings[n].xfrm); + } + free (strings); return result; } |