diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2017-08-12 10:33:00 +0200 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2017-08-12 10:33:00 +0200 |
commit | c2c2dd9f09130fcdfc6bee999705206644f1f17f (patch) | |
tree | c92ff934e45bcb664a7196dc6af81aedbc68a727 /gdb/testsuite | |
parent | 483767a333faed7ac25783459c0c9b0be4800932 (diff) | |
download | gdb-c2c2dd9f09130fcdfc6bee999705206644f1f17f.zip gdb-c2c2dd9f09130fcdfc6bee999705206644f1f17f.tar.gz gdb-c2c2dd9f09130fcdfc6bee999705206644f1f17f.tar.bz2 |
testsuite: Exclude end-of-line characters from get_valueof result
The get_valueof procedure allows tests to conveniently make gdb evaluate
an expression an return the value as a string. However, it includes an
end-of-line character in its result. I stumbled on this when trying to
use that result as part of a regex further in a test.
You can see this for example by adding a puts in
gdb.dwarf2/implref-struct.exp:get_members:
set members [get_valueof "" ${var} ""]
puts "<$members>"
The output is
<{a = 0, b = 1, c = 2}
>
This is because the regex in get_valueof is too greedy, the captured
portion matches anything up to the gdb_prompt, including the end of line
characters. This patch changes it to capture everything but end of line
characters.
The output of the puts becomes:
<{a = 0, b = 1, c = 2}>
I tested this by running gdb.dwarf2/implref-array.exp and
gdb.dwarf2/implref-struct.exp, the two only current users of that
procedure.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (get_valueof): Don't capture end-of-line
characters.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 31f419f..23658b0 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-08-12 Simon Marchi <simon.marchi@ericsson.com> + + * lib/gdb.exp (get_valueof): Don't capture end-of-line + characters. + 2017-08-05 Tom Tromey <tom@tromey.com> * gdb.rust/simple.exp: Allow String to appear in a different diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 3d3eaab..d0265fc 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -5537,7 +5537,7 @@ proc get_valueof { fmt exp default {test ""} } { set val ${default} gdb_test_multiple "print${fmt} ${exp}" "$test" { - -re "\\$\[0-9\]* = (.*)\[\r\n\]*$gdb_prompt $" { + -re "\\$\[0-9\]* = (\[^\r\n\]*)\[\r\n\]*$gdb_prompt $" { set val $expect_out(1,string) pass "$test ($val)" } |