Skip to content

Commit

Permalink
Split TestTemplateIntegerArgs test into two
Browse files Browse the repository at this point in the history
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
  • Loading branch information
labath committed Jul 4, 2016
1 parent 857644c commit 97ef14c
Showing 1 changed file with 17 additions and 14 deletions.
@@ -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")
Expand All @@ -43,7 +38,10 @@ def test_with_run_command(self):
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"')
Expand All @@ -63,6 +61,11 @@ def test_with_run_command(self):
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"')
Expand Down

0 comments on commit 97ef14c

Please sign in to comment.