[Lldb-commits] [lldb] r295170 - Fix TestNameLookup for GCC

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 15 04:27:17 PST 2017


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)




More information about the lldb-commits mailing list