diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6ca5aefc373..7d8c8d0b7c5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-01-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* lib/tuiterm.exp (Term::prepare_for_tui): New proc.
+	(Term::enter_tui): Use Term::prepare_for_tui.
+
 2020-01-09  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* lib/tuiterm.exp (Term::dump_screen): Always dump the screen when
diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp
index 36e034a3639..9ac599b6f2d 100644
--- a/gdb/testsuite/lib/tuiterm.exp
+++ b/gdb/testsuite/lib/tuiterm.exp
@@ -462,15 +462,25 @@ namespace eval Term {
 	}
     }
 
-    # Start the TUI.  Returns 1 on success, 0 if TUI tests should be
-    # skipped.
-    proc enter_tui {} {
+    # Setup ready for starting the tui, but don't actually start it.
+    # Returns 1 on success, 0 if TUI tests should be skipped.
+    proc prepare_for_tui {} {
 	if {[skip_tui_tests]} {
 	    return 0
 	}
 
 	gdb_test_no_output "set tui border-kind ascii"
 	gdb_test_no_output "maint set tui-resize-message on"
+	return 1
+    }
+
+    # Start the TUI.  Returns 1 on success, 0 if TUI tests should be
+    # skipped.
+    proc enter_tui {} {
+	if {![prepare_for_tui]} {
+	    return 0
+	}
+
 	command "tui enable"
 	return 1
     }