[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