[gdb/testsuite] Prevent pagination in GDB_INTERNALFLAGS
authorTom de Vries <tdevries@suse.de>
Mon, 26 Oct 2020 15:05:15 +0000 (16:05 +0100)
committerTom de Vries <tdevries@suse.de>
Mon, 26 Oct 2020 15:05:15 +0000 (16:05 +0100)
When running test-case gdb.base/corefile.exp with target board readnow, we run
into:
...
Reading symbols from outputs/gdb.base/corefile/corefile...^M
Expanding full symbols from outputs/gdb.base/corefile/corefile...^M
[New LWP 2293]^M
Core was generated by `outputs/gdb.base/corefile/co'.^M
Program terminated with signal SIGABRT, Aborted.^M
--Type <RET> for more, q to quit, c to continue without paging--\
  FAIL: gdb.base/corefile.exp: (timeout) starting with -core
...

In commit bd447abb24 "Make gdb.base/corefile.exp work on terminals with few
rows", pagination (in the same test-case) is prevented using:
...
set stty_init "rows 25 cols 80"
...
but this doesn't work in our case because using -readnow adds an extra line
"Expanding full symbols".

The test passes when increasing rows to 26.  However, increasing the rows by
some n only fixes the problem for n lines, and things will break again if
somehow we end up with n + 1 lines.

Instead, fix this by setting heigth and width in INTERNAL_GDBFLAGS.  This
solution was not chosen in commit bd447abb24 because it doesn't handle
pagination due to the introduction text.  But it does handle the pagination
due to the extra "Expanding full symbols", and any other line printed during
and after file loading.

Tested on x86_64-linux, with and without readnow.

With -readnow, fixes timeout FAILs in gdb.base/corefile.exp and
gdb.base/reread-readsym.exp.

gdb/testsuite/ChangeLog:

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

* lib/gdb.exp (INTERNAL_GDBFLAGS): Set heigth and width.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index 60bbd8a86967480f6521d550af5ea746d5811582..11b0f5bf2dbbb4eb411ead4e744c169b9154ba21 100644 (file)
@@ -1,3 +1,7 @@
+2020-10-26  Tom de Vries  <tdevries@suse.de>
+
+       * lib/gdb.exp (INTERNAL_GDBFLAGS): Set heigth and width.
+
 2020-10-26  Tom de Vries  <tdevries@suse.de>
 
        * gdb.dwarf2/dw2-objfile-overlap-inner.S: Specify default base address
index f53df59f1813cc976415fd9eabee43b0de1cab11..197542eec3ba4864dbcbffcdc7b1ff9153895c27 100644 (file)
@@ -124,7 +124,13 @@ set BUILD_DATA_DIRECTORY "[pwd]/../data-directory"
 # INTERNAL_GDBFLAGS contains flags that the testsuite requires.
 global INTERNAL_GDBFLAGS
 if ![info exists INTERNAL_GDBFLAGS] {
-    set INTERNAL_GDBFLAGS "-nw -nx -data-directory $BUILD_DATA_DIRECTORY"
+    set INTERNAL_GDBFLAGS \
+       [join [list \
+                  "-nw" \
+                  "-nx" \
+                  "-data-directory $BUILD_DATA_DIRECTORY" \
+                  {-iex "set height 0"} \
+                  {-iex "set width 0"}]]
 }
 
 # The variable gdb_prompt is a regexp which matches the gdb prompt.