This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]