automake-patches
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]