Skip to content

Commit

Permalink
Fix edge case test failure in ext/POSIX/t/mb.t
Browse files Browse the repository at this point in the history
This new test fails in an environment where LANG is set to one thing and
LC_ALL is set to another, and where LANG is set to a locale which is
not installed in the environment in question.

Such a test environment is arguably broken, but appears in common
chroot setups such as Debian's sbuild tool where LANG is inherited from
the parent environment, and LC_ALL is used to override it.

Committer: removed one non-printing character from patch

For: RT # 134182
  • Loading branch information
jmdh authored and jkeenan committed Jun 7, 2019
1 parent fb55ce6 commit 69b89a0
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions ext/POSIX/t/mb.t
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,13 @@ SKIP: {
my $utf8_locale = find_utf8_ctype_locale();
skip("no utf8 locale available", 3) unless $utf8_locale;

# Here we need to influence LC_CTYPE, but it's not enough to just
# set this because LC_ALL could override it. It's also not enough
# to delete LC_ALL because it could be used to override other
# variables such as LANG in the underlying test environment.
# Continue to set LC_CTYPE just in case...
local $ENV{LC_CTYPE} = $utf8_locale;
local $ENV{LC_ALL};
delete $ENV{LC_ALL};
local $ENV{LC_ALL} = $utf8_locale;

fresh_perl_like(
'use POSIX; print &POSIX::MB_CUR_MAX',
Expand Down

0 comments on commit 69b89a0

Please sign in to comment.