diff --git a/gclient.py b/gclient.py index f0a130300..72b001984 100755 --- a/gclient.py +++ b/gclient.py @@ -1799,6 +1799,9 @@ class Flattener(object): Arguments: dep (Dependency): dependency to process """ + if not dep.deps_parsed: + dep.ParseDepsFile() + self._allowed_hosts.update(dep.allowed_hosts) for key, value in dep.get_vars().iteritems(): diff --git a/testing_support/fake_repos.py b/testing_support/fake_repos.py index 12139b251..ea74fccc9 100755 --- a/testing_support/fake_repos.py +++ b/testing_support/fake_repos.py @@ -298,7 +298,7 @@ class FakeReposBase(object): class FakeRepos(FakeReposBase): """Implements populateGit().""" - NB_GIT_REPOS = 10 + NB_GIT_REPOS = 12 def populateGit(self): # Testing: @@ -593,12 +593,30 @@ deps = { # in recursedeps. 'src/repo6': '/repo_6', } +deps_os = { + 'ios': { + 'src/repo11': '/repo_11', + } +} recursedeps = [ 'src/repo9', + 'src/repo11', ]""", 'origin': 'git/repo_10@1\n', }) + self._commit_git('repo_11', { + 'DEPS': """ +deps = { + 'src/repo12': '/repo12', +}""", + 'origin': 'git/repo_11@1\n', + }) + + self._commit_git('repo_12', { + 'origin': 'git/repo_12@1\n', + }) + class FakeRepoSkiaDEPS(FakeReposBase): """Simulates the Skia DEPS transition in Chrome.""" diff --git a/tests/gclient_smoketest.py b/tests/gclient_smoketest.py index aa8a954b6..3a6dce207 100755 --- a/tests/gclient_smoketest.py +++ b/tests/gclient_smoketest.py @@ -879,7 +879,7 @@ class GClientSmokeGIT(GClientSmokeBase): self.assertFalse(os.path.exists(output_deps)) self.gclient(['config', self.git_base + 'repo_10', '--name', 'src']) - self.gclient(['sync']) + self.gclient(['sync', '--process-all-deps']) self.gclient(['flatten', '-v', '-v', '-v', '--output-deps', output_deps]) with open(output_deps) as f: @@ -892,6 +892,11 @@ class GClientSmokeGIT(GClientSmokeBase): ' "url": "git://127.0.0.1:20000/git/repo_10",', ' },', '', + ' # src -> src/repo11 -> src/repo12', + ' "src/repo12": {', + ' "url": "/repo12",', + ' },', + '', ' # src -> src/repo6', ' "src/repo6": {', ' "url": "/repo_6",', @@ -923,6 +928,14 @@ class GClientSmokeGIT(GClientSmokeBase): '', ' },', '', + ' "ios": {', + ' # src -> src/repo11', + ' "src/repo11": {', + ' "url": "/repo_11",', + ' },', + '', + ' },', + '', ' "mac": {', ' # src -> src/repo9 -> src/repo8 -> src/recursed_os_repo', ' "src/recursed_os_repo": {',