[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: automake po / pot file integration: proposed tests (draft)
From: |
Ralf Wildenhues |
Subject: |
Re: automake po / pot file integration: proposed tests (draft) |
Date: |
Mon, 30 Aug 2010 21:03:44 +0200 |
User-agent: |
Mutt/1.5.20 (2010-04-22) |
Hi Bruno,
I've added the mailing list in Cc: and full-quote.
* Bruno Haible wrote on Sun, Aug 29, 2010 at 11:34:33PM CEST:
> Here is a draft of which tests I plan to write. Just to give you an idea
> and to hear if there is something that you would not like to have checked.
This sounds great as a plan! Test details can and will have to be fixed
later anyway when the actual implementation happens.
It makes sense to add '$MAKE distcheck' at the end in a number of the
tests, to ensure that VPATH build and distclean work as expected.
Actually, checking 'make clean' semantics might be useful at some
points, or checking that a second 'make all' finds things to be up to
date (the latter can be a portability hassle, so we usually
required=GNUmake there).
Thanks,
Ralf
> -------------------------------------------------------------------------------
> pot-macro-warn.test
> * Check that when the POTS primary is used, AM_POT_TOOLS must be
> invoked, otherwise a warning occurs.
>
> pot-enable1.test
> * Check AM_POT_TOOLS macro:
> Check that --enable-nls causes USE_NLS to be yes,
> check that --disable-nls causes USE_NLS to be no,
> check that --help shows --disable-nls.
>
> pot-enable2.test
> * Check AM_NLS macro:
> Check that --enable-nls causes USE_NLS to be yes,
> check that --disable-nls causes USE_NLS to be no,
> check that --help shows --disable-nls.
>
> pot-warn1.test
> * Check POTS primary basics:
> locale_POTS = posub/foo-bar.po
> Check that a warning occurs because it does not end in .pot.
>
> pot-warn2.test
> * Check POTS primary basics;
> locale_POTS = posub/foo-bar.pot
> Check that a warning occurs because posub_foo_bar_pot_SOURCES
> is not defined.
>
> pot-empty.test
> * Check POTS primary basics:
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> where src/main.c exists but does not call gettext.
> Check that after "make" and "make dist", no .pot file was created,
> and with "make install", no .pot file was created and no .mo file
> was installed.
>
> pot-no-linguas.test
> * Check POTS primary basics:
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> where src/main.c and src/util.c exist and call gettext.
> Check that after "make" and "make install", a .pot file was created
> with expected contents.
> Check that even if a foo-bar-de.po and foo-bar-de.mo file are present
> in that directory, no .mo file gets installed.
> Check that after src/main.c gets modified, "make" does not update the
> POT file but "make install" and "make dist" do.
>
> pot-linguas.test
> * Check POTS primary basics:
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> where src/main.c and src/util.c exist and call gettext
> and files posub/foo-bar-de.po, posub/foo-bar-fr.po, posub/foo-bar-es.po
> exist.
> Check that "make install" installs de.po and fr.po but not es.po.
> But when configured with LINGUAS="es de", only de.po gets installed,
> not es.po and not fr.po.
> Check that after "make dist", the tarball contains
> posub/foo-bar-{de,fr}.{po,mo} but not the others. Regardless whether
> LINGUAS was specified or not.
> Check that after src/main.c gets modified, "make" does not update the
> POT file, the PO files, and the MO files, but "make install" and
> "make dist" do. Check that in the modified PO files, previous msgid
> fields are inserted.
>
> pot-noinst.test
> * Check POTS installation directory:
> noinst_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> Check that nothing gets installed by "make install".
>
> pot-topsrcdir.test
> * Check that POTS primaries can be used in the top srcdir.
> locale_POTS = foo-bar.pot
> foo_bar_pot_SOURCES = src/main.c src/util.c
> foo_bar_pot_LINGUAS = de fr
> where src/main.c and src/util.c exist and call gettext
> and files posub/foo-bar-de.po, posub/foo-bar-fr.po, posub/foo-bar-es.po
> exist.
> Check that "make install" installs de.po and fr.po.
> Check that after "make dist", the tarball contains
> foo-bar-{de,fr}.{po,mo}.
> Check that after src/main.c gets modified, "make" does not update the
> POT file, the PO files, and the MO files, but "make install" and
> "make dist" do. Check that in the modified PO files, previous msgid
> fields are inserted.
>
> pot-samedir.test
> * Check that different POTS primaries don't collide:
> locale_POTS = posub/foo-bar.pot posub/foo-baz.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_baz_pot_SOURCES = src/util.c
> posub_foo_baz_pot_LINGUAS = de it
> Check that "make install" installs de/foo-bar.mo and de/foo-baz.mo
> as files of different sizes, and installs fr/foo-bar.mo and
> it/foo-baz.mo, but not fr/foo-baz.mo or it/foo-bar.mo.
>
> pot-override1.test
> * Check that the .pot creation rule can be overridden.
>
> pot-copyright.test
> * Check POT file's COPYRIGHT_HOLDER
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> posub_foo_bar_pot_COPYRIGHT_HOLDER = Yoyodyne, Inc.
> Check that after "make dist",
> the PO file's header contains the copyright holder.
>
> pot-msgidbugs.test
> * Check POT file's MSGID_BUGS_ADDRESS
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> Check that by default, the msgid bugs address in the POT file is taken
> from the AC_INIT invocation.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> posub_foo_bar_pot_MSGID_BUGS_ADDRESS = address@hidden
> Check that the msgid bugs address in the POT file is the specified one,
> and the one from the AC_INIT invocation - if AC_INIT contains one -
> is not used.
>
> pot-xgettext1.test
> * Check POT file's XGETTEXT_OPTIONS
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> posub_foo_bar_pot_XGETTEXT_OPTIONS = --keyword=_ --flag=_:1:pass-c-format
> where main.c contains an _() invocation inside printf.
> Check that the POT file contains a #, c-format annotation.
>
> pot-xgettext2.test
> * Check additional xgettext options via AM_XGETTEXT_OPTION
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> with AM_XGETTEXT_OPTION([--keyword=_ --flag=_:1:pass-c-format])
> where main.c contains an _() invocation inside printf.
> Check that the POT file contains a #, c-format annotation.
>
> pot-xgettext3.test
> * Check multiple additional xgettext options.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c
> posub_foo_bar_pot_XGETTEXT_OPTIONS = --keyword=_ --flag=_:1:pass-c-format
> with AM_XGETTEXT_OPTION([--keyword=tr...])
> and AM_XGETTEXT_OPTION([--keyword=error...])
> where main.c contains invocations of _, tr, error.
> Check that the POT file contains 3 #, c-format annotations.
>
> pot-xgettext4.test
> * Check multiple xgettext invocations like described in the manual.
> locale_POTS = maude.pot
> noinst_POTS = maude1.pot maude2.pot
> maude_pot_SOURCES = maude1.pot maude2.pot
> maude1_pot_SOURCES = maude.c
> maude2_pot_SOURCES = maude.lisp
> where maude.c and maude.lisp contain gettext invocations, even
> with format strings. Check the POT file against an expected one.
>
> pot-download1.test
> * Check download of translations from the TP.
> locale_POTS = clisp.pot
> clisp_pot_TP_URL = http://translationproject.org/latest/
> Configure with LINGUAS=de.
> Check that after "make install", de/clisp.mo has been installed.
>
> pot-format-qt1.test
> * Check POT file's CATALOGFORMAT.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_CATALOGFORMAT = qm
> Check that during "make install", a de.qm file is installed but no
> de.mo file.
> Check that after "make dist", a de.qm file is distributed,
> but no de.mo file.
>
> pot-format-java1.test
> * Check POT file's CATALOGFORMAT.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_CATALOGFORMAT = properties
> Check that during "make install", a messages_de.properties file is
> installed but no
> de.mo file.
> Check that after "make dist", a messages_de.properties file is distributed,
> but no de.mo file.
>
> pot-format-java2.test
> * Check POT file's CATALOGFORMAT.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_CATALOGFORMAT = class
> Check that during "make install", a messages_de.class file is installed but
> no
> de.mo file.
> Check that after "make dist", a messages_de.class file is distributed,
> but no de.mo file.
>
> pot-format-csharp1.test
> * Check POT file's CATALOGFORMAT.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_CATALOGFORMAT = resources.dll
> Check that during "make install", a messages_de.resources.dll file is
> installed but no
> de.mo file.
> Check that after "make dist", a messages_de.resources.dll file is
> distributed,
> but no de.mo file.
>
> pot-format-tcl.test
> * Check POT file's CATALOGFORMAT.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_CATALOGFORMAT = msg
> Check that during "make install", a de.msg file is installed but no
> de.mo file.
> Check that after "make dist", a de.msg file is distributed,
> but no de.mo file.
>
> pot-localecat1.test
> * Check POT file's LOCALE_CATEGORIES.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_LOCALE_CATEGORIES = time
> Check that a warning occurs because the word 'time' does not start
> with LC_.
>
> pot-localecat2.test
> * Check POT file's LOCALE_CATEGORIES.
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_LOCALE_CATEGORIES = LC_TIME LC_ADDRESS
> Check that after "make install", $localedir/LC_TIME/{de,fr}.mo and
> $localedir/LC_ADDRESS/{de,fr}.mo are installed but
> $localedir/LC_MESSAGES/{de,fr}.mo are not.
>
> pot-xgettext5.test
> * Check POT file's USE_MSGCTXT
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_USE_MSGCTXT = no
> If gettext tools < 0.15 are found: Check that .mo files are
> being created. Otherwise, skip the test.
>
> pot-msgmerge1.test
> * Check POT file's MSGMERGE_OPTIONS
> locale_POTS = posub/foo-bar.pot
> posub_foo_bar_pot_SOURCES = src/main.c src/util.c
> posub_foo_bar_pot_LINGUAS = de fr
> posub_foo_bar_pot_MSGMERGE_OPTIONS =
> If gettext tools < 0.16 are found: Check that msgmerge is
> done, without previous msgid annotations.
- Re: automake po / pot file integration: proposed tests (draft),
Ralf Wildenhues <=