Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [committed][gdb/testsuite] Fix check-read1 FAIL with gdb.base/maint.exp
@ 2020-03-15  9:44 Tom de Vries
  0 siblings, 0 replies; only message in thread
From: Tom de Vries @ 2020-03-15  9:44 UTC (permalink / raw)
  To: gdb-patches

Hi,

When running test-case gdb.base/maint.exp with check-read1, I run into:
...
FAIL: gdb.base/maint.exp: (timeout) maint print objfiles
...

The FAIL happens because command output contains long lines like this:
...
file1 at $hex, file2 at $hex, ..., $file$n at $hex,
...
F.i., such a line for libc.so.debug contains 82000 chars.

Fix this this by reading long lines bit by bit.

Also, replace the testing of the command output formulated using a gdb_send
combined with gdb_expect-in-a-loop, with a regular gdb_test_multiple with
exp_continue.

Tested on x86_64-linux, with make targets check and check-read1.

Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Fix check-read1 FAIL with gdb.base/maint.exp

gdb/testsuite/ChangeLog:

2020-03-15  Tom de Vries  <tdevries@suse.de>

	* gdb.base/maint.exp: Use exp_continue in long lines for "maint print
	objfiles".

---
 gdb/testsuite/gdb.base/maint.exp | 45 +++++++++++++++++-----------------------
 1 file changed, 19 insertions(+), 26 deletions(-)

diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index f6eeb98a20..3431f2c6dc 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -215,7 +215,7 @@ gdb_expect  {
 # There aren't any ...
 gdb_test_no_output "maint print dummy-frames"
 
-send_gdb "maint print objfiles\n"
+
 
 # To avoid timeouts, we avoid expects with many .* patterns that match
 # many lines.  Instead, we keep track of which milestones we've seen
@@ -224,31 +224,24 @@ send_gdb "maint print objfiles\n"
 set header 0
 set psymtabs 0
 set symtabs 0
-set keep_looking 1
-
-while {$keep_looking} {
-    gdb_expect  {
-
-	-re "\r\n" {
-	    set output $expect_out(buffer)
-	    if {[regexp ".*Object file.*maint($EXEEXT)?:  Objfile at ${hex}" $output]} {
-		set header 1
-	    }
-	    if {[regexp ".*Psymtabs:\[\r\t \]+\n" $output]} {
-		set psymtabs 1
-	    }
-	    if {[regexp ".*Symtabs:\[\r\t \]+\n" $output]} {
-		set symtabs 1
-	    }
-	}
-
-	-re ".*$gdb_prompt $" { 
-	    set keep_looking 0
-	}
-	timeout { 
-	    fail "(timeout) maint print objfiles" 
-	    set keep_looking 0
-	}
+gdb_test_multiple "maint print objfiles" "" -lbl {
+    -re "\r\nObject file.*maint($EXEEXT)?:  Objfile at ${hex}" {
+	set header 1
+	exp_continue
+    }
+    -re "\r\nPsymtabs:\[\r\t \]+" {
+	set psymtabs 1
+	exp_continue
+    }
+    -re "\r\nSymtabs:\[\r\t \]+\n" {
+	set symtabs 1
+	exp_continue
+    }
+    -re " at $hex," {
+	exp_continue
+    }
+    -re -wrap "" {
+	pass $gdb_test_name
     }
 }
 


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-15  9:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-15  9:44 [committed][gdb/testsuite] Fix check-read1 FAIL with gdb.base/maint.exp Tom de Vries

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox