add multithreaded gettext() tests
Bruno Haible
bruno@clisp.org
Tue Apr 5 12:08:00 GMT 2005
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)"'
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tst-gettext45.tar.gz
Type: application/x-tgz
Size: 2262 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20050405/5591c726/attachment.bin>
More information about the Libc-alpha
mailing list