1*99451b44SJordan Rupprecht"""Test that the clang modules cache directory can be controlled."""
2*99451b44SJordan Rupprecht
3*99451b44SJordan Rupprecht
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprechtimport unittest2
6*99451b44SJordan Rupprechtimport os
7*99451b44SJordan Rupprechtimport shutil
8*99451b44SJordan Rupprecht
9*99451b44SJordan Rupprechtimport lldb
10*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
11*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
12*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
13*99451b44SJordan Rupprecht
14*99451b44SJordan Rupprecht
15*99451b44SJordan Rupprechtclass ObjCModulesTestCase(TestBase):
16*99451b44SJordan Rupprecht    NO_DEBUG_INFO_TESTCASE = True
17*99451b44SJordan Rupprecht
18*99451b44SJordan Rupprecht    def test_expr(self):
19*99451b44SJordan Rupprecht        self.build()
20*99451b44SJordan Rupprecht        self.main_source_file = lldb.SBFileSpec("main.m")
21*99451b44SJordan Rupprecht        self.runCmd("settings set target.auto-import-clang-modules true")
22*99451b44SJordan Rupprecht        mod_cache = self.getBuildArtifact("my-clang-modules-cache")
23*99451b44SJordan Rupprecht        if os.path.isdir(mod_cache):
24*99451b44SJordan Rupprecht          shutil.rmtree(mod_cache)
25*99451b44SJordan Rupprecht        self.assertFalse(os.path.isdir(mod_cache),
26*99451b44SJordan Rupprecht                         "module cache should not exist")
27*99451b44SJordan Rupprecht        self.runCmd('settings set symbols.clang-modules-cache-path "%s"' % mod_cache)
28*99451b44SJordan Rupprecht        self.runCmd('settings set target.clang-module-search-paths "%s"'
29*99451b44SJordan Rupprecht                    % self.getSourceDir())
30*99451b44SJordan Rupprecht        (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(
31*99451b44SJordan Rupprecht            self, "Set breakpoint here", self.main_source_file)
32*99451b44SJordan Rupprecht        self.runCmd("expr @import Foo")
33*99451b44SJordan Rupprecht        self.assertTrue(os.path.isdir(mod_cache), "module cache exists")
34