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/lang/cpp/virtual/TestVirtual.py | |
parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py')
-rw-r--r-- | packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py b/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py index bee148773f03b..7356484e69a42 100644 --- a/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py +++ b/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py @@ -4,15 +4,19 @@ Test C++ virtual function and virtual inheritance. 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 + def Msg(expr, val): - return "'expression %s' matches the output (from compiled code): %s" % (expr, val) + return "'expression %s' matches the output (from compiled code): %s" % ( + expr, val) + class CppVirtualMadness(TestBase): @@ -29,8 +33,9 @@ class CppVirtualMadness(TestBase): self.source = 'main.cpp' self.line = line_number(self.source, '// Set first breakpoint here.') - @expectedFailureAll(compiler="icc", bugnumber="llvm.org/pr16808 lldb does not call the correct virtual function with icc.") - @expectedFailureAll(oslist=['windows']) + @expectedFailureAll( + compiler="icc", + bugnumber="llvm.org/pr16808 lldb does not call the correct virtual function with icc.") def test_virtual_madness(self): """Test that expression works correctly with virtual inheritance as well as virtual function.""" self.build() @@ -38,7 +43,7 @@ class CppVirtualMadness(TestBase): # Bring the program to the point where we can issue a series of # 'expression' command to compare against the golden output. self.dbg.SetAsync(False) - + # Create a target by the debugger. target = self.dbg.CreateTarget("a.out") self.assertTrue(target, VALID_TARGET) @@ -48,18 +53,25 @@ class CppVirtualMadness(TestBase): self.assertTrue(breakpoint, VALID_BREAKPOINT) # Now launch the process, and do not stop at entry point. - process = target.LaunchSimple (None, None, self.get_process_working_directory()) + process = target.LaunchSimple( + None, None, self.get_process_working_directory()) self.assertTrue(process, PROCESS_IS_VALID) - + self.assertTrue(process.GetState() == lldb.eStateStopped) - thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint) - self.assertTrue(thread.IsValid(), "There should be a thread stopped due to breakpoint condition") + thread = lldbutil.get_stopped_thread( + process, lldb.eStopReasonBreakpoint) + self.assertTrue( + thread.IsValid(), + "There should be a thread stopped due to breakpoint condition") # First, capture the golden output from the program itself. golden = thread.GetFrameAtIndex(0).FindVariable("golden") - self.assertTrue(golden.IsValid(), "Encountered an error reading the process's golden variable") + self.assertTrue( + golden.IsValid(), + "Encountered an error reading the process's golden variable") error = lldb.SBError() - golden_str = process.ReadCStringFromMemory(golden.AddressOf().GetValueAsUnsigned(), 4096, error); + golden_str = process.ReadCStringFromMemory( + golden.AddressOf().GetValueAsUnsigned(), 4096, error) self.assertTrue(error.Success()) self.assertTrue("c_as_C" in golden_str) @@ -84,7 +96,7 @@ class CppVirtualMadness(TestBase): self.runCmd("expression %s" % my_expr) output = self.res.GetOutput() - + # The expression output must match the oracle. self.expect(output, Msg(my_expr, val), exe=False, - substrs = [val]) + substrs=[val]) |