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