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/functionalities/watchpoint/watchpoint_set_command | |
| parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) | |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command')
2 files changed, 62 insertions, 38 deletions
| diff --git a/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py b/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py index 735a5678c4f9..1a94276c58e8 100644 --- a/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py +++ b/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py @@ -5,13 +5,14 @@ Test lldb watchpoint that uses 'watchpoint set -w write -s size' to watch a poin  from __future__ import print_function - -import os, time +import os +import time  import lldb  from lldbsuite.test.decorators import *  from lldbsuite.test.lldbtest import *  from lldbsuite.test import lldbutil +  class WatchLocationUsingWatchpointSetTestCase(TestBase):      mydir = TestBase.compute_mydir(__file__) @@ -22,14 +23,24 @@ class WatchLocationUsingWatchpointSetTestCase(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"; -        # Build dictionary to have unique executable names for each test method. - -    @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported -    @expectedFailureAll(oslist=["linux"], archs=['aarch64', 'arm'], bugnumber="llvm.org/pr26031") -    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24446: WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows") +        self.violating_func = "do_bad_thing_with_location" +        # Build dictionary to have unique executable names for each test +        # method. + +    # Watchpoints not supported +    @expectedFailureAndroid(archs=['arm', 'aarch64']) +    @expectedFailureAll( +        oslist=["linux"], +        archs=[ +            'aarch64', +            'arm'], +        bugnumber="llvm.org/pr26031") +    @expectedFailureAll( +        oslist=["windows"], +        bugnumber="llvm.org/pr24446: WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows")      def test_watchlocation_using_watchpoint_set(self):          """Test watching a location with 'watchpoint set expression -w write -s size' option."""          self.build() @@ -39,7 +50,8 @@ class WatchLocationUsingWatchpointSetTestCase(TestBase):          self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)          # Add a breakpoint to set a watchpoint when stopped on the breakpoint. -        lldbutil.run_break_set_by_file_and_line (self, None, self.line, num_expected_locations=1) +        lldbutil.run_break_set_by_file_and_line( +            self, None, self.line, num_expected_locations=1)          # Run the program.          self.runCmd("run", RUN_SUCCEEDED) @@ -47,45 +59,52 @@ class WatchLocationUsingWatchpointSetTestCase(TestBase):          # We should be stopped again due to the breakpoint.          # The stop reason of the thread should be breakpoint.          self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, -            substrs = ['stopped', -                       'stop reason = breakpoint']) +                    substrs=['stopped', +                             'stop reason = breakpoint'])          # Now let's set a write-type watchpoint pointed to by 'g_char_ptr' and          # with offset as 7.          # The main.cpp, by design, misbehaves by not following the agreed upon          # protocol of only accessing the allowable index range of [0, 6]. -        self.expect("watchpoint set expression -w write -s 1 -- g_char_ptr + 7", WATCHPOINT_CREATED, -            substrs = ['Watchpoint created', 'size = 1', 'type = w']) +        self.expect( +            "watchpoint set expression -w write -s 1 -- g_char_ptr + 7", +            WATCHPOINT_CREATED, +            substrs=[ +                'Watchpoint created', +                'size = 1', +                'type = w'])          self.runCmd("expr unsigned val = g_char_ptr[7]; val")          self.expect(self.res.GetOutput().splitlines()[0], exe=False, -            endstr = ' = 0') +                    endstr=' = 0')          # Use the '-v' option to do verbose listing of the watchpoint.          # The hit count should be 0 initially.          self.expect("watchpoint list -v", -            substrs = ['hit_count = 0']) +                    substrs=['hit_count = 0'])          self.runCmd("process continue")          # We should be stopped again due to the watchpoint (write type), but          # only once.  The stop reason of the thread should be watchpoint.          self.expect("thread list", STOPPED_DUE_TO_WATCHPOINT, -            substrs = ['stopped', -                       'stop reason = watchpoint', -                       self.violating_func]) +                    substrs=['stopped', +                             'stop reason = watchpoint', +                             self.violating_func]) -        # Switch to the thread stopped due to watchpoint and issue some commands. +        # Switch to the thread stopped due to watchpoint and issue some +        # commands.          self.switch_to_thread_with_stop_reason(lldb.eStopReasonWatchpoint)          self.runCmd("thread backtrace")          self.runCmd("expr unsigned val = g_char_ptr[7]; val")          self.expect(self.res.GetOutput().splitlines()[0], exe=False, -            endstr = ' = 99') +                    endstr=' = 99')          # Use the '-v' option to do verbose listing of the watchpoint.          # The hit count should now be the same as the number of threads that          # stopped on a watchpoint. -        threads = lldbutil.get_stopped_threads(self.process(), lldb.eStopReasonWatchpoint) +        threads = lldbutil.get_stopped_threads( +            self.process(), lldb.eStopReasonWatchpoint)          self.expect("watchpoint list -v", -            substrs = ['hit_count = %d' % len(threads)]) +                    substrs=['hit_count = %d' % len(threads)])          self.runCmd("thread backtrace all") diff --git a/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py b/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py index 43597ec28f59..7460a1c09476 100644 --- a/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py +++ b/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py @@ -5,13 +5,14 @@ Test error cases for the 'watchpoint set' command to make sure it errors out whe  from __future__ import print_function - -import os, time +import os +import time  import lldb  from lldbsuite.test.decorators import *  from lldbsuite.test.lldbtest import *  import lldbsuite.test.lldbutil as lldbutil +  class WatchpointSetErrorTestCase(TestBase):      mydir = TestBase.compute_mydir(__file__) @@ -22,10 +23,11 @@ class WatchpointSetErrorTestCase(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.') -        # Build dictionary to have unique executable names for each test method. +        self.line = line_number( +            self.source, '// Set break point at this line.') +        # Build dictionary to have unique executable names for each test +        # method. -    @expectedFailureAll(oslist=["windows"])      def test_error_cases_with_watchpoint_set(self):          """Test error cases with the 'watchpoint set' command."""          self.build() @@ -35,7 +37,8 @@ class WatchpointSetErrorTestCase(TestBase):          self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)          # Add a breakpoint to set a watchpoint when stopped on the breakpoint. -        lldbutil.run_break_set_by_file_and_line (self, None, self.line, num_expected_locations=1) +        lldbutil.run_break_set_by_file_and_line( +            self, None, self.line, num_expected_locations=1)          # Run the program.          self.runCmd("run", RUN_SUCCEEDED) @@ -43,27 +46,29 @@ class WatchpointSetErrorTestCase(TestBase):          # We should be stopped again due to the breakpoint.          # The stop reason of the thread should be breakpoint.          self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, -            substrs = ['stopped', -                       'stop reason = breakpoint']) +                    substrs=['stopped', +                             'stop reason = breakpoint'])          # Try some error conditions:          # 'watchpoint set' is now a multiword command.          self.expect("watchpoint set", -            substrs = ['The following subcommands are supported:', -                       'expression', -                       'variable']) +                    substrs=['The following subcommands are supported:', +                             'expression', +                             'variable'])          self.runCmd("watchpoint set variable -w read_write", check=False)          # 'watchpoint set expression' with '-w' or '-s' specified now needs          # an option terminator and a raw expression after that.          self.expect("watchpoint set expression -w write --", error=True, -            startstr = 'error: ') +                    startstr='error: ')          # It's an error if the expression did not evaluate to an address. -        self.expect("watchpoint set expression MyAggregateDataType", error=True, -            startstr = 'error: expression did not evaluate to an address') +        self.expect( +            "watchpoint set expression MyAggregateDataType", +            error=True, +            startstr='error: expression did not evaluate to an address')          # Wrong size parameter is an error.          self.expect("watchpoint set variable -s -128", error=True, -            substrs = ['invalid enumeration value']) +                    substrs=['invalid enumeration value']) | 
