[committed][gdb/testsuite] Fix gdb.base/maint.exp FAILs with -readnow

Tom de Vries tdevries@suse.de
Tue Oct 27 22:17:58 GMT 2020


Hi,

When running test-case gdb.base/maint.exp with target board readnow, we run
into:
...
FAIL: gdb.base/maint.exp: mt expand-symtabs
FAIL: gdb.base/maint.exp: maint print objfiles: psymtabs
FAIL: gdb.base/maint.exp: maint print psymbols -source
FAIL: gdb.base/maint.exp: maint print psymbols -pc
FAIL: gdb.base/maint.exp: maint info line-table with filename of symtab that \
  is not currently expanded
...

When using -readnow:
- there are no partial symtabs
- all symtabs are expanded at symbol load time
and these differences from normal behaviour cause the FAILs.

Update the tests for -readnow.

Tested on x86_64-linux.

Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Fix gdb.base/maint.exp FAILs with -readnow

gdb/testsuite/ChangeLog:

2020-10-27  Tom de Vries  <tdevries@suse.de>

	* gdb.base/maint.exp: Update for -readnow.

---
 gdb/testsuite/gdb.base/maint.exp | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 00fe8c296c..e2340d1722 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -53,6 +53,8 @@ if {[prepare_for_testing "failed to prepare" $testfile \
     return -1
 }
 
+set readnow_p [readnow]
+
 # The commands we test here produce many lines of output; disable "press
 # <return> to continue" prompts.
 gdb_test_no_output "set height 0"
@@ -96,7 +98,14 @@ gdb_test_multiple "mt expand-symtabs $subdir/break\[.\]c$" \
 	    # holding "main" will already have been expanded, but if the
 	    # file is compiled with -fdebug-types-section then a second primary
 	    # symtab for break.c will be created for any types.
-	    pass "mt expand-symtabs"
+	    pass "$gdb_test_name"
+	}
+	-re "#compunits: ($decimal) \\(\[+\]0\\),.*$gdb_prompt $" {
+	    if { $readnow_p } {
+		pass "$gdb_test_name"
+	    } else {
+		fail "$gdb_test_name"
+	    }
 	}
     }
 gdb_test "mt set per off" ".*" "mt set per off for expand-symtabs"
@@ -153,6 +162,8 @@ if { $index_cache_misses == 0 && $using_index_cache } {
     set have_gdb_index 1
 }
 
+set have_psyms [expr ! ( $have_gdb_index || $readnow_p )]
+
 #
 # this command does not produce any output
 # unless there is some problem with the symtabs and psymtabs
@@ -250,12 +261,12 @@ proc maint_pass_if {val name} {
 }
 
 maint_pass_if $header   "maint print objfiles: header"
-if { ! $have_gdb_index } {
+if { $have_psyms } {
     maint_pass_if $psymtabs "maint print objfiles: psymtabs"
 }
 maint_pass_if $symtabs  "maint print objfiles: symtabs"
 
-if { ! $have_gdb_index } {
+if { $have_psyms } {
     set psymbols_output [standard_output_file psymbols_output]
     set psymbols_output_re [string_to_regexp $psymbols_output]
     set test_list [list \
@@ -546,8 +557,12 @@ gdb_test "maint info line-table ${srcfile}" \
     "symtab: \[^\n\r\]+${srcfile}.*INDEX.*LINE.*ADDRESS.*" \
     "maint info line-table with filename of current symtab"
 
-gdb_test_no_output "maint info line-table ${srcfile2}" \
-    "maint info line-table with filename of symtab that is not currently expanded"
+if { ! $readnow_p } {
+    gdb_test_no_output "maint info line-table ${srcfile2}" \
+	[join \
+	     "maint info line-table with filename of symtab that is not" \
+	     " currently expanded"]
+}
 
 gdb_test_no_output "maint expand-symtabs"
 


More information about the Gdb-patches mailing list