git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Thomas Rast" <trast@student.ethz.ch>,
	"Sam Reed" <sam@reedyboy.net>, "Jan Krüger" <jk@jk.gs>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 26/63] gettext tests: add GETTEXT_POISON=YesPlease Makefile parameter
Date: Sat,  4 Sep 2010 22:10:25 +0000	[thread overview]
Message-ID: <1283638229-14199-6-git-send-email-avarab@gmail.com> (raw)
In-Reply-To: <1283638229-14199-1-git-send-email-avarab@gmail.com>

Add a new GETTEXT_POISON=YesPlease Makefile debug target. With this
target every invocation of _(s) will return "# GETTEXT POISON #"
instead of `s' or the msgstr that `s` would look up.

This target is intended to sanity check the gettextization series
against the test suite.

If the test suite is relying on the US English output of Git the test
should either have a NO_GETTEXT_POISON prerequisite, or the message in
question shouldn't be translated because it's a plumbing message.

We won't catch everything with this since we don't have 100% test
coverage, but the chances of us doing so are much larger.

The reason I'm using "# GETTEXT POISON #" is that a lot of tests that
rely on the fake editor would break if it wasn't a comment, since the
comment message that's inserted on e.g. `git commit --amend' is
translatable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Makefile      |    9 +++++++++
 gettext.h     |    4 ++++
 t/test-lib.sh |    1 +
 3 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile
index 4d2d4c7..f26fca3 100644
--- a/Makefile
+++ b/Makefile
@@ -43,6 +43,10 @@ all::
 # on platforms where we don't expect glibc (Linux, Hurd,
 # GNU/kFreeBSD), which includes libintl.
 #
+# Define GETTEXT_POISON to turn all strings that use gettext into
+# gibberish. This option should only be used by the Git developers to
+# check that the Git gettext implementation itself is sane.
+#
 # Define EXPATDIR=/foo/bar if your expat header and library files are in
 # /foo/bar/include and /foo/bar/lib directories.
 #
@@ -1507,6 +1511,10 @@ ifdef NEEDS_LIBINTL
 	EXTLIBS += -lintl
 endif
 
+ifdef GETTEXT_POISON
+	COMPAT_CFLAGS += -DGETTEXT_POISON
+endif
+
 ifeq ($(TCLTK_PATH),)
 NO_TCLTK=NoThanks
 endif
@@ -2065,6 +2073,7 @@ ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT
 	@echo GIT_TEST_CMP_USE_COPIED_CONTEXT=YesPlease >>$@
 endif
 	@echo NO_GETTEXT=\''$(subst ','\'',$(subst ','\'',$(NO_GETTEXT)))'\' >>$@
+	@echo GETTEXT_POISON=\''$(subst ','\'',$(subst ','\'',$(GETTEXT_POISON)))'\' >>$@
 
 ### Detect Tck/Tk interpreter path changes
 ifndef NO_TCLTK
diff --git a/gettext.h b/gettext.h
index e02939a..94ab0f3 100644
--- a/gettext.h
+++ b/gettext.h
@@ -11,8 +11,12 @@ extern void git_setup_gettext(void);
 #ifdef NO_GETTEXT
 #define _(s) (s)
 #else
+#ifndef GETTEXT_POISON
 #include <libintl.h>
 #define _(s) gettext(s)
+#else
+#define _(s) "# GETTEXT POISON #"
+#endif
 #endif
 
 #endif
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 3fcb272..b297ef6 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -963,6 +963,7 @@ esac
 test -z "$NO_PERL" && test_set_prereq PERL
 test -z "$NO_PYTHON" && test_set_prereq PYTHON
 test -z "$NO_GETTEXT" && test_set_prereq GETTEXT
+test -z "$GETTEXT_POISON" && test_set_prereq NO_GETTEXT_POISON
 
 # test whether the filesystem supports symbolic links
 ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS
-- 
1.7.2.3.313.gcd15

  parent reply	other threads:[~2010-09-04 22:11 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-04 22:10 [PATCH 00/63] [REDO] Add gettext support to Git Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 01/63] builtin: use builtin.h for all builtin commands Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 02/63] Add infrastructure for translating Git with gettext Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 05/63] tests: locate i18n lib&data correctly under --valgrind Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 21/63] po/is.po: add Icelandic translation Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` Ævar Arnfjörð Bjarmason [this message]
2010-09-04 22:10 ` [PATCH 27/63] gettext tests: skip lib-gettext.sh tests under GETTEXT_POISON Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 28/63] gettext tests: skip breaking " Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 51/63] gettextize: git-merge basic messages Ævar Arnfjörð Bjarmason
2010-09-04 22:10 ` [PATCH 63/63] po/en_GB.po: add British English Translation Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 00/15] [REDO CONTINUE] Add gettext support to Git Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 01/15] gettextize: git-archive basic messages Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 02/15] gettextize: git-bundle " Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 03/15] gettextize: git-clean " Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 04/15] gettextize: git-clean clean.requireForce messages Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 05/15] gettextize: git-describe basic messages Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 06/15] gettextize: git-gc " Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 07/15] gettextize: git-gc "Auto packing the repository" message Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 08/15] gettextize: git-notes basic commands Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 09/15] gettextize: git-notes GIT_NOTES_REWRITE_MODE error message Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 10/15] gettextize: git-notes "Refusing to %s notes in %s" message Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 11/15] gettextize: git-revert basic messages Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 12/15] gettextize: git-revert mark the "me" variable for translation Ævar Arnfjörð Bjarmason
2010-09-06 18:45   ` Jonathan Nieder
2010-09-06 20:06     ` Ævar Arnfjörð Bjarmason
2010-09-06 20:08       ` Jonathan Nieder
2010-09-06 12:21 ` [PATCH 13/15] gettextize: git-revert messages using the "me" variable Ævar Arnfjörð Bjarmason
2010-09-06 18:50   ` Jonathan Nieder
2010-09-06 20:12     ` Ævar Arnfjörð Bjarmason
2010-09-07  5:39       ` Jonathan Nieder
2010-09-07  8:51         ` Ævar Arnfjörð Bjarmason
2010-09-10  0:26           ` Junio C Hamano
2010-09-06 12:21 ` [PATCH 14/15] gettextize: git-revert split up "could not revert/apply" message Ævar Arnfjörð Bjarmason
2010-09-06 18:55   ` Jonathan Nieder
2010-09-06 20:25     ` Ævar Arnfjörð Bjarmason
2010-09-07  5:34       ` Jonathan Nieder
2010-09-07  8:47         ` Ævar Arnfjörð Bjarmason
2010-09-06 12:21 ` [PATCH 15/15] gettextize: git-shortlog basic messages Ævar Arnfjörð Bjarmason
2010-09-06 18:41   ` Jonathan Nieder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1283638229-14199-6-git-send-email-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jk@jk.gs \
    --cc=sam@reedyboy.net \
    --cc=trast@student.ethz.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).