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