diff options
author | Adrian McCarthy <amccarth@google.com> | 2016-02-29 21:13:29 +0000 |
---|---|---|
committer | Adrian McCarthy <amccarth@google.com> | 2016-02-29 21:13:29 +0000 |
commit | 536183275d67c1de31066386070a2fe9b403e241 (patch) | |
tree | 9c5d19fb559b9a2da11a3ddfc19bcad6199106cd /lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py | |
parent | 936499ae4cdb4f4601e7c0561be4fdd8a05fb04e (diff) | |
download | bcm5719-llvm-536183275d67c1de31066386070a2fe9b403e241.tar.gz bcm5719-llvm-536183275d67c1de31066386070a2fe9b403e241.zip |
Fix TestInlines.py on Windows
The inlining semantics for C and C++ are different, which affects the test's expectation of the number of times the function should appear in the binary. In the case of this test, C semantics means there should be three instances of inner_inline, while C++ semantics means there should be only two.
On Windows, clang uses C++ inline semantics even for C code, and there doesn't seem to be a combination of compiler flags to avoid this.
So, for consistency, I've recast the test to use C++ everywhere. Since the test resided under lang/c, it seemed appropriate to move it to lang/cpp.
This does not address the other XFAIL for this test on Linux/gcc. See https://llvm.org/bugs/show_bug.cgi?id=26710
Differential Revision: http://reviews.llvm.org/D17650
llvm-svn: 262255
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py b/lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py deleted file mode 100644 index b75f0bedff5..00000000000 --- a/lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py +++ /dev/null @@ -1,52 +0,0 @@ -"""Test variable lookup when stopped in inline functions.""" - -from __future__ import print_function - -import os, time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class InlinesTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break inside main(). - self.line = line_number('inlines.c', '// Set break point at this line.') - - @expectedFailureAll("llvm.org/pr26710", oslist=["linux"], compiler="gcc") - @expectedFailureAll("llvm.org/pr26710", oslist=["windows"], compiler="clang") - def test(self): - """Test that local variables are visible in expressions.""" - self.build() - self.runToBreakpoint() - - # Check that 'frame variable' finds a variable - self.expect("frame variable inner_input", VARIABLES_DISPLAYED_CORRECTLY, - startstr = '(int) inner_input =') - - # Check that 'expr' finds a variable - self.expect("expr inner_input", VARIABLES_DISPLAYED_CORRECTLY, - startstr = '(int) $0 =') - - def runToBreakpoint(self): - exe = os.path.join(os.getcwd(), "a.out") - self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) - - # Break inside the main. - lldbutil.run_break_set_by_file_and_line (self, "inlines.c", self.line, num_expected_locations=3, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - # The stop reason of the thread should be breakpoint. - self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, - substrs = ['stopped', - 'stop reason = breakpoint']) - - # The breakpoint should have a hit count of 1. - self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE, - substrs = [' resolved, hit count = 1']) |