summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-07-15 08:59:35 +0000
committerUlrich Drepper <drepper@redhat.com>2003-07-15 08:59:35 +0000
commitdade1ade05ce0c447ceeb66a11977892aeff9ba8 (patch)
treee1f3510503722c3e6b304816c46e11dbc0102a02
parent73299943388c0eebf6a9c8d6288e9da8289f9dca (diff)
Update.
2003-07-15 Ulrich Drepper <drepper@redhat.com> * io/test-utime.c (main): Make test yet more robust.
-rw-r--r--ChangeLog4
-rw-r--r--io/test-utime.c15
-rw-r--r--localedata/ChangeLog7
-rw-r--r--localedata/collate-test.c21
-rw-r--r--localedata/xfrm-test.c21
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;
}