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 = bug-ma...@yoyodyne.com > 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.