This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

add multithreaded gettext() tests


gettext(), like all other locale sensitive functions, should use
_NL_CURRENT_LOCALE, i.e. the thread's locale if it has been set through
uselocale(), otherwise the global locale set through setlocale().
Here is a patch to add new tests that verify this.

The tests fail. Please add them to libc only when you are ready to take the
fix, from my next mail.

Bruno


2005-03-27  Bruno Haible  <bruno@clisp.org>

	* intl/tst-gettext4.c: New file.
	* intl/tst-gettext4.sh: New file.
	* intl/tst-gettext4-de.po: New file.
	* intl/tst-gettext4-fr.po: New file.
	* intl/tst-gettext5.c: New file.
	* intl/tst-gettext5.sh: New file.
	* (distribute): Add tst-gettext4.sh, tst-gettext4-de.po,
	tst-gettext4-fr.po, tst-gettext5.sh.
	(multithread-test-srcs): New variable.
	(test-srcs): Add its contents.
	(tests): Depend on tst-gettext4.out, tst-gettext5.out.
	(tst-gettext4.out, tst-gettext5.out): New rules.
	(CFLAGS-tst-gettext4.c, CFLAGS-tst-gettext5.c): New variables.
	Add rule for linking the multithread-test-srcs with the appropriate
	thread-library.

--- glibc-20050322/intl/Makefile.bak2	Sun Mar 27 23:27:02 2005
+++ glibc-20050322/intl/Makefile	Mon Mar 28 04:14:44 2005
@@ -30,9 +30,17 @@
 	     tst-translit.sh translit.po \
 	     tst-gettext2.sh tstlang1.po tstlang2.po \
 	     tst-codeset.sh tstcodeset.po \
-	     tst-gettext3.sh
+	     tst-gettext3.sh \
+	     tst-gettext4.sh tst-gettext4-de.po tst-gettext4-fr.po \
+	     tst-gettext5.sh
 
+include ../Makeconfig
+
+multithread-test-srcs := tst-gettext4 tst-gettext5
 test-srcs := tst-gettext tst-translit tst-gettext2 tst-codeset tst-gettext3
+ifeq ($(have-thread-library),yes)
+test-srcs += $(multithread-test-srcs)
+endif
 tests = tst-ngettext
 
 before-compile = $(objpfx)msgs.h
@@ -42,8 +50,6 @@
 generated = msgs.h mtrace-tst-gettext tst-gettext.mtrace
 generated-dirs := domaindir localedir
 
-include ../Makeconfig
-
 ifneq (no,$(BISON))
 plural.c: plural.y
 	$(BISON) $(BISONFLAGS) $@ $^
@@ -60,6 +66,9 @@
 ifneq ($(strip $(MSGFMT)),:)
 tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \
        $(objpfx)tst-codeset.out $(objpfx)tst-gettext3.out
+ifeq ($(have-thread-library),yes)
+tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out
+endif
 ifneq (no,$(PERL))
 tests: $(objpfx)mtrace-tst-gettext
 endif
@@ -77,6 +86,10 @@
 	$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
 $(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3
 	$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
+$(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
+	$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
+$(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5
+	$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
 endif
 endif
 
@@ -89,11 +102,26 @@
 CFLAGS-tst-gettext2.c = -DOBJPFX=\"$(objpfx)\"
 CFLAGS-tst-codeset.c = -DOBJPFX=\"$(objpfx)\"
 CFLAGS-tst-gettext3.c = -DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-gettext4.c = -DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-gettext5.c = -DOBJPFX=\"$(objpfx)\"
+
+ifeq ($(have-thread-library),yes)
+ifeq (yes,$(build-shared))
+$(addprefix $(objpfx),$(multithread-test-srcs)): $(shared-thread-library)
+else
+$(addprefix $(objpfx),$(multithread-test-srcs)): $(static-thread-library)
+endif
+ifeq (yes,$(build-bounded))
+$(multithread-test-srcs:%=$(objpfx)%-bp): $(bounded-thread-library)
+endif
+endif
 
 $(objpfx)tst-translit.out: $(objpfx)tst-gettext.out
 $(objpfx)tst-gettext2.out: $(objpfx)tst-gettext.out
 $(objpfx)tst-codeset.out: $(objpfx)tst-gettext.out
 $(objpfx)tst-gettext3.out: $(objpfx)tst-gettext.out
+$(objpfx)tst-gettext4.out: $(objpfx)tst-gettext.out
+$(objpfx)tst-gettext5.out: $(objpfx)tst-gettext.out
 
 CPPFLAGS += -D'LOCALEDIR="$(msgcatdir)"' \
 	    -D'LOCALE_ALIAS_PATH="$(msgcatdir)"'

Attachment: tst-gettext45.tar.gz
Description: application/tgz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]