diff options
author | Raphael Isemann <teemperor@gmail.com> | 2018-09-12 10:04:25 +0000 |
---|---|---|
committer | Raphael Isemann <teemperor@gmail.com> | 2018-09-12 10:04:25 +0000 |
commit | 10fb67728593478671d75403c6bf8683db60c9d3 (patch) | |
tree | 7179933aa895b81850efb7f56475a4bf3a676ef2 /lldb/packages/Python/lldbsuite/test | |
parent | 5265d56c72471fc6b3b24f93df44b0c98c2489cc (diff) | |
download | bcm5719-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')
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 +} |