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