bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

duplocale: Avoid test failure on AIX 7


From: Bruno Haible
Subject: duplocale: Avoid test failure on AIX 7
Date: Tue, 18 Dec 2018 10:08:29 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-139-generic; KDE/5.18.0; x86_64; ; )

The duplocale test also fails on AIX 7.2:
  1. for the same reason as the localename test: uselocale() is
     undocumented and broken.
  2. Also, nl_langinfo_l is undocumented and broken.

This patch works around it by disabling the sensitive parts of the test.


2018-12-18  Bruno Haible  <address@hidden>

        duplocale: Avoid test failure on AIX 7.
        * modules/duplocale-tests (Files): Add m4/intl-thread-locale.m4.
        (configure.ac): Invoke gt_FUNC_USELOCALE.
        * tests/test-duplocale.c: Test HAVE_WORKING_USELOCALE instead of
        HAVE_USELOCALE. Assume that nl_langinfo_l only works when uselocale
        works.

diff --git a/modules/duplocale-tests b/modules/duplocale-tests
index baa9a63..29b2a1a 100644
--- a/modules/duplocale-tests
+++ b/modules/duplocale-tests
@@ -2,13 +2,15 @@ Files:
 tests/test-duplocale.c
 tests/signature.h
 tests/macros.h
+m4/intl-thread-locale.m4
 
 Depends-on:
 langinfo
 
 configure.ac:
-AC_CHECK_FUNCS_ONCE([duplocale uselocale strfmon_l snprintf_l nl_langinfo_l])
+AC_CHECK_FUNCS_ONCE([duplocale strfmon_l snprintf_l nl_langinfo_l])
 AC_CHECK_HEADERS_ONCE([monetary.h])
+gt_FUNC_USELOCALE
 
 Makefile.am:
 TESTS += test-duplocale
diff --git a/tests/test-duplocale.c b/tests/test-duplocale.c
index 1cf1089..2097716 100644
--- a/tests/test-duplocale.c
+++ b/tests/test-duplocale.c
@@ -59,7 +59,7 @@ get_locale_dependent_values (struct locale_dependent_values 
*result)
   /* result->time is usually "janvier" */
 }
 
-#if HAVE_USELOCALE
+#if HAVE_WORKING_USELOCALE
 
 static int
 test_with_uselocale (void)
@@ -135,7 +135,7 @@ test_with_uselocale (void)
 
 #endif
 
-#if HAVE_STRFMON_L || HAVE_SNPRINTF_L || HAVE_NL_LANGINFO_L
+#if HAVE_STRFMON_L || HAVE_SNPRINTF_L || (HAVE_NL_LANGINFO_L && 
HAVE_WORKING_USELOCALE)
 
 static void
 get_locale_dependent_values_from (struct locale_dependent_values *result, 
locale_t locale)
@@ -150,7 +150,7 @@ get_locale_dependent_values_from (struct 
locale_dependent_values *result, locale
               "%g", 3.5);
   /* result->numeric is usually "3,5" */
 #endif
-#if HAVE_NL_LANGINFO_L
+#if HAVE_NL_LANGINFO_L && HAVE_WORKING_USELOCALE
   strcpy (result->time, nl_langinfo_l (MON_1, locale));
   /* result->time is usually "janvier" */
 #endif
@@ -201,7 +201,7 @@ test_with_locale_parameter (void)
 #if HAVE_SNPRINTF_L
     ASSERT (strcmp (results.numeric, expected_results.numeric) == 0);
 #endif
-#if HAVE_NL_LANGINFO_L
+#if HAVE_NL_LANGINFO_L && HAVE_WORKING_USELOCALE
     ASSERT (strcmp (results.time, expected_results.time) == 0);
 #endif
   }
@@ -217,10 +217,10 @@ int
 main ()
 {
   int skipped = 0;
-#if HAVE_USELOCALE
+#if HAVE_WORKING_USELOCALE
   skipped |= test_with_uselocale ();
 #endif
-#if HAVE_STRFMON_L || HAVE_SNPRINTF_L || HAVE_NL_LANGINFO_L
+#if HAVE_STRFMON_L || HAVE_SNPRINTF_L || (HAVE_NL_LANGINFO_L && 
HAVE_WORKING_USELOCALE)
   skipped |= test_with_locale_parameter ();
 #endif
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]