1import lldb 2from lldbsuite.test.decorators import * 3from lldbsuite.test.lldbtest import * 4from lldbsuite.test import lldbutil 5 6class TestCase(TestBase): 7 8 mydir = TestBase.compute_mydir(__file__) 9 10 @no_debug_info_test 11 def test(self): 12 self.build() 13 self.dbg.CreateTarget(self.getBuildArtifact("a.out")) 14 15 value = self.expect_expr("temp1", result_type="C<int, 2>") 16 template_type = value.GetType() 17 self.assertEqual(template_type.GetNumberOfTemplateArguments(), 2) 18 19 # Check a type argument. 20 self.assertEqual(template_type.GetTemplateArgumentKind(0), lldb.eTemplateArgumentKindType) 21 self.assertEqual(template_type.GetTemplateArgumentType(0).GetName(), "int") 22 23 # Check a integral argument. 24 self.assertEqual(template_type.GetTemplateArgumentKind(1), lldb.eTemplateArgumentKindIntegral) 25 self.assertEqual(template_type.GetTemplateArgumentType(1).GetName(), "unsigned int") 26 #FIXME: There is no way to get the actual value of the parameter. 27 28 # Try to get an invalid template argument. 29 self.assertEqual(template_type.GetTemplateArgumentKind(2), lldb.eTemplateArgumentKindNull) 30 self.assertEqual(template_type.GetTemplateArgumentType(2).GetName(), "") 31