summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui')
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile2
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py64
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c4
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py13
4 files changed, 83 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile
new file mode 100644
index 00000000000..c9319d6e688
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/Makefile
@@ -0,0 +1,2 @@
+C_SOURCES := main.c
+include Makefile.rules
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py
new file mode 100644
index 00000000000..2dcc7d08e6e
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py
@@ -0,0 +1,64 @@
+"""
+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__)
+
+ # PExpect uses many timeouts internally and doesn't play well
+ # under ASAN on a loaded machine..
+ @skipIfAsan
+ @skipIfCursesSupportMissing
+ @skipIfRemote # "run" command will not work correctly for remote debug
+ def test_gui(self):
+ self.build()
+
+ self.launch(executable=self.getBuildArtifact("a.out"), dimensions=(100,500))
+ 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.expect_prompt()
+ self.quit()
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/basic/main.c
new file mode 100644
index 00000000000..97d57fc7183
--- /dev/null
+++ b/gnu/llvm/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
+}
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py
new file mode 100644
index 00000000000..11fdc92243b
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py
@@ -0,0 +1,13 @@
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+class GuiTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @no_debug_info_test
+ @skipIfCursesSupportMissing
+ def test_reproducer_generate_invalid_invocation(self):
+ self.expect("gui blub", error=True,
+ substrs=["the gui command takes no arguments."])