
Stale global module caches cause problems for the bots. The modules become invalid when clang headers are updated by version control, and tests which use these modules fail to compile, e.g: fatal error: file '.../__stddef_max_align_t.h' has been modified since the module file '/var/.../Darwin.pcm' was built note: please rebuild precompiled header '/var/.../Darwin.pcm' Eventually we should transition to having just a single module cache to speed tests up. This patch should be just enough to fix the spurious bot failures due to stale caches. rdar://36479805, also related to llvm.org/PR36048 Differential Revision: https://reviews.llvm.org/D42277 llvm-svn: 323450
68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
"""Test that DWARF types are trusted over module types"""
|
|
|
|
from __future__ import print_function
|
|
|
|
|
|
import unittest2
|
|
import platform
|
|
from distutils.version import StrictVersion
|
|
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class IncompleteModulesTestCase(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('main.m', '// Set breakpoint 0 here.')
|
|
|
|
@skipUnlessDarwin
|
|
@unittest2.expectedFailure("rdar://20416388")
|
|
@skipIf(macos_version=["<", "10.12"], debug_info=no_match(["gmodules"]))
|
|
def test_expr(self):
|
|
self.build()
|
|
exe = self.getBuildArtifact("a.out")
|
|
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
|
|
|
|
# Break inside the foo function which takes a bar_ptr argument.
|
|
lldbutil.run_break_set_by_file_and_line(
|
|
self, "main.m", self.line, num_expected_locations=1, 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'])
|
|
|
|
self.runCmd(
|
|
"settings set target.clang-module-search-paths \"" +
|
|
os.getcwd() +
|
|
"\"")
|
|
|
|
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
|
|
substrs=["int", "3"])
|
|
|
|
self.expect(
|
|
"expr [myObject privateMethod]",
|
|
VARIABLES_DISPLAYED_CORRECTLY,
|
|
substrs=[
|
|
"int",
|
|
"5"])
|
|
|
|
self.expect("expr MIN(2,3)", "#defined macro was found",
|
|
substrs=["int", "2"])
|
|
|
|
self.expect("expr MAX(2,3)", "#undefd macro was correcltly not found",
|
|
error=True)
|