What's the number of failures on Linux x86/64 red hat currently? Thanks,
-- Davide On Thu, Dec 21, 2017 at 4:09 PM, Pavel Labath <lab...@google.com> wrote: > Yeah, purely renaming the variables would be a bit like hiding > problems under the carpet. But, I think adding the new test makes up > for that. This way, anyone who wants to fix this issue in the future > will have a simple test to validate his fix. > > On 21 December 2017 at 14:55, Davide Italiano <dccitali...@gmail.com> wrote: >> 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