aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/maint.exp24
2 files changed, 27 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a66b8cc..73c4a2c 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2018-05-04 Andrew Burgess <andrew.burgess@embecosm.com>
+ * gdb.base/maint.exp: Process output from 'maint print registers'
+ line at a time.
+
+2018-05-04 Andrew Burgess <andrew.burgess@embecosm.com>
+
* lib/mi-support.exp (mi_run_cmd_full): Fix regexp and add a
timeout.
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 9322108..f576cb3 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -62,8 +62,28 @@ gdb_test_no_output "set height 0"
gdb_file_cmd ${binfile}
# Test for a regression where this command would internal-error if the
-# program wasn't running.
-gdb_test "maint print registers" "Name.*Nr.*Rel.*Offset.*Size.*Type.*"
+# program wasn't running. If there's a lot of registers then this
+# might overflow expect's buffers, so process the output line at a
+# time.
+set saw_registers 0
+set saw_headers 0
+set test "maint print registers"
+gdb_test_multiple $test $test {
+ -re "\[^\r\n\]+Name\[^\r\n\]+Nr\[^\r\n\]+Rel\[^\r\n\]+Offset\[^\r\n\]+Size\[^\r\n\]+Type\[^\r\n\]+\[\r\n\]+" {
+ set saw_headers 1
+ exp_continue
+ }
+ -re "^\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[\r\n\]+" {
+ set saw_registers 1
+ exp_continue
+ }
+ -re "^\\*\[0-9\]+\[^\r\n\]+\[\r\n\]+" {
+ exp_continue
+ }
+ -re "$gdb_prompt $" {
+ gdb_assert { $saw_registers && $saw_headers } $test
+ }
+}
# Test "mt expand-symtabs" here as it's easier to verify before we
# run the program.