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

When running test-case gdb.base/info_sources_2.exp with check-read1, I run
into:
...
FAIL: gdb.base/info_sources_2.exp: args: : info sources  (timeout)
...

Fix this by consuming a "$src1, $src2, ..., $srcn: line bit by bit rather than
as one whole line.

Also add the missing handling of "Objfile has no debug information".

Tested on x86_64-linux.
This commit is contained in:
Tom de Vries
2021-10-08 14:17:09 +02:00
parent 2550e478ad
commit 048cb8b466

View File

@ -68,6 +68,7 @@ proc run_info_sources { extra_args args } {
# Run the command and extract the results into INFO_SOURCES.
set objfile_name ""
set source_files {}
set files {}
gdb_test_multiple $cmd "" {
-re "${command_regex}\r\n" {
exp_continue
@ -81,6 +82,9 @@ proc run_info_sources { extra_args args } {
-re "^\\(Full debug information has not yet been read for this file\\.\\)\r\n" {
exp_continue
}
-re "^\\(Objfile has no debug information\\.\\)\r\n" {
exp_continue
}
-re "^\r\n" {
exp_continue
@ -90,18 +94,22 @@ proc run_info_sources { extra_args args } {
pass $gdb_test_name
}
-re "^(\[^,\r\n\]+), " {
set f $expect_out(1,string)
lappend files $f
exp_continue
}
-re "^(\[^\r\n\]+)\r\n" {
if { $objfile_name == "" } {
fail "${gdb_test_name} (no objfile name)"
return
}
set files {}
foreach f [split $expect_out(1,string) ,] {
lappend files [string trim $f]
}
set f $expect_out(1,string)
lappend files $f
set info_sources($objfile_name) $files
set $objfile_name ""
set files {}
exp_continue
}
}