[gdb/testsuite] Fix FAIL in gdb.tui/corefile-run.exp

Message ID 20211005114212.GA2804@delia
State New
Headers show
Series
  • [gdb/testsuite] Fix FAIL in gdb.tui/corefile-run.exp
Related show

Commit Message

Tom Tromey via Gdb-patches Oct. 5, 2021, 11:42 a.m.
Hi,

When running test-case gdb.tui/corefile-run.exp on openSUSE Tumbleweed,
I run into:
...
PASS: gdb.tui/corefile-run.exp: load corefile
FAIL: gdb.tui/corefile-run.exp: run until the end
...

What's going on is easier to see when also doing dump_screen if
check_contents passes, and inspecting state at the preceding PASS:
...
 +-------------------------------------------------------------------------+
 exec No process In:                                           L??   PC: ??
 [New LWP 16629]
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib64/libthread_db.so.1".
 Core was generated by `/data/gdb_versions/devel/build/gdb/testsuite/output
 s/gdb.tui/corefile-run/corefi'.
 Program terminated with signal SIGTRAP, Trace/breakpoint trap.
 #0  main ()
 --Type <RET> for more, q to quit, c to continue without paging--
...

The problem is that we're getting a pagination prompt, and the subsequent run
command is interpreted as an answer to that prompt.

Fix this by:
- detecting the gdb prompt in response to "load corefile", such that
  we detect the failure earlier, and
- doing a "set pagination off" in Term::clean_restart.

Tested on x86_64-linux.

Any comments?

Thanks,
- Tom

[gdb/testsuite] Fix FAIL in gdb.tui/corefile-run.exp

---
 gdb/testsuite/gdb.tui/corefile-run.exp | 2 +-
 gdb/testsuite/lib/tuiterm.exp          | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Andrew Burgess Oct. 6, 2021, 8:57 a.m. | #1
* Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> [2021-10-05 13:42:14 +0200]:

> Hi,

> 

> When running test-case gdb.tui/corefile-run.exp on openSUSE Tumbleweed,

> I run into:

> ...

> PASS: gdb.tui/corefile-run.exp: load corefile

> FAIL: gdb.tui/corefile-run.exp: run until the end

> ...

> 

> What's going on is easier to see when also doing dump_screen if

> check_contents passes, and inspecting state at the preceding PASS:

> ...

>  +-------------------------------------------------------------------------+

>  exec No process In:                                           L??   PC: ??

>  [New LWP 16629]

>  [Thread debugging using libthread_db enabled]

>  Using host libthread_db library "/lib64/libthread_db.so.1".

>  Core was generated by `/data/gdb_versions/devel/build/gdb/testsuite/output

>  s/gdb.tui/corefile-run/corefi'.

>  Program terminated with signal SIGTRAP, Trace/breakpoint trap.

>  #0  main ()

>  --Type <RET> for more, q to quit, c to continue without paging--

> ...

> 

> The problem is that we're getting a pagination prompt, and the subsequent run

> command is interpreted as an answer to that prompt.

> 

> Fix this by:

> - detecting the gdb prompt in response to "load corefile", such that

>   we detect the failure earlier, and

> - doing a "set pagination off" in Term::clean_restart.

> 

> Tested on x86_64-linux.

> 

> Any comments?


LGTM.

Thanks,
Andrew

> 

> Thanks,

> - Tom

> 

> [gdb/testsuite] Fix FAIL in gdb.tui/corefile-run.exp

> 

> ---

>  gdb/testsuite/gdb.tui/corefile-run.exp | 2 +-

>  gdb/testsuite/lib/tuiterm.exp          | 1 +

>  2 files changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/gdb/testsuite/gdb.tui/corefile-run.exp b/gdb/testsuite/gdb.tui/corefile-run.exp

> index f000ff6a93a..d3eaaaf4af9 100644

> --- a/gdb/testsuite/gdb.tui/corefile-run.exp

> +++ b/gdb/testsuite/gdb.tui/corefile-run.exp

> @@ -54,7 +54,7 @@ gdb_assert {![string match "No Source Available" $text]} \

>      "initial source listing"

>  

>  Term::command "core-file $core"

> -Term::check_contents "load corefile" "21 *return 0"

> +Term::check_contents "load corefile" "21 *return 0.*$gdb_prompt .*"

>  

>  Term::command "run"

>  Term::check_contents "run until the end" \

> diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp

> index 222583f291f..ad5cbb72ea5 100644

> --- a/gdb/testsuite/lib/tuiterm.exp

> +++ b/gdb/testsuite/lib/tuiterm.exp

> @@ -595,6 +595,7 @@ namespace eval Term {

>  	    } else {

>  		::clean_restart $executable

>  	    }

> +	    ::gdb_test_no_output "set pagination off"

>  	}

>      }

>

Patch

diff --git a/gdb/testsuite/gdb.tui/corefile-run.exp b/gdb/testsuite/gdb.tui/corefile-run.exp
index f000ff6a93a..d3eaaaf4af9 100644
--- a/gdb/testsuite/gdb.tui/corefile-run.exp
+++ b/gdb/testsuite/gdb.tui/corefile-run.exp
@@ -54,7 +54,7 @@  gdb_assert {![string match "No Source Available" $text]} \
     "initial source listing"
 
 Term::command "core-file $core"
-Term::check_contents "load corefile" "21 *return 0"
+Term::check_contents "load corefile" "21 *return 0.*$gdb_prompt .*"
 
 Term::command "run"
 Term::check_contents "run until the end" \
diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp
index 222583f291f..ad5cbb72ea5 100644
--- a/gdb/testsuite/lib/tuiterm.exp
+++ b/gdb/testsuite/lib/tuiterm.exp
@@ -595,6 +595,7 @@  namespace eval Term {
 	    } else {
 		::clean_restart $executable
 	    }
+	    ::gdb_test_no_output "set pagination off"
 	}
     }