This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Fix locale/tst-locale-locpath cross-testing when sshd sets LANG
- From: Carlos O'Donell <codonell at redhat dot com>
- To: Joseph Myers <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Cc: siddhesh at sourceware dot org
- Date: Thu, 23 Jan 2020 17:27:25 -0500
- Subject: Re: Fix locale/tst-locale-locpath cross-testing when sshd sets LANG
- References: <alpine.DEB.2.21.2001232145210.7536@digraph.polyomino.org.uk>
On 1/23/20 4:45 PM, Joseph Myers wrote:
> The locale/tst-locale-locpath test unsets LANG, then runs a test with
> test_wrapper_env and expects LANG to remain unset for that test. This
> does not work for cross-testing with cross-test-ssh.sh when sshd (on
> the system specified as an argument to cross-test-ssh.sh) is
> configured to have a default LANG setting.
Agreed.
> The general design used in cross testing, after commit
> 8540f6d2a74fe9d67440535ebbcfa252180a3172 ("Don't require test wrappers
> to preserve environment variables, use more consistent environment.",
> 6 June 2014), is that environment settings required by tests should be
> passed explicitly to $(test-wrapper-env). This patch changes
> tst-locale-locpath.sh to pass an explicit LANG= rather than expecting
> "unset LANG" to be in effect for the program run under
> test_wrapper_env. Note that this does slightly change the environment
> in which the test is run natively (empty LANG instead of unset LANG)
> but that difference does not appear relevant to what it is trying to
> test.
Agreed, that way LANG is set in the ssh shell.
> Tested for Arm that this fixes the failure seen for that test in
> cross-testing.
OK for master if Siddhesh agrees.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> diff --git a/locale/tst-locale-locpath.sh b/locale/tst-locale-locpath.sh
> index bafdf91e20..f37d452723 100644
> --- a/locale/tst-locale-locpath.sh
> +++ b/locale/tst-locale-locpath.sh
> @@ -34,10 +34,8 @@ trap cleanup 0
> rm -rf "$testroot"
> mkdir -p $testroot
>
> -unset LANG
> -
OK.
> ${test_wrapper_env} \
> -${run_program_env} LC_ALL=invalid-locale LOCPATH=does-not-exist \
> +${run_program_env} LANG= LC_ALL=invalid-locale LOCPATH=does-not-exist \
OK. LANG is set to empty consistently in the invocation under test_wrapper_env.
> ${common_objpfx}elf/ld.so --library-path "$LIBPATH" \
> "${common_objpfx}locale/locale" \
> > "$testroot/stdout" 2> "$testroot/stderr"
>
--
Cheers,
Carlos.