[committed,gdb/testsuite] Add missing skip_tui_tests

Message ID 20210714045322.GA22491@delia.home
State New
Headers show
Series
  • [committed,gdb/testsuite] Add missing skip_tui_tests
Related show

Commit Message

Tom de Vries July 14, 2021, 4:53 a.m.
Hi,

When building gdb with --disable-tui, we run into:
...
(gdb) frame apply all -- -^M
Undefined command: "-".  Try "help".^M
(gdb) ERROR: Undefined command "frame apply all -- -".
UNRESOLVED: gdb.base/options.exp: test-frame-apply: frame apply all -- -
...

Fix this by detecting whether tui is supported, and skipping the tui-related
tests otherwise.  Same in some gdb.tui test-cases.

Tested on x86_64-linux.

Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Add missing skip_tui_tests

gdb/testsuite/ChangeLog:

2021-07-13  Tom de Vries  <tdevries@suse.de>

	* gdb.base/options.exp: Skip tui-related tests when tui is not
	supported.
	* gdb.python/tui-window-disabled.exp: Same.
	* gdb.python/tui-window.exp: Same.

---
 gdb/testsuite/gdb.base/options.exp               | 33 +++++++++++++++---------
 gdb/testsuite/gdb.python/tui-window-disabled.exp |  5 ++++
 gdb/testsuite/gdb.python/tui-window.exp          |  5 ++++
 3 files changed, 31 insertions(+), 12 deletions(-)

Patch

diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
index 78ec54502c0..6b48a0f4a4b 100644
--- a/gdb/testsuite/gdb.base/options.exp
+++ b/gdb/testsuite/gdb.base/options.exp
@@ -46,6 +46,8 @@  if { ![readline_is_used] } {
     return -1
 }
 
+set tui_supported_p [expr ![skip_tui_tests]]
+
 # Check the completion result, as returned by the "maintenance show
 # test-options-completion-result" command.  TEST is used as test name.
 proc check_completion_result {expected test} {
@@ -320,6 +322,8 @@  proc_with_prefix test-backtrace {} {
 
 # Basic option-machinery + "frame apply" command integration tests.
 proc_with_prefix test-frame-apply {} {
+    global tui_supported_p
+
     test_gdb_complete_unique "frame apply all" "frame apply all"
 
     gdb_test "frame apply level 0-" \
@@ -376,12 +380,14 @@  proc_with_prefix test-frame-apply {} {
 	    test_gdb_completion_offers_commands "$cmd -- "
 	}
 
-	# '-' is a valid TUI command.
-	test_error_cmd2 $cmd " -- -" \
-	    "Cannot enable the TUI when output is not a terminal"
-	test_gdb_complete_unique \
-	    "$cmd -- -" \
-	    "$cmd -- -"
+	if { $tui_supported_p } {
+	    # '-' is a valid TUI command.
+	    test_error_cmd2 $cmd " -- -" \
+		"Cannot enable the TUI when output is not a terminal"
+	    test_gdb_complete_unique \
+		"$cmd -- -" \
+		"$cmd -- -"
+	}
 
 	test_error_cmd2 $cmd " -foo" \
 	    "Undefined command: \"-foo\".  Try \"help\"\\."
@@ -393,6 +399,7 @@  proc_with_prefix test-frame-apply {} {
 
 # Basic option-machinery + "thread apply" command integration tests.
 proc_with_prefix test-thread-apply {} {
+    global tui_supported_p
 
     test_gdb_complete_unique "thread apply all" "thread apply all"
     test_gdb_complete_unique "taas" "taas"
@@ -457,12 +464,14 @@  proc_with_prefix test-thread-apply {} {
 	    test_gdb_completion_offers_commands "$cmd -- "
 	}
 
-	# '-' is a valid TUI command.
-	test_invalid_cmd "$cmd" " -- -" \
-	    "Cannot enable the TUI when output is not a terminal"
-	test_gdb_complete_unique \
-	    "$cmd -- -" \
-	    "$cmd -- -"
+	if { $tui_supported_p } {
+	    # '-' is a valid TUI command.
+	    test_invalid_cmd "$cmd" " -- -" \
+		"Cannot enable the TUI when output is not a terminal"
+	    test_gdb_complete_unique \
+		"$cmd -- -" \
+		"$cmd -- -"
+	}
 
 	test_invalid_cmd $cmd " -foo" \
 	    "Undefined command: \"-foo\".  Try \"help\"\\."
diff --git a/gdb/testsuite/gdb.python/tui-window-disabled.exp b/gdb/testsuite/gdb.python/tui-window-disabled.exp
index af1fa0cde63..f43530bb64a 100644
--- a/gdb/testsuite/gdb.python/tui-window-disabled.exp
+++ b/gdb/testsuite/gdb.python/tui-window-disabled.exp
@@ -30,6 +30,11 @@  if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
     return -1
 }
 
+clean_restart
+if {[skip_tui_tests]} {
+    return
+}
+
 # Copy the Python script to where the tests are being run.
 set remote_python_file [gdb_remote_download host \
 			    ${srcdir}/${subdir}/${testfile}.py]
diff --git a/gdb/testsuite/gdb.python/tui-window.exp b/gdb/testsuite/gdb.python/tui-window.exp
index 8d86afb1449..4710dd67f43 100644
--- a/gdb/testsuite/gdb.python/tui-window.exp
+++ b/gdb/testsuite/gdb.python/tui-window.exp
@@ -25,6 +25,11 @@  if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
     return -1
 }
 
+clean_restart
+if {[skip_tui_tests]} {
+    return
+}
+
 Term::clean_restart 24 80 $testfile
 
 # Skip all tests if Python scripting is not enabled.