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

Reply via email to