[Lldb-commits] [lldb] 82ed186 - [lldb] Explicitly test the template argument SB API
Raphael Isemann via lldb-commits
lldb-commits at lists.llvm.org
Thu Oct 15 02:18:10 PDT 2020
Author: Raphael Isemann
Date: 2020-10-15T11:17:43+02:00
New Revision: 82ed18601dbc816e1f64407a926602f95bbeda32
URL: https://github.com/llvm/llvm-project/commit/82ed18601dbc816e1f64407a926602f95bbeda32
DIFF: https://github.com/llvm/llvm-project/commit/82ed18601dbc816e1f64407a926602f95bbeda32.diff
LOG: [lldb] Explicitly test the template argument SB API
Added:
lldb/test/API/lang/cpp/template-arguments/Makefile
lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
lldb/test/API/lang/cpp/template-arguments/main.cpp
Modified:
Removed:
################################################################################
diff --git a/lldb/test/API/lang/cpp/template-arguments/Makefile b/lldb/test/API/lang/cpp/template-arguments/Makefile
new file mode 100644
index 000000000000..99998b20bcb0
--- /dev/null
+++ b/lldb/test/API/lang/cpp/template-arguments/Makefile
@@ -0,0 +1,3 @@
+CXX_SOURCES := main.cpp
+
+include Makefile.rules
diff --git a/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py b/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
new file mode 100644
index 000000000000..3ba86bc44e25
--- /dev/null
+++ b/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
@@ -0,0 +1,30 @@
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+class TestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @no_debug_info_test
+ def test(self):
+ self.build()
+ self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
+
+ value = self.expect_expr("temp1", result_type="C<int, 2>")
+ template_type = value.GetType()
+ self.assertEqual(template_type.GetNumberOfTemplateArguments(), 2)
+
+ # Check a type argument.
+ self.assertEqual(template_type.GetTemplateArgumentKind(0), lldb.eTemplateArgumentKindType)
+ self.assertEqual(template_type.GetTemplateArgumentType(0).GetName(), "int")
+
+ # Check a integral argument.
+ self.assertEqual(template_type.GetTemplateArgumentKind(1), lldb.eTemplateArgumentKindIntegral)
+ self.assertEqual(template_type.GetTemplateArgumentType(1).GetName(), "unsigned int")
+ #FIXME: There is no way to get the actual value of the parameter.
+
+ # Try to get an invalid template argument.
+ self.assertEqual(template_type.GetTemplateArgumentKind(2), lldb.eTemplateArgumentKindNull)
+ self.assertEqual(template_type.GetTemplateArgumentType(2).GetName(), "")
diff --git a/lldb/test/API/lang/cpp/template-arguments/main.cpp b/lldb/test/API/lang/cpp/template-arguments/main.cpp
new file mode 100644
index 000000000000..728bd400c258
--- /dev/null
+++ b/lldb/test/API/lang/cpp/template-arguments/main.cpp
@@ -0,0 +1,8 @@
+template<typename T, unsigned value>
+struct C {
+ T member = value;
+};
+
+C<int, 2> temp1;
+
+int main() {}
More information about the lldb-commits
mailing list