blob: 3a51e08d75e08cca0233ab523bc4988c302fdb86 [file] [log] [blame]
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestCaseClassTemplateNonTypeParameterPack(TestBase):
mydir = TestBase.compute_mydir(__file__)
@expectedFailureAll(oslist=["windows"]) # Fails to read memory from target.
@no_debug_info_test
def test(self):
self.build()
self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
self.expect_expr("emptyNonTypePack", result_type="NonTypePack<>",
result_children=[ValueCheck(name="a", type="int")])
self.expect_expr("oneElemNonTypePack", result_type="NonTypePack<1>",
result_children=[ValueCheck(name="a", type="int")])
self.expect_expr("twoElemNonTypePack", result_type="NonTypePack<1, 2>",
result_children=[ValueCheck(name="a", type="int")])
self.expect_expr("emptyAnonNonTypePack", result_type="AnonNonTypePack<>",
result_children=[ValueCheck(name="b", type="int")])
self.expect_expr("oneElemAnonNonTypePack", result_type="AnonNonTypePack<1>",
result_children=[ValueCheck(name="b", type="int")])
self.expect_expr("twoElemAnonNonTypePack", result_type="AnonNonTypePack<1, 2>",
result_children=[ValueCheck(name="b", type="int")])
self.expect_expr("emptyAnonNonTypePackAfterTypeParam", result_type="AnonNonTypePackAfterTypeParam<int>",
result_children=[ValueCheck(name="c", type="int")])
self.expect_expr("oneElemAnonNonTypePackAfterTypeParam", result_type="AnonNonTypePackAfterTypeParam<int, 1>",
result_children=[ValueCheck(name="c", type="int")])
self.expect_expr("emptyAnonNonTypePackAfterAnonTypeParam", result_type="AnonNonTypePackAfterAnonTypeParam<int>",
result_children=[ValueCheck(name="d", type="float")])
self.expect_expr("oneElemAnonNonTypePackAfterAnonTypeParam", result_type="AnonNonTypePackAfterAnonTypeParam<int, 1>",
result_children=[ValueCheck(name="d", type="float")])
self.expect_expr("emptyNonTypePackAfterAnonTypeParam", result_type="NonTypePackAfterAnonTypeParam<int>",
result_children=[ValueCheck(name="e", type="int")])
self.expect_expr("oneElemNonTypePackAfterAnonTypeParam", result_type="NonTypePackAfterAnonTypeParam<int, 1>",
result_children=[ValueCheck(name="e", type="int")])
self.expect_expr("emptyNonTypePackAfterTypeParam", result_type="NonTypePackAfterTypeParam<int>",
result_children=[ValueCheck(name="f", type="int")])
self.expect_expr("oneElemNonTypePackAfterTypeParam", result_type="NonTypePackAfterTypeParam<int, 1>",
result_children=[ValueCheck(name="f", type="int")])
self.expect_expr("emptyAnonNonTypePackAfterNonTypeParam", result_type="AnonNonTypePackAfterNonTypeParam<1>",
result_children=[ValueCheck(name="g", type="int")])
self.expect_expr("oneElemAnonNonTypePackAfterNonTypeParam", result_type="AnonNonTypePackAfterNonTypeParam<1, 2>",
result_children=[ValueCheck(name="g", type="int")])
self.expect_expr("emptyAnonNonTypePackAfterAnonNonTypeParam", result_type="AnonNonTypePackAfterAnonNonTypeParam<1>",
result_children=[ValueCheck(name="h", type="float")])
self.expect_expr("oneElemAnonNonTypePackAfterAnonNonTypeParam", result_type="AnonNonTypePackAfterAnonNonTypeParam<1, 2>",
result_children=[ValueCheck(name="h", type="float")])
self.expect_expr("emptyNonTypePackAfterAnonNonTypeParam", result_type="NonTypePackAfterAnonNonTypeParam<1>",
result_children=[ValueCheck(name="i", type="int")])
self.expect_expr("oneElemNonTypePackAfterAnonNonTypeParam", result_type="NonTypePackAfterAnonNonTypeParam<1, 2>",
result_children=[ValueCheck(name="i", type="int")])
self.expect_expr("emptyNonTypePackAfterNonTypeParam", result_type="NonTypePackAfterNonTypeParam<1>",
result_children=[ValueCheck(name="j", type="int")])
self.expect_expr("oneElemNonTypePackAfterNonTypeParam", result_type="NonTypePackAfterNonTypeParam<1, 2>",
result_children=[ValueCheck(name="j", type="int")])