xref: /llvm-project-15.0.7/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py (revision fa5fa63f)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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

served by {OpenGrok

Last Index Update: Tue Oct 21 18:42:31 GMT 2025