On a glibc system (glibc 2.15, Linux 3.8) I get this test failure
from a gnulib testdir:

./../build-aux/test-driver: line 107:  6269 Segmentation fault      "$@" > 
$log_file 2>&1
FAIL: test-duplocale

FAIL test-duplocale (exit status: 139)

(gdb) where
#0  0x00007ffff7a4aa6f in freelocale () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x0000000000400d36 in main () at test-duplocale.c:116

The locale to be freed is NULL; this is an invalid argument to freelocale().
It's better to fix the test in this case:


2016-10-16  Bruno Haible  <br...@clisp.org>

        Fix a test crash.
        * tests/test-duplocale.c (main): Skip the test if the 'newlocale' call
        fails.

diff --git a/tests/test-duplocale.c b/tests/test-duplocale.c
index 498e31d..667b3e2 100644
--- a/tests/test-duplocale.c
+++ b/tests/test-duplocale.c
@@ -72,6 +72,11 @@ main ()
 
   /* Use a per-thread locale.  */
   perthread = newlocale (LC_ALL_MASK, "es_ES.UTF-8", NULL);
+  if (perthread == NULL)
+    {
+      fprintf (stderr, "Skipping test: Spanish Unicode locale is not 
installed\n");
+      return 77;
+    }
   uselocale (perthread);
 
   /* Save the locale in a locale_t object again.  */


Reply via email to