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"
            # 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"
     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
 }
 
 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 \
     "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"