libtool/tests/localization.at
Ralf Wildenhues e350fb0744 tests: fix localization test for GCC on HP-UX 11.00.
* tests/localization.at (localized compiler messages): Be sure
to switch the locale only for the actual compiler commands, so
we don't pick up warnings from helper tools such as diff which
may not have the locale installed.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-09-01 22:12:13 +02:00

74 lines
2.6 KiB
Plaintext

# localization.at -- libtool and locales -*- Autotest -*-
#
# Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
# GNU Libtool 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 of
# the License, or (at your option) any later version.
#
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
####
AT_SETUP([localized compiler messages])
AT_KEYWORDS([libtool])
# Let's try German locale. :-)
m4_pushdef([lt_localize],
[LANG=de_DE LANGUAGE=de_DE LC_ALL=de_DE])
AT_DATA([a.c],
[[int x[-1];
]])
AT_DATA([b.c],
[[int y;
]])
# First see if setting a locale is accepted at all.
AT_CHECK([(lt_localize $CC $CPPFLAGS $CFLAGS -c b.c) || exit 77],
[], [stdout], [stderr])
# Find out about expected output.
AT_CHECK([(lt_localize $CC $CPPFLAGS $CFLAGS -c a.c) || exit 1],
[1], [stdout], [stderr])
LT_AT_NORMALIZE_COMPILER_OUTPUT([stdout], [expected-stdout])
LT_AT_NORMALIZE_COMPILER_OUTPUT([stderr], [expected-stderr])
AT_CHECK([(lt_localize $LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c a.c) || exit 1],
[1], [stdout], [stderr])
LT_AT_NORMALIZE_COMPILER_OUTPUT([stdout], [libtool-stdout])
LT_AT_NORMALIZE_COMPILER_OUTPUT([stderr], [libtool-stderr])
# Avoid these errors:
# GNU/Linux:
# /bin/sh: warning: setlocale: LC_ALL: cannot change locale (de_DE)
# HP-UX:
# Warning! One or more of your selected locales are not available.
# Please invoke the commands "locale" and "locale -a" to verify your
# selections and the available locales.
#
# Continuing processing using the "C" locale.
AT_CHECK([grep locale stdout stderr && exit 77], [1])
AT_CHECK([diff expected-stderr libtool-stderr])
AT_CHECK([diff expected-stdout libtool-stdout])
# check that we get our quoting right.
m4_define([lt_localize],
[[LANGUAGE='a; nosuchprogram " '\'' & $x /#+*(){}|,:`\ !%']])
AT_CHECK([(lt_localize $LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c b.c)],
[0], [stdout], [stderr])
AT_CHECK([grep nosuchprogram stdout stderr], [1])
m4_popdef([lt_localize])
AT_CLEANUP