This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Rewrite gdb.base/term.exp.
- From: Pedro Alves <palves at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Date: Thu, 02 Feb 2012 16:59:11 +0000
- Subject: Rewrite gdb.base/term.exp.
I noticed that the test timeout against extended-remote gdbserver, due to no
inferiorio support. While fixing that (in order to expose the real missing
feature), I noticed the test could be rewritten in a much simpler form, using
modern mechanisms.
Tested on x86_64 Fedora 16. Gives one failure against extended-remote gdbserver,
FAIL: gdb.base/term.exp: info terminal at breakpoint
but that's really expected.
Will apply shortly.
2012-02-02 Pedro Alves <palves@redhat.com>
* gdb.base/term.exp: Rewrite.
---
gdb/testsuite/gdb.base/term.c | 21 +++++++++++++++
gdb/testsuite/gdb.base/term.exp | 55 +++++++++++++--------------------------
2 files changed, 40 insertions(+), 36 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/term.c
diff --git a/gdb/testsuite/gdb.base/term.c b/gdb/testsuite/gdb.base/term.c
new file mode 100644
index 0000000..91d66ed
--- /dev/null
+++ b/gdb/testsuite/gdb.base/term.c
@@ -0,0 +1,21 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2012 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+int main ()
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/term.exp b/gdb/testsuite/gdb.base/term.exp
index 7697160..68a1f1b 100644
--- a/gdb/testsuite/gdb.base/term.exp
+++ b/gdb/testsuite/gdb.base/term.exp
@@ -14,50 +14,33 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# This file was written by Rob Savoye. (rob@cygnus.com)
-
# Don't try this for remote targets.
if [is_remote target] then {
continue
}
-if [target_info exists noargs] then {
- verbose "Skipping term.exp because of noargs."
- return
+if { [prepare_for_testing term.exp term term.c] } {
+ return -1
}
-gdb_start
-
-#
-# test running programs
-#
+# Once before running the program.
+gdb_test "info terminal" \
+ "No saved terminal information.*" \
+ "test info terminal"
-if { [prepare_for_testing term.exp term run.c] } {
- return -1
+if ![runto_main] then {
+ fail "Can't run to main"
+ return 0
}
-gdb_test_no_output "set print sevenbit-strings"
-gdb_test_no_output "set print address off"
-gdb_test_no_output "set width 0"
-
-gdb_test "info terminal" "No saved terminal information.*" "test info terminal"
-gdb_run_cmd 5
-gdb_expect {
- -re ".*120.*$inferior_exited_re normally.*$gdb_prompt $" {
- gdb_test "info terminal" "No saved terminal information.*" "test info terminal #2"
- }
- default {
- fail "term.exp, factorial didn't run to completion for info terminal"
- }
-}
+# Once while the program is running and stopped.
+gdb_test "info terminal" \
+ "Inferior's terminal status .currently saved by GDB.:.*" \
+ "info terminal at breakpoint"
-# In mid-execution
-gdb_breakpoint main
-gdb_run_cmd 5
-gdb_expect {
- -re ".*Breakpoint \[0-9\]+,.*main.*if .argc != 2.*$gdb_prompt $" {
- gdb_test "info terminal" "Inferior's terminal status .currently saved by GDB.:.*" "info terminal at breakpoint"
- }
- -re ".*$gdb_prompt $" { fail "info terminal at breakpoint" }
- timeout { fail "(timeout) info terminal at breakpoint" }
-}
+gdb_continue_to_end
+
+# One last time after the program having exited.
+gdb_test "info terminal" \
+ "No saved terminal information.*" \
+ "test info terminal #2"