Skip to content

Commit

Permalink
Fix TestNameLookup for GCC
Browse files Browse the repository at this point in the history
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
  • Loading branch information
labath committed Feb 15, 2017
1 parent 0f0e5bd commit d875aae
Showing 1 changed file with 2 additions and 2 deletions.
Expand Up @@ -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.
Expand All @@ -44,7 +43,7 @@ def test_target(self):
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
Expand All @@ -56,6 +55,7 @@ def test_target(self):
# 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)
Expand Down

0 comments on commit d875aae

Please sign in to comment.