This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
glibc testing problem
- From: "Steve Ellcey " <sellcey at mips dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Wed, 28 Nov 2012 13:49:57 -0800
- Subject: glibc testing problem
While testing glibc on a MIPS system I was getting failures in tst-fmon.
After some hunting around I found that the problem wasn't in what my
glibc was producing but in what was expected. This test uses the data
file localedata/tst-fmon.data and the script tst-fmon.sh reads that
with:
while IFS=" " read locale format value expect; do
where there is a tab inside the quote marks. Now some of the lines
in the data file are separated by two tabs instead of one, like this one:
de_DE.ISO-8859-1 %n 1.23 1,23 EUR
There are two tabs between '1.23' and '1,23 EUR'. Most shells (bash, ksh)
seem to treat two tabs the same as one and have no problems. But on
my systems (debian and ubuntu) /bin/sh is a link to dash and dash does not
treat two tabs like one. It instead considers the second tab as part of the
next field. This is why the test fails for me.
Consider this script:
echo "y z" | \
while IFS=" " read a b
do
echo "\"$a\"" "\"$b\""
done
Where there are two tabs between y and z. On my system if I run
ksh ./script or bash ./script, I get:
"y" "z"
But if I run dash ./script, I get:
"y" " z"
So my question is: what do we do about this? Remove the extra tab from
the data file, simply say dash isn't supported (the script starts with
'#!/bin/sh' and /bin/sh on my system is a link to dash), or is there some
better fix?
Steve Ellcey
sellcey@mips.com