Author: teemperor Date: Wed Sep 12 03:04:25 2018 New Revision: 342042 URL: http://llvm.org/viewvc/llvm-project?rev=342042&view=rev Log: 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 Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/ lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile?rev=342042&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/Makefile Wed Sep 12 03:04:25 2018 @@ -0,0 +1,8 @@ +LEVEL = ../../make + +CXX_SOURCES := main.cpp + +include $(LEVEL)/Makefile.rules + +clean:: + rm -rf $(wildcard *.o *.d *.dSYM) Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py?rev=342042&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/TestMemoryRegion.py Wed Sep 12 03:04:25 2018 @@ -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") Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp?rev=342042&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory-region/main.cpp Wed Sep 12 03:04:25 2018 @@ -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 +} _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits