diff options
author | Tom de Vries <tdevries@suse.de> | 2022-07-29 16:12:55 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-07-29 16:12:55 +0200 |
commit | 5ec878132bb39fb43e081dcf53e42aca202b24d9 (patch) | |
tree | b67e3844f8dacf74532a02f3b485e6a297ab737f /gdb/testsuite/gdb.ada/convvar_comp.exp | |
parent | 10948fb9fd66c029d59c97e04556ab827076336c (diff) | |
download | binutils-gdb-5ec878132bb39fb43e081dcf53e42aca202b24d9.tar.gz |
[gdb/testsuite] Fix gdb.ada/convvar_comp.exp with broken debug info
On aarch64-linux I run into this failure with gcc 7.5.0:
...
(gdb) print $item.started^M
$1 = (-5312, 65535, 4202476)^M
(gdb) FAIL: gdb.ada/convvar_comp.exp: print $item.started
...
The test-case expects (0, 0, 0), but we're getting another value due to
incorrect location information.
Work around this by:
- first printing the value, and then
- verifying that the convenience variable matches the printed value.
I've verified that the test-case still checks what it should by disabling
the fix from commit cc0e770c0d0 ("memory error printing component of record
from convenience variable") and observing the test-case fail.
Tested on x86_64-linux and aarch64-linux.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29420
Diffstat (limited to 'gdb/testsuite/gdb.ada/convvar_comp.exp')
-rw-r--r-- | gdb/testsuite/gdb.ada/convvar_comp.exp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.ada/convvar_comp.exp b/gdb/testsuite/gdb.ada/convvar_comp.exp index ebc2659aeaa..1923bd785c7 100644 --- a/gdb/testsuite/gdb.ada/convvar_comp.exp +++ b/gdb/testsuite/gdb.ada/convvar_comp.exp @@ -30,7 +30,15 @@ if ![runto "break_me" ] then { return } +set val "" +gdb_test_multiple "print item.started" "" { + -re -wrap " = \\((.*)\\)" { + set val $expect_out(1,string) + pass $gdb_test_name + } +} + gdb_test_no_output "set variable \$item := item" gdb_test "print \$item.started" \ - " = \\(0, 0, 0\\)" + " = \\($val\\)" |