[gdb/testsuite] Fix gdb.base/info_sources_2.exp with check-read1
authorTom de Vries <tdevries@suse.de>
Fri, 8 Oct 2021 12:17:09 +0000 (14:17 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 8 Oct 2021 12:17:09 +0000 (14:17 +0200)
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.

gdb/testsuite/gdb.base/info_sources_2.exp

index 3aed25b07ac785fada699cac0d6217c9fee22231..186b21c2ed862b01d719b56b627fa0504b7315c0 100644 (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
            }
        }