Thank you Pavel. I was really nervous about making this change but I agree it's for the best.
Thanks, -- Davide On Thu, Dec 21, 2017 at 3:40 PM, Pavel Labath via lldb-commits <lldb-commits@lists.llvm.org> wrote: > Author: labath > Date: Thu Dec 21 06:40:03 2017 > New Revision: 321271 > > URL: http://llvm.org/viewvc/llvm-project?rev=321271&view=rev > Log: > Work around test failures on red-hat linux > > Two tests were failing because the debugger was picking up multiply > defined internal symbols from the system libraries. This is a bug, as > there should be no ambiguity because the tests are defining variables > with should shadow these symbols, but lldb is not smart enough to figure > that out. > > I work around the issue by renaming the variables in these tests, and in > exchange I create a self-contained test which reproduces the issue > without depending on the system libraries. > > This increases the predictability of our test suite. > > Modified: > > lldb/trunk/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py > > lldb/trunk/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py > lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp > > Modified: > lldb/trunk/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py?rev=321271&r1=321270&r2=321271&view=diff > ============================================================================== > --- > lldb/trunk/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py > (original) > +++ > lldb/trunk/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py > Thu Dec 21 06:40:03 2017 > @@ -42,7 +42,7 @@ class Radar9673644TestCase(TestBase): > > # rdar://problem/9673664 lldb expression evaluation problem > > - self.expect('expr char c[] = "foo"; c[0]', > + self.expect('expr char str[] = "foo"; str[0]', > substrs=["'f'"]) > # runCmd: expr char c[] = "foo"; c[0] > # output: (char) $0 = 'f' > > Modified: > lldb/trunk/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py?rev=321271&r1=321270&r2=321271&view=diff > ============================================================================== > --- > lldb/trunk/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py > (original) > +++ > lldb/trunk/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py > Thu Dec 21 06:40:03 2017 > @@ -16,6 +16,13 @@ class TestConflictingSymbols(TestBase): > mydir = TestBase.compute_mydir(__file__) > NO_DEBUG_INFO_TESTCASE = True > > + def setUp(self): > + TestBase.setUp(self) > + > + self.One_line = line_number('One/One.c', '// break here') > + self.Two_line = line_number('Two/Two.c', '// break here') > + self.main_line = line_number('main.c', '// break here') > + > def test_conflicting_symbols(self): > self.build() > exe = os.path.join(os.getcwd(), "a.out") > @@ -27,15 +34,12 @@ class TestConflictingSymbols(TestBase): > environment = self.registerSharedLibrariesWithTarget( > target, ['One', 'Two']) > > - One_line = line_number('One/One.c', '// break here') > - Two_line = line_number('Two/Two.c', '// break here') > - main_line = line_number('main.c', '// break here') > lldbutil.run_break_set_command( > - self, 'breakpoint set -f One.c -l %s' % (One_line)) > + self, 'breakpoint set -f One.c -l %s' % (self.One_line)) > lldbutil.run_break_set_command( > - self, 'breakpoint set -f Two.c -l %s' % (Two_line)) > + self, 'breakpoint set -f Two.c -l %s' % (self.Two_line)) > lldbutil.run_break_set_by_file_and_line( > - self, 'main.c', main_line, num_expected_locations=1, > loc_exact=True) > + self, 'main.c', self.main_line, num_expected_locations=1, > loc_exact=True) > > process = target.LaunchSimple( > None, environment, self.get_process_working_directory()) > @@ -88,3 +92,32 @@ class TestConflictingSymbols(TestBase): > error=True, > substrs=[ > "Multiple internal symbols"]) > + > + @expectedFailureAll(bugnumber="llvm.org/pr35043") > + def test_shadowed(self): > + self.build() > + exe = os.path.join(os.getcwd(), "a.out") > + target = self.dbg.CreateTarget("a.out") > + self.assertTrue(target, VALID_TARGET) > + > + # Register our shared libraries for remote targets so they get > + # automatically uploaded > + environment = self.registerSharedLibrariesWithTarget( > + target, ['One', 'Two']) > + > + lldbutil.run_break_set_by_file_and_line(self, 'main.c', > self.main_line) > + > + process = target.LaunchSimple( > + None, environment, self.get_process_working_directory()) > + self.assertTrue(process, PROCESS_IS_VALID) > + > + # The stop reason of the thread should be breakpoint. > + self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, > + substrs=['stopped', > + 'stop reason = breakpoint']) > + > + # As we are shadowing the conflicting symbol, there should be no > + # ambiguity in this expression. > + self.expect( > + "expr int conflicting_symbol = 474747; conflicting_symbol", > + substrs=[ "474747"]) > > Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp?rev=321271&r1=321270&r2=321271&view=diff > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp > (original) > +++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp Thu > Dec 21 06:40:03 2017 > @@ -11,7 +11,7 @@ > > int main (int argc, char const *argv[]) > { > - printf("Stop here\n"); //% self.runCmd("expression auto $add = [](int a, > int b) { return a + b; }") > + printf("Stop here\n"); //% self.runCmd("expression auto $add = [](int > first, int second) { return first + second; }") > //% self.expect("expression $add(2,3)", substrs = > ['= 5']) > return 0; > } > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits