diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/template-function/TestTemplateFunctions.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lang/cpp/template-function/TestTemplateFunctions.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/cpp/template-function/TestTemplateFunctions.py b/lldb/packages/Python/lldbsuite/test/lang/cpp/template-function/TestTemplateFunctions.py new file mode 100644 index 00000000000..14ebe3b316f --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/cpp/template-function/TestTemplateFunctions.py @@ -0,0 +1,30 @@ +""" +Test that we can call C++ template fucntions. +""" +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +class TemplateFunctionsTestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def do_test_template_function(self, add_cast): + self.build() + (_, _, thread, _) = lldbutil.run_to_name_breakpoint(self, "main") + frame = thread.GetSelectedFrame() + expr = "foo(42)" + if add_cast: + expr = "(int)" + expr + expr_result = frame.EvaluateExpression(expr) + self.assertTrue(expr_result.IsValid()) + self.assertEqual(expr_result.GetValue(), "42") + + def test_template_function_with_cast(self): + self.do_test_template_function(True) + + @expectedFailureAll(debug_info=["dwarf", "gmodules"]) + def test_template_function_without_cast(self): + self.do_test_template_function(False) |