From 6f723f1ed6e7383c8f266f6b06eac5f696268784 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Sun, 16 Jun 2013 11:36:55 +0200 Subject: [PATCH] tests: some improvements to Gettext tests Mostly to bring them more in sync with the ones in Automake-NG. See also commit v1.12.2-824-g5468d52 of 2012-08-10([ng] tests: reorganize gettext tests a bit) in Automake-NG. * t/gettext.sh: Rename ... * t/gettext-basics.sh: ... like this, enhance a little, and move checks on requirement of 'config.rpath' out into ... * t/gettext-config-rpath.sh: ... into this new test, and move checks about PR/381... * t/gettext-pr381.sh: ... into this new test. * t/gettext2.sh: Rename ... * t/gettext-external-pr338.sh: ... like this, and enhance a little. * t/gettext3.sh: Rename ... * t/gettext-intl-subdir.sh: ... like this, and add trailing ':' command. Signed-off-by: Stefano Lattarini --- t/{gettext.sh => gettext-basics.sh} | 49 ++++++---------------------- t/gettext-config-rpath.sh | 45 +++++++++++++++++++++++++ t/{gettext2.sh => gettext-external-pr338.sh} | 4 +++ t/{gettext3.sh => gettext-intl-subdir.sh} | 2 ++ t/gettext-pr381.sh | 45 +++++++++++++++++++++++++ t/list-of-tests.mk | 8 +++-- 6 files changed, 111 insertions(+), 42 deletions(-) rename t/{gettext.sh => gettext-basics.sh} (53%) create mode 100644 t/gettext-config-rpath.sh rename t/{gettext2.sh => gettext-external-pr338.sh} (94%) rename t/{gettext3.sh => gettext-intl-subdir.sh} (99%) create mode 100644 t/gettext-pr381.sh diff --git a/t/gettext.sh b/t/gettext-basics.sh similarity index 53% rename from t/gettext.sh rename to t/gettext-basics.sh index 496602d..d128a0d 100644 --- a/t/gettext.sh +++ b/t/gettext-basics.sh @@ -14,42 +14,22 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# Check gettext support. +# Check basic gettext support. required='gettext' . test-init.sh -cat >>configure.ac <> configure.ac << 'END' AM_GNU_GETTEXT -AM_GNU_GETTEXT_VERSION([0.14.3]) AC_OUTPUT END -: >Makefile.am +: > Makefile.am +: > config.rpath mkdir po intl -# config.rpath is required by versions >= 0.14.3. We try to verify -# this requirement, but only when we find we have a working and recent -# gettext installation. - -# If aclocal fails here, it may be that gettext is too old to -# provide AM_GNU_GETTEXT_VERSION. -if $ACLOCAL; then - - # autopoint will fail if it's from an older version. - # If gettext is too old to provide autopoint, this will - # fail as well, so we're safe here. - if autopoint -n; then - AUTOMAKE_fails --add-missing - grep 'required.*config.rpath' stderr - fi -fi - -: >config.rpath -sed '/AM_GNU_GETTEXT_VERSION/d' configure.ac >configure.tmp -mv -f configure.tmp configure.ac - $ACLOCAL +$AUTOCONF # po/ and intl/ are required. @@ -70,18 +50,9 @@ echo 'SUBDIRS = po intl' >Makefile.am $AUTOMAKE --add-missing # Make sure distcheck runs './configure --with-included-gettext'. -grep 'with-included-gettext' Makefile.in - -# 'SUBDIRS = po intl' isn't required if po/ doesn't exist. -# PR/381. +./configure +echo distdir: > po/Makefile +echo distdir: > intl/Makefile +$MAKE -n distcheck | grep '.*--with-included-gettext' -rmdir po -mkdir sub -echo 'SUBDIRS = sub' >Makefile.am -$AUTOMAKE - -# Still, SUBDIRS must be defined. - -: >Makefile.am -AUTOMAKE_fails --add-missing -grep 'AM_GNU_GETTEXT.*SUBDIRS' stderr +: diff --git a/t/gettext-config-rpath.sh b/t/gettext-config-rpath.sh new file mode 100644 index 0000000..d99e361 --- /dev/null +++ b/t/gettext-config-rpath.sh @@ -0,0 +1,45 @@ +#! /bin/sh +# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Check the config.rpath requirement. + +required='gettext' +. test-init.sh + +cat >> configure.ac << 'END' +AM_GNU_GETTEXT +# config.rpath is required by versions >= 0.14.3. +AM_GNU_GETTEXT_VERSION([0.14.3]) +AC_OUTPUT +END + +echo 'SUBDIRS = po intl' >Makefile.am +mkdir po intl + +# If aclocal fails here, it may be that gettext is too old to provide +# AM_GNU_GETTEXT_VERSION. Similarly, autopoint will fail if it's +# from an older version. If gettext is too old to provide autopoint, +# this will fail as well, so we're safe here. +if ! $ACLOCAL && autopoint -n; then + skip_ "too old gettext installation" +fi + +AUTOMAKE_fails --add-missing +grep '^configure\.ac:.*required file.*config.rpath' stderr +: > config.rpath +$AUTOMAKE + +: diff --git a/t/gettext2.sh b/t/gettext-external-pr338.sh similarity index 94% rename from t/gettext2.sh rename to t/gettext-external-pr338.sh index e6a8922..c82af69 100644 --- a/t/gettext2.sh +++ b/t/gettext-external-pr338.sh @@ -29,6 +29,7 @@ END mkdir foo po $ACLOCAL +$AUTOCONF # config.rpath is required. : >config.rpath @@ -47,9 +48,12 @@ grep 'AM_GNU_GETTEXT.*po' stderr echo 'SUBDIRS = po' >Makefile.am $AUTOMAKE --add-missing + # Don't try running ./configure --with-included-gettext if the # user is using AM_GNU_GETTEXT([external]). grep 'with-included-gettext' Makefile.in && exit 1 +./configure +$MAKE -n distcheck | grep 'with-included-gettext' && exit 1 # intl/ isn't wanted with AM_GNU_GETTEXT([external]). diff --git a/t/gettext3.sh b/t/gettext-intl-subdir.sh similarity index 99% rename from t/gettext3.sh rename to t/gettext-intl-subdir.sh index 28b26a0..a33f249 100644 --- a/t/gettext3.sh +++ b/t/gettext-intl-subdir.sh @@ -45,3 +45,5 @@ grep 'AM_GNU_GETTEXT.*intl.*SUBDIRS' stderr echo 'SUBDIRS = po intl' > Makefile.am $AUTOMAKE --add-missing + +: diff --git a/t/gettext-pr381.sh b/t/gettext-pr381.sh new file mode 100644 index 0000000..ebf047d --- /dev/null +++ b/t/gettext-pr381.sh @@ -0,0 +1,45 @@ +#! /bin/sh +# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Automake gettext support: regression check for PR/381: +# 'SUBDIRS = po intl' must not be required if 'po/' doesn't exist. + +required='gettext' +. test-init.sh + +cat >> configure.ac << 'END' +AM_GNU_GETTEXT +AC_OUTPUT +END + +$ACLOCAL + +: > config.guess +: > config.rpath +: > config.sub + +test ! -d po # Sanity check. +mkdir sub +echo 'SUBDIRS = sub' > Makefile.am +$AUTOMAKE + +# Still, SUBDIRS must be defined. + +: > Makefile.am +AUTOMAKE_fails +grep '^configure\.ac:.*AM_GNU_GETTEXT used but SUBDIRS not defined' stderr + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index d4e1589..d4d1fda 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -484,9 +484,11 @@ t/gcj3.sh \ t/gcj4.sh \ t/gcj5.sh \ t/gcj6.sh \ -t/gettext.sh \ -t/gettext2.sh \ -t/gettext3.sh \ +t/gettext-basics.sh \ +t/gettext-config-rpath.sh \ +t/gettext-external-pr338.sh \ +t/gettext-intl-subdir.sh \ +t/gettext-pr381.sh \ t/gnumake.sh \ t/gnuwarn.sh \ t/gnuwarn2.sh \ -- 2.7.4