From d875aae9c041f856cbfc7067f29cffd7aaa5a67b Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Wed, 15 Feb 2017 12:27:16 +0000 Subject: Fix TestNameLookup for GCC Summary: GCC emits also symbols for the __PRETTY_FUNCTION__ virtual variable, which we accidentaly pick up when looking for functions for with "unique_function_name" in the name. This makes the target.FindFunctions call fail, as that symbol is not a function. I also strenghten the test a bit to make sure we actually find all the functions we are interested in. I've put a check that we find at least 6 functions, but maybe this should be *exactly* 6 ? Reviewers: clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D29932 llvm-svn: 295170 --- .../Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lldb/packages/Python/lldbsuite/test') diff --git a/lldb/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py b/lldb/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py index 522af9ff951..b7a683f25f6 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py @@ -20,7 +20,6 @@ class TestNameLookup(TestBase): mydir = TestBase.compute_mydir(__file__) @add_test_categories(['pyapi']) - @expectedFailureAll(compiler="gcc") def test_target(self): """Exercise SBTarget.FindFunctions() with various name masks. @@ -44,7 +43,7 @@ class TestNameLookup(TestBase): for i in range(num_symbols): symbol = exe_module.GetSymbolAtIndex(i); name = symbol.GetName() - if name and 'unique_function_name' in name: + if name and 'unique_function_name' in name and '__PRETTY_FUNCTION__' not in name: mangled = symbol.GetMangledName() if mangled: mangled_to_symbol[mangled] = symbol @@ -56,6 +55,7 @@ class TestNameLookup(TestBase): # Make sure each mangled name turns up exactly one match when looking up # functions by full name and using the mangled name as the name in the # lookup + self.assertGreaterEqual(len(mangled_to_symbol), 6) for mangled in mangled_to_symbol.keys(): symbol_contexts = target.FindFunctions(mangled, lldb.eFunctionNameTypeFull) self.assertTrue(symbol_contexts.GetSize() == 1) -- cgit v1.2.3