Author: labath Date: Wed Feb 15 06:27:16 2017 New Revision: 295170 URL: http://llvm.org/viewvc/llvm-project?rev=295170&view=rev Log: 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 Modified: lldb/trunk/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py Modified: lldb/trunk/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py?rev=295170&r1=295169&r2=295170&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py Wed Feb 15 06:27:16 2017 @@ -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) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits