forked from OSchip/llvm-project
Split TestTemplateIntegerArgs test into two
Summary: One of the tests there does not work with gcc, so I'm spinning that off into a separate test, so that we can XFAIL it with more granularity. I am also renaming the test to reflect the fact that it no longer tests only integer arguments. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D21923 llvm-svn: 274505
This commit is contained in:
parent
857644cef8
commit
97ef14c64b
|
@ -1,26 +1,21 @@
|
|||
"""
|
||||
Tests that C++ templates work as expected
|
||||
Test that C++ template classes that have integer parameters work correctly.
|
||||
|
||||
We must reconstruct the types correctly so the template types are correct
|
||||
and display correctly, and also make sure the expression parser works and
|
||||
is able the find all needed functions when evaluating expressions
|
||||
"""
|
||||
import lldb
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test import lldbutil
|
||||
|
||||
class TemplateIntegerArgsTestCase(TestBase):
|
||||
class TemplateArgsTestCase(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
|
||||
@expectedFailureAll(bugnumber="llvm.org/pr28354", compiler="gcc", oslist=["linux"])
|
||||
def test_with_run_command(self):
|
||||
"""Test that C++ template classes that have integer parameters work correctly.
|
||||
|
||||
We must reconstruct the types correctly so the template types are correct
|
||||
and display correctly, and also make sure the expression parser works and
|
||||
is able the find all needed functions when evaluating expressions"""
|
||||
|
||||
def prepareProcess(self):
|
||||
self.build()
|
||||
|
||||
# Set debugger into synchronous mode
|
||||
self.dbg.SetAsync(False)
|
||||
|
||||
# Create a target by the debugger.
|
||||
exe = os.path.join(os.getcwd(), "a.out")
|
||||
|
@ -43,7 +38,10 @@ class TemplateIntegerArgsTestCase(TestBase):
|
|||
thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint)
|
||||
|
||||
# Get frame for current thread
|
||||
frame = thread.GetSelectedFrame()
|
||||
return thread.GetSelectedFrame()
|
||||
|
||||
def test_integer_args(self):
|
||||
frame = self.prepareProcess()
|
||||
|
||||
testpos = frame.FindVariable('testpos')
|
||||
self.assertTrue(testpos.IsValid(), 'make sure we find a local variabble named "testpos"')
|
||||
|
@ -63,6 +61,11 @@ class TemplateIntegerArgsTestCase(TestBase):
|
|||
self.assertTrue(expr_result.GetValue() == "-1", "testneg.getArg() == -1")
|
||||
self.assertTrue(expr_result.GetType().GetName() == "int", 'expr_result.GetType().GetName() == "int"')
|
||||
|
||||
# Gcc does not generate the necessary DWARF attribute for enum template parameters.
|
||||
@expectedFailureAll(bugnumber="llvm.org/pr28354", compiler="gcc")
|
||||
def test_enum_args(self):
|
||||
frame = self.prepareProcess()
|
||||
|
||||
# Make sure "member" can be displayed and also used in an expression correctly
|
||||
member = frame.FindVariable('member')
|
||||
self.assertTrue(member.IsValid(), 'make sure we find a local variabble named "member"')
|
Loading…
Reference in New Issue