]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Rename test gettext-7 to intl-thread-3 and support more platforms.
authorBruno Haible <bruno@clisp.org>
Sat, 20 Oct 2018 15:54:03 +0000 (17:54 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 21 Oct 2018 20:01:25 +0000 (22:01 +0200)
* gettext-tools/tests/intl-thread-3: Renamed from gettext-tools/tests/gettext-7.
Don't limit to fixed set of platforms.
* gettext-tools/tests/intl-thread-3-prg.c: Renamed from
gettext-tools/tests/gettext-7-prg.c. Expect locale names as arguments.
* gettext-tools/tests/intl-thread-3.po: Renamed from
gettext-tools/tests/gettext-7.po.
* gettext-tools/tests/Makefile.am: Update.

.gitignore
gettext-tools/tests/Makefile.am
gettext-tools/tests/gettext-7 [deleted file]
gettext-tools/tests/intl-thread-3 [new file with mode: 0755]
gettext-tools/tests/intl-thread-3-prg.c [moved from gettext-tools/tests/gettext-7-prg.c with 72% similarity]
gettext-tools/tests/intl-thread-3.po [moved from gettext-tools/tests/gettext-7.po with 100% similarity]

index 82b740a0fa0097fb8c30ff2488b9b9e50e5751c0..158434f678a259be7bc6bd98be63163b8be41f55 100644 (file)
@@ -659,8 +659,6 @@ autom4te.cache/
 /gettext-tools/tests/fc4.exe
 /gettext-tools/tests/fc5
 /gettext-tools/tests/fc5.exe
-/gettext-tools/tests/gettext-7-prg
-/gettext-tools/tests/gettext-7-prg.exe
 /gettext-tools/tests/gettext-8-prg
 /gettext-tools/tests/gettext-8-prg.exe
 /gettext-tools/tests/gettextpo-1-prg
@@ -679,6 +677,8 @@ autom4te.cache/
 /gettext-tools/tests/intl-thread-1-prg.exe
 /gettext-tools/tests/intl-thread-2-prg
 /gettext-tools/tests/intl-thread-2-prg.exe
+/gettext-tools/tests/intl-thread-3-prg
+/gettext-tools/tests/intl-thread-3-prg.exe
 /gettext-tools/tests/sentence-1-prg
 /gettext-tools/tests/sentence-1-prg.exe
 /gettext-tools/tests/testlocale
index 244b1c42ed261903b1480f933ee1d0cabb777e1d..4ed721c280d8cb9d8cfe4723c8c519622e265b39 100644 (file)
@@ -23,8 +23,8 @@ MOSTLYCLEANFILES = core *.stackdump
 TESTS = gettext-1 gettext-2 \
        intl-1 intl-2 intl-3 intl-4 \
        intl-setlocale-1 intl-setlocale-2 \
-       intl-thread-1 intl-thread-2 \
-       gettext-7 gettext-8 \
+       intl-thread-1 intl-thread-2 intl-thread-3 \
+       gettext-8 \
        msgattrib-1 msgattrib-2 msgattrib-3 msgattrib-4 msgattrib-5 \
        msgattrib-6 msgattrib-7 msgattrib-8 msgattrib-9 msgattrib-10 \
        msgattrib-11 msgattrib-12 msgattrib-13 msgattrib-14 msgattrib-15 \
@@ -167,7 +167,7 @@ EXTRA_DIST += init.sh init.cfg $(TESTS) \
        intl-1.po intl-2-1.po intl-2-2.po intl-4.po \
        intl-setlocale-1-1.po intl-setlocale-1-2.po intl-setlocale-2.po \
        intl-thread-1.po intl-thread-2-1.po intl-thread-2-2.po \
-       gettext-7.po \
+       intl-thread-3.po \
        gettextpo-1.de.po \
        xgettext-1 \
        xgettext-c-1 xg-c-21.c \
@@ -224,7 +224,7 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
 LDADD = $(LDADD_@USE_INCLUDED_LIBINTL@) @INTL_MACOSX_LIBS@
 LDADD_yes = ../intl/libintl.la @LTLIBTHREAD@
 LDADD_no = ../intl/libgnuintl.la @LTLIBTHREAD@ @LTLIBINTL@
-check_PROGRAMS = tstgettext tstngettext testlocale intl-1-prg intl-3-prg intl-4-prg intl-setlocale-1-prg intl-setlocale-2-prg intl-thread-1-prg intl-thread-2-prg gettext-7-prg gettext-8-prg cake fc3 fc4 fc5 gettextpo-1-prg sentence-1-prg
+check_PROGRAMS = tstgettext tstngettext testlocale intl-1-prg intl-3-prg intl-4-prg intl-setlocale-1-prg intl-setlocale-2-prg intl-thread-1-prg intl-thread-2-prg intl-thread-3-prg gettext-8-prg cake fc3 fc4 fc5 gettextpo-1-prg sentence-1-prg
 tstgettext_SOURCES = tstgettext.c setlocale.c
 tstgettext_CFLAGS = -DINSTALLDIR=\".\"
 tstgettext_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
@@ -252,11 +252,11 @@ intl_thread_2_prg_CFLAGS = $(intl_thread_2_prg_CFLAGS_@HAVE_NEWLOCALE@)
 intl_thread_2_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
 intl_thread_2_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(intl_thread_2_prg_LDADD_@HAVE_NEWLOCALE@)
 intl_thread_2_prg_LDADD_1 = -lpthread
-gettext_7_prg_SOURCES = gettext-7-prg.c
-gettext_7_prg_CFLAGS = $(gettext_7_prg_CFLAGS_@HAVE_NEWLOCALE@)
-gettext_7_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
-gettext_7_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(gettext_7_prg_LDADD_@HAVE_NEWLOCALE@)
-gettext_7_prg_LDADD_1 = -lpthread
+intl_thread_3_prg_SOURCES = intl-thread-3-prg.c
+intl_thread_3_prg_CFLAGS = $(intl_thread_3_prg_CFLAGS_@HAVE_NEWLOCALE@)
+intl_thread_3_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
+intl_thread_3_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(intl_thread_3_prg_LDADD_@HAVE_NEWLOCALE@)
+intl_thread_3_prg_LDADD_1 = -lpthread
 gettext_8_prg_SOURCES = gettext-8-prg.c
 gettext_8_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
 cake_SOURCES = plural-1-prg.c setlocale.c
diff --git a/gettext-tools/tests/gettext-7 b/gettext-tools/tests/gettext-7
deleted file mode 100755 (executable)
index cf9f114..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#! /bin/sh
-. "${srcdir=.}/init.sh"; path_prepend_ . ../src
-
-# Test that on glibc systems, gettext() in multithreaded applications works
-# correctly if different threads operate in different locales referring to
-# the same catalog file but with different encodings.
-
-# This test works only on glibc and MacOS X systems.
-: ${host_os=unknown}
-: ${GLIBC2=no}
-{ case "$host_os" in
-    *-gnu*) test "$GLIBC2" = yes ;;
-    darwin*) true ;;
-    *) false ;;
-  esac
-} || {
-  echo "Skipping test: not a glibc or Mac OS X system"
-  Exit 77
-}
-
-# This test works only on systems that have a de_DE.ISO-8859-1 and
-# de_DE.UTF-8 locale installed.
-missing_locale=`../gettext-7-prg 1`
-if test -n "$missing_locale"; then
-  if test -f /usr/bin/localedef; then
-    echo "Skipping test: locale ${missing_locale} not installed"
-  else
-    echo "Skipping test: locale ${missing_locale} not supported"
-  fi
-  Exit 77
-fi
-
-test -d gt-7 || mkdir gt-7
-test -d gt-7/de_DE || mkdir gt-7/de_DE
-test -d gt-7/de_DE/LC_MESSAGES || mkdir gt-7/de_DE/LC_MESSAGES
-
-: ${MSGFMT=msgfmt}
-${MSGFMT} -o gt-7/de_DE/LC_MESSAGES/tstthread.mo "$abs_srcdir"/gettext-7.po
-
-../gettext-7-prg > gt-7.out
-case $? in
-  0) ;;
-  77)
-    echo "Skipping test: not a glibc >= 2.3 or MacOS X >= 10.5 system"
-    Exit 77
-    ;;
-  *)
-    Exit 1
-    ;;
-esac
-
-Exit 0
diff --git a/gettext-tools/tests/intl-thread-3 b/gettext-tools/tests/intl-thread-3
new file mode 100755 (executable)
index 0000000..9ca30de
--- /dev/null
@@ -0,0 +1,43 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that gettext() in multithreaded applications works correctly if
+# different threads operate in different locales referring to the same
+# catalog file but with different encodings.
+
+# Let's use two locales that configure already checked for: French.
+# The PO file is actually German, not French, but that doesn't matter.
+
+test -d in-th-3 || mkdir in-th-3
+test -d in-th-3/fr || mkdir in-th-3/fr
+test -d in-th-3/fr/LC_MESSAGES || mkdir in-th-3/fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o in-th-3/fr/LC_MESSAGES/tstthread.mo "$abs_srcdir"/intl-thread-3.po
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none && test $LOCALE_FR_UTF8 != none; then
+  prepare_locale_ in-th-3/fr in-th-3/$LOCALE_FR
+  prepare_locale_ in-th-3/fr in-th-3/$LOCALE_FR_UTF8
+  ../intl-thread-3-prg $LOCALE_FR $LOCALE_FR_UTF8 > in-th-3.out
+  case $? in
+    0) ;;
+    77)
+      echo "Skipping test: POSIX per-thread locales not supported"
+      Exit 77
+      ;;
+    *)
+      Exit 1
+      ;;
+  esac
+else
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no traditional and modern french locales are installed"
+  else
+    echo "Skipping test: no traditional and modern french locales are supported"
+  fi
+  Exit 77
+fi
+
+Exit 0
similarity index 72%
rename from gettext-tools/tests/gettext-7-prg.c
rename to gettext-tools/tests/intl-thread-3-prg.c
index 9574da098bafdff405acb6f3cb133456b18d7387..c9ff0bfc737e229662ff69defcf7290aa23c9952 100644 (file)
@@ -1,5 +1,5 @@
-/* Test program, used by the gettext-7 test.
-   Copyright (C) 2005-2007, 2009-2010, 2015-2016 Free Software Foundation, Inc.
+/* Test program, used by the intl-thread-3 test.
+   Copyright (C) 2005-2007, 2009-2010, 2015-2016, 2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 #include <stdio.h>
 #include <string.h>
 
-#if USE_POSIX_THREADS && ((__GLIBC__ >= 2 && !defined __UCLIBC__) || (defined __APPLE__ && defined __MACH__)) && HAVE_USELOCALE
+#if USE_POSIX_THREADS && HAVE_USELOCALE
 
 #include <pthread.h>
 
 #undef _LIBINTL_H
 #include "libgnuintl.h"
 
-/* Name of German locale in ISO-8859-1 or ISO-8859-15 encoding.  */
-#if __GLIBC__ >= 2
-# define LOCALE_DE_ISO8859 "de_DE.ISO-8859-1"
-#elif defined __APPLE__ && defined __MACH__ /* MacOS X */
-# define LOCALE_DE_ISO8859 "de_DE.ISO8859-1"
-#else
-# define LOCALE_DE_ISO8859 "de_DE"
-#endif
-
-/* Name of German locale in UTF-8 encoding.  */
-#define LOCALE_DE_UTF8 "de_DE.UTF-8"
+/* Name of locale to use in thread1.  */
+const char *locale_name_1;
+/* Name of locale to use in thread2.  */
+const char *locale_name_2;
 
 /* Set to 1 if the program is not behaving correctly.  */
 int result;
@@ -84,7 +77,7 @@ thread1_execution (void *arg)
   char *s;
 
   waitfor (1);
-  uselocale (newlocale (LC_ALL_MASK, LOCALE_DE_ISO8859, NULL));
+  uselocale (newlocale (LC_ALL_MASK, locale_name_1, NULL));
   setto (2);
 
   /* Here we expect output in ISO-8859-1.  */
@@ -118,7 +111,7 @@ thread2_execution (void *arg)
   char *s;
 
   waitfor (2);
-  uselocale (newlocale (LC_ALL_MASK, LOCALE_DE_UTF8, NULL));
+  uselocale (newlocale (LC_ALL_MASK, locale_name_2, NULL));
   setto (1);
 
   /* Here we expect output in UTF-8.  */
@@ -146,40 +139,19 @@ thread2_execution (void *arg)
   return NULL;
 }
 
-static void
-check_locale_exists (const char *name)
-{
-  if (newlocale (LC_ALL_MASK, name, NULL) == NULL)
-    {
-      printf ("%s\n", name);
-      exit (1);
-    }
-}
-
 int
 main (int argc, char *argv[])
 {
-  int arg;
   pthread_t thread1;
   pthread_t thread2;
 
-  arg = (argc > 1 ? atoi (argv[1]) : 0);
-  switch (arg)
-    {
-    case 1:
-      /* Check for the existence of the first locale.  */
-      check_locale_exists (LOCALE_DE_ISO8859);
-      /* Check for the existence of the second locale.  */
-      check_locale_exists (LOCALE_DE_UTF8);
-      return 0;
-    default:
-      break;
-    }
+  locale_name_1 = argv[1];
+  locale_name_2 = argv[2];
 
   unsetenv ("LANGUAGE");
   unsetenv ("OUTPUT_CHARSET");
   textdomain ("tstthread");
-  bindtextdomain ("tstthread", "gt-7");
+  bindtextdomain ("tstthread", "in-th-3");
   result = 0;
 
   flipflop = 1;