This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Fix new FAIL `reject p 0x1.1' [fixup]
On Mon, 23 Aug 2010 21:57:19 +0200, Doug Evans wrote:
> On Mon, Aug 23, 2010 at 12:49 PM, Doug Evans <dje@google.com> wrote:
> >> While thanks for catching it I still believe now my testcase update is the
> >> appropriate fix - if glibc supports then extended input syntax let the GDB
> >> user benefit from it.
> >
> > It's ok with me.
>
> I should add that IWBN to have an additional testcase that exercises
> sscanf (...) == 0 on newer glibcs.
OK, I forgot first. OK to check-in? Tested both cases (RHEL-4.8 and
Fedora14snapshot).
Thanks,
Jan
gdb/testsuite/
2010-08-31 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/printcmds.exp (test_float_accepted): Import gdb_prompt.
Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
(test_float_rejected): ... here.
* gdb.java/jv-print.exp (test_float_accepted): Import gdb_prompt.
Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
(test_float_rejected): ... here.
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -119,6 +119,8 @@ proc test_integer_literals_rejected {} {
}
proc test_float_accepted {} {
+ global gdb_prompt
+
# This test is useful to catch successful parsing of the first fp value.
gdb_test "p 123.4+56.7" " = 180.(099\[0-9]*|100\[0-9\]*)" "check for floating addition"
@@ -129,6 +131,18 @@ proc test_float_accepted {} {
gdb_test "p 1.5f" " = 1.5"
gdb_test "p 1.l" " = 1"
gdb_test "p 1.5l" " = 1.5"
+
+ # Test hexadecimal floating point.
+ set test "p 0x1.1"
+ gdb_test_multiple $test $test {
+ -re " = 1\\.0625\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re "Invalid number \"0x1\\.1\"\\.\r\n$gdb_prompt $" {
+ # Older glibc does not support hex float, newer does.
+ xfail $test
+ }
+ }
}
proc test_float_rejected {} {
@@ -140,7 +154,6 @@ proc test_float_rejected {} {
test_print_reject "p 123foobar.bazfoo3"
test_print_reject "p 123EEEEEEEEEEEEEEEEE33333k333"
- test_print_reject "p 0x1.1"
# Test bad suffixes.
test_print_reject "p 1.1x"
--- a/gdb/testsuite/gdb.java/jv-print.exp
+++ b/gdb/testsuite/gdb.java/jv-print.exp
@@ -98,6 +98,8 @@ proc test_integer_literals_rejected {} {
}
proc test_float_accepted {} {
+ global gdb_prompt
+
# Test parsing of fp value with legit text following.
gdb_test "p 1234.5+1" " = 1235.5" "check fp + text"
@@ -108,12 +110,21 @@ proc test_float_accepted {} {
gdb_test "p 1.5f" " = 1.5"
gdb_test "p 1.d" " = 1"
gdb_test "p 1.5d" " = 1.5"
+
+ # Test hexadecimal floating point.
+ set test "p 0x1.1"
+ gdb_test_multiple $test $test {
+ -re " = 1\\.0625\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re "Invalid number \"0x1\\.1\"\r\n$gdb_prompt $" {
+ # Older glibc does not support hex float, newer does.
+ xfail $test
+ }
+ }
}
proc test_float_rejected {} {
- # Test invalid fp values.
- test_print_reject "p 0x1.1"
-
# Test bad suffixes.
test_print_reject "p 1.1x"
test_print_reject "p 1.1ff"