diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 | 
| commit | 14f1b3e8826ce43b978db93a62d1166055db5394 (patch) | |
| tree | 0a00ad8d3498783fe0193f3b656bca17c4c8697d /packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py | |
| parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) | |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py')
| -rw-r--r-- | packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py | 79 | 
1 files changed, 51 insertions, 28 deletions
| diff --git a/packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py b/packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py index 468f3131f337..6078901c6697 100644 --- a/packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py +++ b/packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py @@ -5,14 +5,15 @@ Use lldb Python SBtarget.WatchAddress() API to create a watchpoint for write of  from __future__ import print_function - -import os, time +import os +import time  import re  import lldb  from lldbsuite.test.decorators import *  from lldbsuite.test.lldbtest import *  from lldbsuite.test import lldbutil +  class TargetWatchAddressAPITestCase(TestBase):      mydir = TestBase.compute_mydir(__file__) @@ -23,13 +24,17 @@ class TargetWatchAddressAPITestCase(TestBase):          # Our simple source filename.          self.source = 'main.cpp'          # Find the line number to break inside main(). -        self.line = line_number(self.source, '// Set break point at this line.') +        self.line = line_number( +            self.source, '// Set break point at this line.')          # This is for verifying that watch location works. -        self.violating_func = "do_bad_thing_with_location"; +        self.violating_func = "do_bad_thing_with_location"      @add_test_categories(['pyapi']) -    @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported -    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24446: WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows") +    # Watchpoints not supported +    @expectedFailureAndroid(archs=['arm', 'aarch64']) +    @expectedFailureAll( +        oslist=["windows"], +        bugnumber="llvm.org/pr24446: WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows")      def test_watch_address(self):          """Exercise SBTarget.WatchAddress() API to set a watchpoint."""          self.build() @@ -46,23 +51,27 @@ class TargetWatchAddressAPITestCase(TestBase):                          VALID_BREAKPOINT)          # Now launch the process, and do not stop at the entry point. -        process = target.LaunchSimple (None, None, self.get_process_working_directory()) +        process = target.LaunchSimple( +            None, None, self.get_process_working_directory())          # We should be stopped due to the breakpoint.  Get frame #0.          process = target.GetProcess()          self.assertTrue(process.GetState() == lldb.eStateStopped,                          PROCESS_STOPPED) -        thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint) +        thread = lldbutil.get_stopped_thread( +            process, lldb.eStopReasonBreakpoint)          frame0 = thread.GetFrameAtIndex(0)          value = frame0.FindValue('g_char_ptr',                                   lldb.eValueTypeVariableGlobal) -        pointee = value.CreateValueFromAddress("pointee", -                                               value.GetValueAsUnsigned(0), -                                               value.GetType().GetPointeeType()) +        pointee = value.CreateValueFromAddress( +            "pointee", +            value.GetValueAsUnsigned(0), +            value.GetType().GetPointeeType())          # Watch for write to *g_char_ptr. -        error = lldb.SBError(); -        watchpoint = target.WatchAddress(value.GetValueAsUnsigned(), 1, False, True, error) +        error = lldb.SBError() +        watchpoint = target.WatchAddress( +            value.GetValueAsUnsigned(), 1, False, True, error)          self.assertTrue(value and watchpoint,                          "Successfully found the pointer and set a watchpoint")          self.DebugSBValue(value) @@ -74,26 +83,36 @@ class TargetWatchAddressAPITestCase(TestBase):          print(watchpoint) -        # Continue.  Expect the program to stop due to the variable being written to. +        # Continue.  Expect the program to stop due to the variable being +        # written to.          process.Continue()          if (self.TraceOn()):              lldbutil.print_stacktraces(process) -        thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonWatchpoint) +        thread = lldbutil.get_stopped_thread( +            process, lldb.eStopReasonWatchpoint)          self.assertTrue(thread, "The thread stopped due to watchpoint")          self.DebugSBValue(value)          self.DebugSBValue(pointee) -        self.expect(lldbutil.print_stacktrace(thread, string_buffer=True), exe=False, -            substrs = [self.violating_func]) +        self.expect( +            lldbutil.print_stacktrace( +                thread, +                string_buffer=True), +            exe=False, +            substrs=[ +                self.violating_func])          # This finishes our test.      @add_test_categories(['pyapi']) -    @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported -    @skipIf(archs=['mips', 'mipsel', 'mips64', 'mips64el']) # No size constraint on MIPS for watches -    @skipIf(archs=['s390x']) # Likewise on SystemZ +    # Watchpoints not supported +    @expectedFailureAndroid(archs=['arm', 'aarch64']) +    # No size constraint on MIPS for watches +    @skipIf(archs=['mips', 'mipsel', 'mips64', 'mips64el']) +    @skipIf(archs=['s390x'])  # Likewise on SystemZ +    @expectedFailureAll(oslist=["windows"])      def test_watch_address_with_invalid_watch_size(self):          """Exercise SBTarget.WatchAddress() API but pass an invalid watch_size."""          self.build() @@ -110,23 +129,27 @@ class TargetWatchAddressAPITestCase(TestBase):                          VALID_BREAKPOINT)          # Now launch the process, and do not stop at the entry point. -        process = target.LaunchSimple (None, None, self.get_process_working_directory()) +        process = target.LaunchSimple( +            None, None, self.get_process_working_directory())          # We should be stopped due to the breakpoint.  Get frame #0.          process = target.GetProcess()          self.assertTrue(process.GetState() == lldb.eStateStopped,                          PROCESS_STOPPED) -        thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint) +        thread = lldbutil.get_stopped_thread( +            process, lldb.eStopReasonBreakpoint)          frame0 = thread.GetFrameAtIndex(0)          value = frame0.FindValue('g_char_ptr',                                   lldb.eValueTypeVariableGlobal) -        pointee = value.CreateValueFromAddress("pointee", -                                               value.GetValueAsUnsigned(0), -                                               value.GetType().GetPointeeType()) +        pointee = value.CreateValueFromAddress( +            "pointee", +            value.GetValueAsUnsigned(0), +            value.GetType().GetPointeeType())          # Watch for write to *g_char_ptr. -        error = lldb.SBError(); -        watchpoint = target.WatchAddress(value.GetValueAsUnsigned(), 365, False, True, error) +        error = lldb.SBError() +        watchpoint = target.WatchAddress( +            value.GetValueAsUnsigned(), 365, False, True, error)          self.assertFalse(watchpoint)          self.expect(error.GetCString(), exe=False, -            substrs = ['watch size of %d is not supported' % 365]) +                    substrs=['watch size of %d is not supported' % 365]) | 
