From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25480 invoked by alias); 12 Aug 2013 21:32:20 -0000 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org Received: (qmail 25432 invoked by uid 48); 12 Aug 2013 21:32:18 -0000 From: "slicer_ghent at hushmail dot com" To: glibc-bugs@sourceware.org Subject: [Bug localedata/15831] New: Bad $expect passed from tst-fmon.sh to tst-fmon Date: Mon, 12 Aug 2013 21:32:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: localedata X-Bugzilla-Version: 2.17 X-Bugzilla-Keywords: glibc_2.17 X-Bugzilla-Severity: normal X-Bugzilla-Who: slicer_ghent at hushmail dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status keywords bug_severity priority component assigned_to reporter cc cf_gcchost cf_gccbuild Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-08/txt/msg00043.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=15831 Bug ID: 15831 Summary: Bad $expect passed from tst-fmon.sh to tst-fmon Product: glibc Version: 2.17 Status: NEW Keywords: glibc_2.17 Severity: normal Priority: P2 Component: localedata Assignee: unassigned at sourceware dot org Reporter: slicer_ghent at hushmail dot com CC: libc-locales at sourceware dot org Host: x86_64-unknown-linux-gnu Build: x86_64-unknown-linux-gnu uname -m = x86_64 uname -r = 3.0.0-12-generic uname -s = Linux uname -v = #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 Working from SRCDIR/glibc-build/, as per INSTALL instructions: $ ../glibc-2.17/configure --prefix=/usr --enable-add-ons --enable-shared --enable-kernel=3.0.0 --with-headers=/usr/src/linux-headers-3.0.0-32/include Completes successfully. Next: $ make -j Completes successfully. Next: $ make check [...] /bin/sh tst-fmon.sh SRCDIR/glibc-build/ ' SRCDIR/glibc-build/elf/ld-linux-x86-64.so.2 --library-path SRCDIR/glibc-build:SRCDIR/glibc-build/math:SRCDIR/glibc-build/elf:SRCDIR/glibc-build/dlfcn:SRCDIR/glibc-build/nss:SRCDIR/glibc-build/nis:SRCDIR/glibc-build/rt:SRCDIR/glibc-build/resolv:SRCDIR/glibc-build/crypt:SRCDIR/glibc-build/nptl' tst-fmon.data \ > SRCDIR/glibc-build/localedata/tst-fmon.out make[2]: *** [SRCDIR/glibc-build/localedata/tst-fmon.out] Error 1 make[2]: Leaving directory `SRCDIR/glibc-2.17/localedata' make[1]: *** [localedata/tests] Error 2 make[1]: Leaving directory `SRCDIR/glibc-2.17' make: *** [check] Error 2 Contents of tst-fmon.out: Locale: "de_DE.ISO-8859-1" Format: "%n" Value: "1.23" Received: "1,23 EUR" Expected: " 1,23 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%n" Value: "-1.23" Received: "-1,23 EUR" Expected: " -1,23 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%n" Value: "1234.56" Received: "1.234,56 EUR" Expected: " 1.234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%12n" Value: "123.45" Received: " 123,45 EUR" Expected: " 123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%12n" Value: "-123.45" Received: " -123,45 EUR" Expected: " -123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^n" Value: "1234.56" Received: "1234,56 EUR" Expected: " 1234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%+n" Value: "1234.56" Received: "1.234,56 EUR" Expected: " 1.234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%(n" Value: "1234.56" Received: "1.234,56 EUR" Expected: " 1.234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^n" Value: "1234.56" Received: "1234,56 EUR" Expected: " 1234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%i" Value: "1.23" Received: "1,23 EUR" Expected: " 1,23 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%i" Value: "-1.23" Received: "-1,23 EUR" Expected: " -1,23 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%i" Value: "1234.56" Received: "1.234,56 EUR" Expected: " 1.234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^i" Value: "1234.56" Received: "1234,56 EUR" Expected: " 1234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%+i" Value: "1234.56" Received: "1.234,56 EUR" Expected: " 1.234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%(i" Value: "1234.56" Received: "1.234,56 EUR" Expected: " 1.234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^i" Value: "1234.56" Received: "1234,56 EUR" Expected: " 1234,56 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%#5n" Value: "123.45" Received: " 123,45 EUR" Expected: " 123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%#5n" Value: "-123.45" Received: "- 123,45 EUR" Expected: " - 123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%=*#5n" Value: "123.45" Received: " ***123,45 EUR" Expected: " ***123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%=*#5n" Value: "-123.45" Received: "-***123,45 EUR" Expected: " -***123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%=0#5n" Value: "123.45" Received: " 000123,45 EUR" Expected: " 000123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%=0#5n" Value: "-123.45" Received: "-000123,45 EUR" Expected: " -000123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^#5n" Value: "123.45" Received: " 123,45 EUR" Expected: " 123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^#5n" Value: "-123.45" Received: "- 123,45 EUR" Expected: " - 123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^#5.0n" Value: "123.45" Received: " 123 EUR" Expected: " 123 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^#5.0n" Value: "-123.45" Received: "- 123 EUR" Expected: " - 123 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^#5.4n" Value: "123.45" Received: " 123,4500 EUR" Expected: " 123,4500 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%^#5.4n" Value: "-123.45" Received: "- 123,4500 EUR" Expected: " - 123,4500 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%(#5n" Value: "123.45" Received: " 123,45 EUR" Expected: " 123,45 EUR" => false Locale: "de_DE.ISO-8859-1" Format: "%(#5n" Value: "-123.45" Received: "( 123,45 EUR)" Expected: " ( 123,45 EUR)" => false Locale: "de_DE.ISO-8859-1" Format: "%!(#5n" Value: "123.45" Received: " 123,45" Expected: " 123,45" => false Locale: "de_DE.ISO-8859-1" Format: "%!(#5n" Value: "-123.45" Received: "( 123,45)" Expected: " ( 123,45)" => false Locale: "en_US.ISO-8859-1" Format: "%n" Value: "123.45" Received: "$123.45" Expected: " $123.45" => false Locale: "en_US.ISO-8859-1" Format: "%n" Value: "-123.45" Received: "-$123.45" Expected: " -$123.45" => false Locale: "en_US.ISO-8859-1" Format: "%i" Value: "123.45" Received: "USD 123.45" Expected: " USD 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%i" Value: "-123.45" Received: "-USD 123.45" Expected: " -USD 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%11n" Value: "123.45" Received: " $123.45" Expected: " $123.45" => false Locale: "en_US.ISO-8859-1" Format: "%11n" Value: "-123.45" Received: " -$123.45" Expected: " -$123.45" => false Locale: "en_US.ISO-8859-1" Format: "%=*#5n" Value: "123.45" Received: " $***123.45" Expected: " $***123.45" => false Locale: "en_US.ISO-8859-1" Format: "%=*#5n" Value: "-123.45" Received: "-$***123.45" Expected: " -$***123.45" => false Locale: "en_US.ISO-8859-1" Format: "%=0#5n" Value: "123.45" Received: " $000123.45" Expected: " $000123.45" => false Locale: "en_US.ISO-8859-1" Format: "%=0#5n" Value: "-123.45" Received: "-$000123.45" Expected: " -$000123.45" => false Locale: "en_US.ISO-8859-1" Format: "%^#5n" Value: "123.45" Received: " $ 123.45" Expected: " $ 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%^#5n" Value: "-123.45" Received: "-$ 123.45" Expected: " -$ 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%^#5.0n" Value: "123.45" Received: " $ 123" Expected: " $ 123" => false Locale: "en_US.ISO-8859-1" Format: "%^#5.0n" Value: "-123.45" Received: "-$ 123" Expected: " -$ 123" => false Locale: "en_US.ISO-8859-1" Format: "%^#5.4n" Value: "123.45" Received: " $ 123.4500" Expected: " $ 123.4500" => false Locale: "en_US.ISO-8859-1" Format: "%^#5.4n" Value: "-123.45" Received: "-$ 123.4500" Expected: " -$ 123.4500" => false Locale: "en_US.ISO-8859-1" Format: "%(#5n" Value: "123.45" Received: " $ 123.45" Expected: " $ 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%(#5n" Value: "-123.45" Received: "($ 123.45)" Expected: " ($ 123.45)" => false Locale: "en_US.ISO-8859-1" Format: "%!(#5n" Value: "123.45" Received: " 123.45" Expected: " 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%!(#5n" Value: "-123.45" Received: "( 123.45)" Expected: " ( 123.45)" => false Locale: "en_US.ISO-8859-1" Format: "%#5n" Value: "123.45" Received: " $ 123.45" Expected: " $ 123.45" => false Locale: "en_US.ISO-8859-1" Format: "%#5n" Value: "-123.45" Received: "-$ 123.45" Expected: " -$ 123.45" => false Began inspecting tst-fmon.sh since it was the script called in the last command reported. Eventually worked through tst-fmon.c and then strfmon.c. Feeling in over my head, I found documentation for strfmon.c at http://www.gnu.org/software/libc/manual/html_mono/libc.html in Section 7.7. Returning to tst-fmon.out, I realized the "Received" values were correct, as per the documentation I had just read, and the "Expected" values were not. I now opened tst-fmon.data for inspection. What is weird to me is that extra white space appears to be added to the left of the expectation, but this is not consistent because, for instance, the line: de_DE.ISO-8859-1 %12n 3456.781 3.456,78 EUR passes the test, as it should if all intervening whitespace were removed, but the line: de_DE.ISO-8859-1 %12n -123.45 -123,45 EUR fails because an extra space has been added to the left side giving the expectation a total width of 13 characters, rather than 12, as seen in the format specifier. Why the extra space would be added to the second example and not the first is not a question I am able to answer. I thought it might have been an issue with the read builtin. On my system: $ ll /bin/sh lrwxrwxrwx 1 root root 4 2011-12-24 01:00 /bin/sh -> dash $ ll /bin/dash -rwxr-xr-x 1 root root 109768 2011-05-03 08:04 /bin/dash So I included a line in tst-fmon.sh to print the values read in from tst-fmon.data. The results appeared to be correct, so I modified tst-fmon.c to print out the values it was passed and found that extra whitespace had then been added. For example, the following line from tst-fmon.data: de_DE.ISO-8859-1 %=*#5n 123.45 ***123,45 EUR is stored as such in tst-fmon.sh: de_DE.ISO-8859-1 %=*#5n 123.45 ***123,45 EUR but appears in tst-fmon as: de_DE.ISO-8859-1 %=*#5n 123.45 ***123,45 EUR Hopefully this is helpful. If you require any more information, let me know. Also, from the lines I did inspect in tst-fmon.data, there appear to be redundant tests at lines 59/64 and 68/73 and there is a typo in tst-fmon.c which states that it expects three parameters and then describes four. -- You are receiving this mail because: You are on the CC list for the bug.