This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]