From e9a5eef6ab19e257801d03180630143ac1896ef3 Mon Sep 17 00:00:00 2001 From: Karl Williamson Date: Tue, 13 May 2014 17:31:39 -0600 Subject: [PATCH] t/run/locale.t: Skip some tests for some shells Some sh programs don't accept changes of environment variables like LC_ALL to invalid values. For these the tests aren't testing what they think they are, so change them to just return the expected value, so they will pass. This effectively skips the tests when run on these shells. See http://nntp.perl.org/group/perl.perl5.porters/214503 --- t/run/locale.t | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/t/run/locale.t b/t/run/locale.t index 097563f..0c58a63 100644 --- a/t/run/locale.t +++ b/t/run/locale.t @@ -215,12 +215,17 @@ EOF local $ENV{LANG} = $different; # Can't turn off the warnings, so send them to /dev/null - fresh_perl_is(<<'EOF', "$difference", { stderr => "devnull" }, + fresh_perl_is(<<"EOF", "$difference", { stderr => "devnull" }, + if (\$ENV{LC_ALL} ne "invalid") { + # Make the test pass if the sh didn't accept the ENV set + print "$difference\n"; + exit 0; + } use locale; use POSIX qw(locale_h); setlocale(LC_NUMERIC, ""); - my $in = 4.2; - printf("%g", $in); + my \$in = 4.2; + printf("%g", \$in); EOF "LANG is used if LC_ALL, LC_NUMERIC are invalid"); } @@ -237,12 +242,16 @@ EOF local $ENV{LANG} = "invalid"; # Can't turn off the warnings, so send them to /dev/null - fresh_perl_is(<<'EOF', 4.2, { stderr => "devnull" }, + fresh_perl_is(<<"EOF", 4.2, { stderr => "devnull" }, + if (\$ENV{LC_ALL} ne "invalid") { + print "$difference\n"; + exit 0; + } use locale; use POSIX qw(locale_h); setlocale(LC_NUMERIC, ""); - my $in = 4.2; - printf("%g", $in); + my \$in = 4.2; + printf("%g", \$in); EOF 'C locale is used if LC_ALL, LC_NUMERIC, LANG are invalid'); } -- 1.8.3.1