summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-09-10 12:04:04 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-09-10 12:04:04 +0000
commitd9442afba1bd65fd0b5c93b67922eaed923445e2 (patch)
tree4cf657a31d92a6a17d07dd8a81e85bd00fe22d39 /lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options
parent3729b17cff53b536d2019b2d4c90e2a6f17754d1 (diff)
downloadbcm5719-llvm-d9442afba1bd65fd0b5c93b67922eaed923445e2.tar.gz
bcm5719-llvm-d9442afba1bd65fd0b5c93b67922eaed923445e2.zip
[lldb] Readd missing functionalities/breakpoint tests
It seems when I restructured the test folders the functionalities/breakpoint was deleted. This just reverts this change and re-adds the tests. llvm-svn: 371512
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/Makefile5
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py114
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/foo.cpp12
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/main.cpp4
4 files changed, 135 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/Makefile b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/Makefile
new file mode 100644
index 00000000000..457c4972f2d
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/Makefile
@@ -0,0 +1,5 @@
+LEVEL = ../../../make
+
+CXX_SOURCES := main.cpp foo.cpp
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
new file mode 100644
index 00000000000..66ec1161d77
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
@@ -0,0 +1,114 @@
+"""
+Test breakpoint command for different options.
+"""
+
+from __future__ import print_function
+
+
+import lldb
+from lldbsuite.test.lldbtest import *
+import lldbsuite.test.lldbutil as lldbutil
+
+
+class BreakpointOptionsTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def test(self):
+ """Test breakpoint command for different options."""
+ self.build()
+ self.breakpoint_options_test()
+
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to break inside main().
+ self.line = line_number('main.cpp', '// Set break point at this line.')
+
+ def breakpoint_options_test(self):
+ """Test breakpoint command for different options."""
+ exe = self.getBuildArtifact("a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # This should create a breakpoint with 1 locations.
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ "main.cpp",
+ self.line,
+ extra_options="-K 1",
+ num_expected_locations=1)
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ "main.cpp",
+ self.line,
+ extra_options="-K 0",
+ num_expected_locations=1)
+
+ # Run the program.
+ self.runCmd("run", RUN_SUCCEEDED)
+
+ # Stopped once.
+ self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
+ substrs=["stop reason = breakpoint 2."])
+
+ # Check the list of breakpoint.
+ self.expect(
+ "breakpoint list -f",
+ "Breakpoint locations shown correctly",
+ substrs=[
+ "1: file = 'main.cpp', line = %d, exact_match = 0, locations = 1" %
+ self.line,
+ "2: file = 'main.cpp', line = %d, exact_match = 0, locations = 1" %
+ self.line])
+
+ # Continue the program, there should be another stop.
+ self.runCmd("process continue")
+
+ # Stopped again.
+ self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
+ substrs=["stop reason = breakpoint 1."])
+
+ # Continue the program, we should exit.
+ self.runCmd("process continue")
+
+ # We should exit.
+ self.expect("process status", "Process exited successfully",
+ patterns=["^Process [0-9]+ exited with status = 0"])
+
+ def breakpoint_options_language_test(self):
+ """Test breakpoint command for language option."""
+ exe = self.getBuildArtifact("a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # This should create a breakpoint with 1 locations.
+ lldbutil.run_break_set_by_symbol(
+ self,
+ 'ns::func',
+ sym_exact=False,
+ extra_options="-L c++",
+ num_expected_locations=1)
+
+ # This should create a breakpoint with 0 locations.
+ lldbutil.run_break_set_by_symbol(
+ self,
+ 'ns::func',
+ sym_exact=False,
+ extra_options="-L c",
+ num_expected_locations=0)
+ self.runCmd("settings set target.language c")
+ lldbutil.run_break_set_by_symbol(
+ self, 'ns::func', sym_exact=False, num_expected_locations=0)
+
+ # Run the program.
+ self.runCmd("run", RUN_SUCCEEDED)
+
+ # Stopped once.
+ self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
+ substrs=["stop reason = breakpoint 1."])
+
+ # Continue the program, we should exit.
+ self.runCmd("process continue")
+
+ # We should exit.
+ self.expect("process status", "Process exited successfully",
+ patterns=["^Process [0-9]+ exited with status = 0"])
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/foo.cpp b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/foo.cpp
new file mode 100644
index 00000000000..e5d0e09803e
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/foo.cpp
@@ -0,0 +1,12 @@
+
+namespace ns {
+ int func(void)
+ {
+ return 0;
+ }
+}
+
+extern "C" int foo(void)
+{
+ return ns::func();
+}
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/main.cpp b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/main.cpp
new file mode 100644
index 00000000000..b2e8f523c84
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/main.cpp
@@ -0,0 +1,4 @@
+extern "C" int foo(void);
+int main (int argc, char **argv) { // Set break point at this line.
+ return foo();
+}
OpenPOWER on IntegriCloud