about summary refs log tree commit diff
path: root/localedata/xfrm-test.c
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 /localedata/xfrm-test.c
parent73299943388c0eebf6a9c8d6288e9da8289f9dca (diff)
downloadglibc-dade1ade05ce0c447ceeb66a11977892aeff9ba8.tar.gz
glibc-dade1ade05ce0c447ceeb66a11977892aeff9ba8.tar.xz
glibc-dade1ade05ce0c447ceeb66a11977892aeff9ba8.zip
Update.
2003-07-15  Ulrich Drepper  <drepper@redhat.com>

	* io/test-utime.c (main): Make test yet more robust.
Diffstat (limited to 'localedata/xfrm-test.c')
-rw-r--r--localedata/xfrm-test.c21
1 files changed, 15 insertions, 6 deletions
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;
 }