mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 17:18:55 +00:00
[gdb/testsuite] Fix check-read1 FAIL with gdb.base/maint.exp
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. 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".
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2020-03-15 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* gdb.base/maint.exp: Use exp_continue in long lines for "maint print
|
||||
objfiles".
|
||||
|
||||
2020-03-14 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* gdb.base/cvexpr.exp: Add test for _Atomic and restrict.
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user