Fix TestInlines.py on Windows
authorAdrian McCarthy <amccarth@google.com>
Mon, 29 Feb 2016 21:13:29 +0000 (21:13 +0000)
committerAdrian McCarthy <amccarth@google.com>
Mon, 29 Feb 2016 21:13:29 +0000 (21:13 +0000)
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

lldb/packages/Python/lldbsuite/test/lang/cpp/inlines/Makefile [moved from lldb/packages/Python/lldbsuite/test/lang/c/inlines/Makefile with 67% similarity]
lldb/packages/Python/lldbsuite/test/lang/cpp/inlines/TestInlines.py [moved from lldb/packages/Python/lldbsuite/test/lang/c/inlines/TestInlines.py with 83% similarity]
lldb/packages/Python/lldbsuite/test/lang/cpp/inlines/inlines.cpp [moved from lldb/packages/Python/lldbsuite/test/lang/c/inlines/inlines.c with 100% similarity]
lldb/packages/Python/lldbsuite/test/lang/cpp/inlines/inlines.h [moved from lldb/packages/Python/lldbsuite/test/lang/c/inlines/inlines.h with 100% similarity]

@@ -16,10 +16,9 @@ class InlinesTestCase(TestBase):
         # 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.')
+        self.line = line_number('inlines.cpp', '// 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()
@@ -36,17 +35,18 @@ class InlinesTestCase(TestBase):
     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)
-        
+        lldbutil.run_break_set_by_file_and_line(self, "inlines.cpp", self.line, num_expected_locations=2,
+                                                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'])