| #include <locale.h> | 
 | #include <stdio.h> | 
 | #include <string.h> | 
 |  | 
 | static int | 
 | do_test (void) | 
 | { | 
 |   static const char test_locale[] = "de_DE.UTF-8"; | 
 |  | 
 |   int res = 0; | 
 |  | 
 |   char buf[20]; | 
 |   size_t l1 = strxfrm (NULL, "ab", 0); | 
 |   size_t l2 = strxfrm (buf, "ab", 1); | 
 |   size_t l3 = strxfrm (buf, "ab", sizeof (buf)); | 
 |   if (l3 < sizeof (buf) && strlen (buf) != l3) | 
 |     { | 
 |       puts ("C locale l3 test failed"); | 
 |       res = 1; | 
 |     } | 
 |  | 
 |   size_t l4 = strxfrm (buf, "ab", l1 + 1); | 
 |   if (l4 < l1 + 1 && strlen (buf) != l4) | 
 |     { | 
 |       puts ("C locale l4 test failed"); | 
 |       res = 1; | 
 |     } | 
 |  | 
 |   buf[l1] = 'Z'; | 
 |   size_t l5 = strxfrm (buf, "ab", l1); | 
 |   if (buf[l1] != 'Z') | 
 |     { | 
 |       puts ("C locale l5 test failed"); | 
 |       res = 1; | 
 |     } | 
 |  | 
 |   if (l1 != l2 || l1 != l3 || l1 != l4 || l1 != l5) | 
 |     { | 
 |       puts ("C locale retval test failed"); | 
 |       res = 1; | 
 |     } | 
 |  | 
 |   if (setlocale (LC_ALL, test_locale) == NULL) | 
 |     { | 
 |       printf ("cannot set locale \"%s\"\n", test_locale); | 
 |       res = 1; | 
 |     } | 
 |   else | 
 |     { | 
 |       l1 = strxfrm (NULL, "ab", 0); | 
 |       l2 = strxfrm (buf, "ab", 1); | 
 |       l3 = strxfrm (buf, "ab", sizeof (buf)); | 
 |       if (l3 < sizeof (buf) && strlen (buf) != l3) | 
 | 	{ | 
 | 	  puts ("UTF-8 locale l3 test failed"); | 
 | 	  res = 1; | 
 | 	} | 
 |  | 
 |       l4 = strxfrm (buf, "ab", l1 + 1); | 
 |       if (l4 < l1 + 1 && strlen (buf) != l4) | 
 | 	{ | 
 | 	  puts ("UTF-8 locale l4 test failed"); | 
 | 	  res = 1; | 
 | 	} | 
 |  | 
 |       buf[l1] = 'Z'; | 
 |       l5 = strxfrm (buf, "ab", l1); | 
 |       if (buf[l1] != 'Z') | 
 | 	{ | 
 | 	  puts ("UTF-8 locale l5 test failed"); | 
 | 	  res = 1; | 
 | 	} | 
 |  | 
 |       if (l1 != l2 || l1 != l3 || l1 != l4 || l1 != l5) | 
 | 	{ | 
 | 	  puts ("UTF-8 locale retval test failed"); | 
 | 	  res = 1; | 
 | 	} | 
 |     } | 
 |  | 
 |   return res; | 
 | } | 
 |  | 
 | #define TEST_FUNCTION do_test () | 
 | #include "../test-skeleton.c" |