182ed1860SRaphael Isemannimport lldb 282ed1860SRaphael Isemannfrom lldbsuite.test.decorators import * 382ed1860SRaphael Isemannfrom lldbsuite.test.lldbtest import * 482ed1860SRaphael Isemannfrom lldbsuite.test import lldbutil 582ed1860SRaphael Isemann 682ed1860SRaphael Isemann 7*2238dcc3SJonas Devlieghereclass TestCase(TestBase): 882ed1860SRaphael Isemann @no_debug_info_test 982ed1860SRaphael Isemann def test(self): 1082ed1860SRaphael Isemann self.build() 1182ed1860SRaphael Isemann self.dbg.CreateTarget(self.getBuildArtifact("a.out")) 1282ed1860SRaphael Isemann 1382ed1860SRaphael Isemann value = self.expect_expr("temp1", result_type="C<int, 2>") 1482ed1860SRaphael Isemann template_type = value.GetType() 1582ed1860SRaphael Isemann self.assertEqual(template_type.GetNumberOfTemplateArguments(), 2) 1682ed1860SRaphael Isemann 1782ed1860SRaphael Isemann # Check a type argument. 18*2238dcc3SJonas Devlieghere self.assertEqual( 19*2238dcc3SJonas Devlieghere template_type.GetTemplateArgumentKind(0), lldb.eTemplateArgumentKindType 20*2238dcc3SJonas Devlieghere ) 2182ed1860SRaphael Isemann self.assertEqual(template_type.GetTemplateArgumentType(0).GetName(), "int") 2282ed1860SRaphael Isemann 2382ed1860SRaphael Isemann # Check a integral argument. 24*2238dcc3SJonas Devlieghere self.assertEqual( 25*2238dcc3SJonas Devlieghere template_type.GetTemplateArgumentKind(1), lldb.eTemplateArgumentKindIntegral 26*2238dcc3SJonas Devlieghere ) 27*2238dcc3SJonas Devlieghere self.assertEqual( 28*2238dcc3SJonas Devlieghere template_type.GetTemplateArgumentType(1).GetName(), "unsigned int" 29*2238dcc3SJonas Devlieghere ) 3082ed1860SRaphael Isemann # FIXME: There is no way to get the actual value of the parameter. 3182ed1860SRaphael Isemann 3282ed1860SRaphael Isemann # Try to get an invalid template argument. 33*2238dcc3SJonas Devlieghere self.assertEqual( 34*2238dcc3SJonas Devlieghere template_type.GetTemplateArgumentKind(2), lldb.eTemplateArgumentKindNull 35*2238dcc3SJonas Devlieghere ) 3682ed1860SRaphael Isemann self.assertEqual(template_type.GetTemplateArgumentType(2).GetName(), "") 37