1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-14 03:12:10 +02:00

tests: numfmt: fix false failures on some systems

* tests/misc/numfmt.pl: Verify that printf field width specs
count characters and not bytes before enabling locale tests.
This was seen on FreeBSD 14.0 and Solaris 11 OpenIndiana.
Reported by Bruno Haible
This commit is contained in:
Pádraig Brady
2024-03-26 19:17:16 +00:00
parent 6e2b4769cc
commit 606f54d157

View File

@@ -1070,13 +1070,15 @@ if ($locale ne 'C')
{
# Reset locale to 'C' if LOCALE_FR_UTF8 doesn't output as expected
# as determined by the separate printf program.
open(LOC_NUM, "env LC_ALL=$locale printf \"%'d\" 1234|")
or die "Can't fork command: $!";
my $printf_cmd = "env LC_ALL=$locale printf \"%'06.f\" 1234;" .
"env LC_ALL=$locale printf \"%'6.f\" 1234;";
open(LOC_NUM, "$printf_cmd|") or die "Can't fork command: $!";
my $loc_num = <LOC_NUM>;
close(LOC_NUM) || die "Failed to read grouped number from printf";
if ($loc_num ne "1${lg}234")
my $loc_match = "01${lg}234 1${lg}234";
if ($loc_num ne $loc_match)
{
warn "skipping locale grouping tests as 1234 groups like $loc_num\n";
warn "skipping locale grouping tests as $loc_num != $loc_match\n";
$locale = 'C';
}
}