[Lldb-commits] [PATCH] D67018: [lldb][NFC] Add basic test for GUI command
Raphael Isemann via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 30 13:37:48 PDT 2019
teemperor updated this revision to Diff 218161.
teemperor added a comment.
- Set terminal dimension.
Yeah, Pavel added support for that (but I forgot to set them here because the test I used as a template didn't had the dimensions set).
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67018/new/
https://reviews.llvm.org/D67018
Files:
lldb/packages/Python/lldbsuite/test/functionalities/gui_command/Makefile
lldb/packages/Python/lldbsuite/test/functionalities/gui_command/TestGuiBasic.py
lldb/packages/Python/lldbsuite/test/functionalities/gui_command/main.c
Index: lldb/packages/Python/lldbsuite/test/functionalities/gui_command/main.c
===================================================================
--- /dev/null
+++ lldb/packages/Python/lldbsuite/test/functionalities/gui_command/main.c
@@ -0,0 +1,5 @@
+int main(int argc, char **argv) {
+ lldb_enable_attach();
+ int funky_var_name_that_should_be_rendered = 22;
+ return 0;
+}
Index: lldb/packages/Python/lldbsuite/test/functionalities/gui_command/TestGuiBasic.py
===================================================================
--- /dev/null
+++ lldb/packages/Python/lldbsuite/test/functionalities/gui_command/TestGuiBasic.py
@@ -0,0 +1,59 @@
+"""
+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"),
+ dimensions=(100,500))
+ self.expect("b main.c:4", 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()
Index: lldb/packages/Python/lldbsuite/test/functionalities/gui_command/Makefile
===================================================================
--- /dev/null
+++ lldb/packages/Python/lldbsuite/test/functionalities/gui_command/Makefile
@@ -0,0 +1,3 @@
+LEVEL = ../../make
+C_SOURCES := main.c
+include $(LEVEL)/Makefile.rules
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67018.218161.patch
Type: text/x-patch
Size: 2943 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190830/8172b629/attachment-0001.bin>
More information about the lldb-commits
mailing list