summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2018-09-12 10:04:25 +0000
committerRaphael Isemann <teemperor@gmail.com>2018-09-12 10:04:25 +0000
commit10fb67728593478671d75403c6bf8683db60c9d3 (patch)
tree7179933aa895b81850efb7f56475a4bf3a676ef2 /lldb/packages/Python/lldbsuite/test
parent5265d56c72471fc6b3b24f93df44b0c98c2489cc (diff)
downloadbcm5719-llvm-10fb67728593478671d75403c6bf8683db60c9d3.tar.gz
bcm5719-llvm-10fb67728593478671d75403c6bf8683db60c9d3.zip
Add a basic test for 'memory region'
Summary: The 'memory region' command is at the moment not tested at all by our test suite. This patch just adds a basic test that at least provides some basic testing. Reviewers: #lldb, davide Reviewed By: #lldb, davide Subscribers: vsk, davide, lldb-commits Differential Revision: https://reviews.llvm.org/D51930 llvm-svn: 342042
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile8
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py59
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp6
3 files changed, 73 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile b/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile
new file mode 100644
index 00000000000..9d4f3b7f141
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile
@@ -0,0 +1,8 @@
+LEVEL = ../../make
+
+CXX_SOURCES := main.cpp
+
+include $(LEVEL)/Makefile.rules
+
+clean::
+ rm -rf $(wildcard *.o *.d *.dSYM)
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py b/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py
new file mode 100644
index 00000000000..4d10e68672e
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py
@@ -0,0 +1,59 @@
+"""
+Test the 'memory region' command.
+"""
+
+from __future__ import print_function
+
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class MemoryCommandRegion(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ NO_DEBUG_INFO_TESTCASE = True
+
+ def setUp(self):
+ TestBase.setUp(self)
+ # Find the line number to break for main.c.
+ self.line = line_number(
+ 'main.cpp',
+ '// Run here before printing memory regions')
+
+ def test(self):
+ self.build()
+
+ # Set breakpoint in main and run
+ self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True)
+
+ self.runCmd("run", RUN_SUCCEEDED)
+
+ interp = self.dbg.GetCommandInterpreter()
+ result = lldb.SBCommandReturnObject()
+
+ # Test that the first 'memory region' command prints the usage.
+ interp.HandleCommand("memory region", result)
+ self.assertFalse(result.Succeeded())
+ self.assertRegexpMatches(result.GetError(), "Usage: memory region ADDR")
+
+ # Now let's print the memory region starting at 0 which should always work.
+ interp.HandleCommand("memory region 0x0", result)
+ self.assertTrue(result.Succeeded())
+ self.assertRegexpMatches(result.GetOutput(), "\\[0x0+-")
+
+ # Keep printing memory regions until we printed all of them.
+ while True:
+ interp.HandleCommand("memory region", result)
+ if not result.Succeeded():
+ break
+
+ # Now that we reached the end, 'memory region' should again print the usage.
+ interp.HandleCommand("memory region", result)
+ self.assertFalse(result.Succeeded())
+ self.assertRegexpMatches(result.GetError(), "Usage: memory region ADDR")
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp b/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp
new file mode 100644
index 00000000000..116c10a6c3e
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp
@@ -0,0 +1,6 @@
+#include <iostream>
+
+int main (int argc, char const **argv) {
+ std::cout << "Program with sections" << std::endl;
+ return 0; // Run here before printing memory regions
+}
OpenPOWER on IntegriCloud