(main): Also test strftime with uselocale.
authorUlrich Drepper <drepper@redhat.com>
Sat, 31 Aug 2002 20:15:31 +0000 (20:15 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 31 Aug 2002 20:15:31 +0000 (20:15 +0000)
time/tst-ftime_l.c

index 6ebc973..fc3d78d 100644 (file)
@@ -10,10 +10,12 @@ int
 main (void)
 {
   locale_t l;
+  locale_t old;
   struct tm tm;
   char buf[1000];
   wchar_t wbuf[1000];
   int result = 0;
+  size_t n;
 
   l = newlocale (LC_ALL_MASK, "de_DE.ISO-8859-1", NULL);
   if (l == NULL)
@@ -81,5 +83,44 @@ main (void)
       setlocale (LC_ALL, "C");
     }
 
+  old = uselocale (l);
+
+  n = strftime (buf, sizeof (buf), "%e %^B %Y", &tm);
+
+  /* Switch back.  */
+  (void) uselocale (old);
+
+  if (n == 0)
+    {
+      puts ("strftime after first uselocale failed");
+      result = 1;
+    }
+  else if (strcmp (buf, " 1 M\xc4RZ 2002") != 0)
+    {
+      printf ("strftime in non-C locale: expected \"%s\", got \"%s\"\n",
+             " 1 M\xc4RZ 2002", buf);
+      result = 1;
+    }
+  else
+    {
+      setlocale (LC_ALL, "de_DE.ISO-8859-1");
+      printf ("got \"%s\"\n", buf);
+      setlocale (LC_ALL, "C");
+    }
+
+  if (strftime (buf, sizeof (buf), "%e %^B %Y", &tm) == 0)
+    {
+      puts ("strftime after second uselocale failed");
+      result = 1;
+    }
+  else if (strcmp (buf, " 1 MARCH 2002") != 0)
+    {
+      printf ("initial strftime: expected \"%s\", got \"%s\"\n",
+             " 1 MARCH 2002", buf);
+      result = 1;
+    }
+  else
+    printf ("got \"%s\"\n", buf);
+
   return result;
 }