teak-llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py
Pavel Labath eafede2afe [dotest] Add @skipIfCursesSupportMissing and annotate the new gui test
Summary:
The gui command requires curses support, which can be disabled at
compile time. This patch adds the ability to detect this situation in
the test suite and skip the test accordingly.

Reviewers: teemperor, jankratochvil

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D67073

llvm-svn: 370658
2019-09-02 13:33:12 +00:00

60 lines
1.9 KiB
Python

"""
Test that the 'gui' displays the help window and basic UI.
"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test.lldbpexpect import PExpectTest
class BasicGuiCommandTest(PExpectTest):
mydir = TestBase.compute_mydir(__file__)
@skipIfCursesSupportMissing
def test_gui(self):
self.build()
self.launch(executable=self.getBuildArtifact("a.out"))
self.expect('br set -f main.c -p "// Break here"', substrs=["Breakpoint 1", "address ="])
self.expect("run", substrs=["stop reason ="])
escape_key = chr(27).encode()
# Start the GUI for the first time and check for the welcome window.
self.child.sendline("gui")
self.child.expect_exact("Welcome to the LLDB curses GUI.")
# Press escape to quit the welcome screen
self.child.send(escape_key)
# Press escape again to quit the gui
self.child.send(escape_key)
self.expect_prompt()
# Start the GUI a second time, this time we should have the normal GUI.
self.child.sendline("gui")
# Check for GUI elements in the menu bar.
self.child.expect_exact("Target")
self.child.expect_exact("Process")
self.child.expect_exact("Thread")
self.child.expect_exact("View")
self.child.expect_exact("Help")
# Check the sources window.
self.child.expect_exact("Sources")
self.child.expect_exact("main")
self.child.expect_exact("funky_var_name_that_should_be_rendered")
# Check the variable window.
self.child.expect_exact("Variables")
self.child.expect_exact("(int) funky_var_name_that_should_be_rendered = 22")
# Check the bar at the bottom.
self.child.expect_exact("Frame:")
# Press escape to quit the gui
self.child.send(escape_key)
self.quit()