forked from OSchip/llvm-project
XFAIL all of TestInferiorAssert.py tests on Windows.
Getting this working correctly is a significant amount of work. Assertions on Windows show up as error code 0xC0000409, which is STATUS_STACK_BUFFER_OVERRUN. In order to accurately determine that this is not just any stack buffer overrun, but one triggered by a call to abort, we would need to analyze the call stack. This in turn requires better symbol support for Windows executables, and work on LLDB to make stack frames better on Windows. For now, these are XFAIL'ed and tracked in http://llvm.org/pr21793. llvm-svn: 223816
This commit is contained in:
parent
b580d7d8c8
commit
80c2c60f36
|
@ -18,6 +18,7 @@ class AssertingInferiorTestCase(TestBase):
|
|||
|
||||
@expectedFailurei386("llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly")
|
||||
@expectedFailureDarwin("rdar://15367233")
|
||||
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
|
||||
def test_inferior_asserting_dwarf(self):
|
||||
"""Test that lldb reliably catches the inferior asserting (command)."""
|
||||
self.buildDwarf()
|
||||
|
@ -29,6 +30,7 @@ class AssertingInferiorTestCase(TestBase):
|
|||
self.buildDsym()
|
||||
self.inferior_asserting_registers()
|
||||
|
||||
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
|
||||
def test_inferior_asserting_register_dwarf(self):
|
||||
"""Test that lldb reliably reads registers from the inferior after asserting (command)."""
|
||||
self.buildDwarf()
|
||||
|
@ -37,12 +39,14 @@ class AssertingInferiorTestCase(TestBase):
|
|||
@expectedFailurei386("llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly")
|
||||
@expectedFailureFreeBSD('llvm.org/pr18533 - PC in __assert frame is outside of function')
|
||||
@expectedFailureLinux("PC in __GI___assert_fail frame is just after the function (this is a no-return so there is no epilogue afterwards)")
|
||||
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
|
||||
def test_inferior_asserting_disassemble(self):
|
||||
"""Test that lldb reliably disassembles frames after asserting (command)."""
|
||||
self.buildDefault()
|
||||
self.inferior_asserting_disassemble()
|
||||
|
||||
@python_api_test
|
||||
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
|
||||
def test_inferior_asserting_python(self):
|
||||
"""Test that lldb reliably catches the inferior asserting (Python API)."""
|
||||
self.buildDefault()
|
||||
|
@ -57,6 +61,7 @@ class AssertingInferiorTestCase(TestBase):
|
|||
|
||||
@expectedFailurei386('llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly')
|
||||
@unittest2.expectedFailure("rdar://15367233")
|
||||
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
|
||||
def test_inferior_asserting_expr(self):
|
||||
"""Test that the lldb expression interpreter can read from the inferior after asserting (command)."""
|
||||
self.buildDwarf()
|
||||
|
@ -71,6 +76,7 @@ class AssertingInferiorTestCase(TestBase):
|
|||
|
||||
@expectedFailurei386("llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly")
|
||||
@expectedFailureDarwin("rdar://15367233")
|
||||
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
|
||||
def test_inferior_asserting_step(self):
|
||||
"""Test that lldb functions correctly after stepping through a call to assert()."""
|
||||
self.buildDwarf()
|
||||
|
|
|
@ -516,6 +516,9 @@ def expectedFailureFreeBSD(bugnumber=None, compilers=None):
|
|||
def expectedFailureLinux(bugnumber=None, compilers=None):
|
||||
if bugnumber: return expectedFailureOS('linux', bugnumber, compilers)
|
||||
|
||||
def expectedFailureWindows(bugnumber=None, compilers=None):
|
||||
if bugnumber: return expectedFailureOS('win32', bugnumber, compilers)
|
||||
|
||||
def skipIfRemote(func):
|
||||
"""Decorate the item to skip tests if testing remotely."""
|
||||
if isinstance(func, type) and issubclass(func, unittest2.TestCase):
|
||||
|
|
Loading…
Reference in New Issue