summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-09-02 08:00:59 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-09-02 08:00:59 +0000
commit254150982b7d1567080c7185d270d67069774d96 (patch)
treefac2fb88d0d1f67f805233e1dd03351684b7f5ee /lldb/packages/Python/lldbsuite/test
parent250c495a7c01b2da91a0387651ca6a932556ba19 (diff)
downloadbcm5719-llvm-254150982b7d1567080c7185d270d67069774d96.tar.gz
bcm5719-llvm-254150982b7d1567080c7185d270d67069774d96.zip
[lldb][NFC] Add basic test for GUI command
Summary: This adds a basic test for the GUI command. Just tests that it starts up, that we can quit the gui and help window, and that the basic UI elements are rendered. Mostly testing the waters how testing this command will do on the bots or if that will cause some serious issues when we do fancy ncurses stuff. Reviewers: labath, clayborg Reviewed By: labath Subscribers: JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D67018 llvm-svn: 370625
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile3
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py58
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c4
3 files changed, 65 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile b/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile
new file mode 100644
index 00000000000..cd9ca5c86d8
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile
@@ -0,0 +1,3 @@
+LEVEL = ../../../make
+C_SOURCES := main.c
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py b/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py
new file mode 100644
index 00000000000..7edddf3ff97
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py
@@ -0,0 +1,58 @@
+"""
+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__)
+
+ 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()
diff --git a/lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c b/lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c
new file mode 100644
index 00000000000..97d57fc7183
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c
@@ -0,0 +1,4 @@
+int main(int argc, char **argv) {
+ int funky_var_name_that_should_be_rendered = 22;
+ return 0; // Break here
+}
OpenPOWER on IntegriCloud