Re: [PATCH v2 2/5] Further cleanup/modernization of gdb.base/commands.exp

Pedro Alves
2016-11-09T15:56:57Z

On 11/09/2016 03:02 AM, Simon Marchi wrote:
> On 2016-11-08 19:19, Pedro Alves wrote:
>> - Use multi_line for matching multi-line GDB output.
>>
>> - Add a multi_line_input variant of multi_line to build GDB input and
>> use it throughout.
>>
>> (The two changes above make the tests much more readable, IMO.)
>>
>> - Remove gdb_stop_suppressing_tests uses.
>>
>> - tighten a few regexps.
>>
>> - Replace send_gdb/gdb_expect with gdb_test_multiple and simplify,
>> making pass/fail messages the same.
>
> I agree, the test is now much more readable.
>
>> + gdb_test \
>> + [multi_line_input \
>> + "while \$foo > 0" \
>> + " p/x 0xfeedface" \
>> + " set \$foo -= 1" \
>> + "end"] \
>> + [multi_line \
>> + "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
>> + "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
>> + "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
>> + "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
>> + "\\\$\[0-9\]* = 0xfeedface"] \
>> + "#1"
>
> In these instance, what is the [^\n] meant to match? Is it the \r? In
> that case, multi_line matches it, so I think we can get rid of them
> (throughout the file).
>

Indeed. I did that now, with the patchlet below, and the test
still passes. Also found another place where we could use multi_line.

From 9363d1c3a008337d1f56e94d8dc51e17ebd02ab0 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Wed, 9 Nov 2016 15:36:45 +0000
Subject: [PATCH] review

---
gdb/testsuite/gdb.base/commands.exp | 49 +++++++++++++++++++++----------------
1 file changed, 28 insertions(+), 21 deletions(-)

diff --git a/gdb/testsuite/gdb.base/commands.exp b/gdb/testsuite/gdb.base/commands.exp
index b6c8f9e..c4bf425 100644
--- a/gdb/testsuite/gdb.base/commands.exp
+++ b/gdb/testsuite/gdb.base/commands.exp
@@ -72,10 +72,10 @@ proc_with_prefix gdbvar_simple_while_test {} {
" set \$foo -= 1" \
"end"] \
[multi_line \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xfeedface" \
"\\\$\[0-9\]* = 0xfeedface"] \
"#1"
}
@@ -96,9 +96,9 @@ proc_with_prefix gdbvar_complex_if_while_test {} {
" end" \
"end"] \
[multi_line \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
"\\\$\[0-9\]* = 0xfeedface"] \
"#1"
}
@@ -150,10 +150,10 @@ proc_with_prefix progvar_simple_while_test {} {
" set value -= 1" \
"end"] \
[multi_line \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xfeedface" \
"\\\$\[0-9\]* = 0xfeedface"] \
"#1"
}
@@ -179,9 +179,9 @@ proc_with_prefix progvar_complex_if_while_test {} {
" end" \
"end"] \
[multi_line \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
"\\\$\[0-9\]* = 0xfeedface"] \
"#1"
}
@@ -218,9 +218,9 @@ proc_with_prefix if_while_breakpoint_command_test {} {
gdb_test \
"continue" \
[multi_line \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
"\\\$\[0-9\]* = 0xfeedface"] \
"#1"
gdb_test "info break" "while.*set.*if.*p/x.*else.*p/x.*end.*"
@@ -309,9 +309,9 @@ proc_with_prefix user_defined_command_test {} {
gdb_test \
"mycommand \$foo" \
[multi_line \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
- "\\\$\[0-9\]* = 0xfeedface\[^\n\]*" \
- "\\\$\[0-9\]* = 0xdeadbeef\[^\n\]*" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
+ "\\\$\[0-9\]* = 0xfeedface" \
+ "\\\$\[0-9\]* = 0xdeadbeef" \
"\\\$\[0-9\]* = 0xfeedface"] \
"execute user-defined command"
gdb_test "show user mycommand" \
@@ -784,7 +784,14 @@ proc_with_prefix error_clears_commands_left {} {
gdb_test_no_output "end" "main commands 2c"

gdb_run_cmd
- gdb_test "" "hook-stop1\r\n.*\r\ncmd1\r\nUndefined command: \"errorcommandxy\"\\. Try \"help\"\\." "cmd1 error"
+ gdb_test \
+ "" \
+ [multi_line \
+ "hook-stop1" \
+ ".*" \
+ "cmd1" \
+ "Undefined command: \"errorcommandxy\"\\. Try \"help\"\\."] \
+ "cmd1 error"

gdb_test {echo idle\n} "\r\nidle" "no cmd2"
}
--
2.5.5