| Index: tests/gclient_smoketest.py
|
| diff --git a/tests/gclient_smoketest.py b/tests/gclient_smoketest.py
|
| index ebe647acd42adf079e4450119c3fa1a3839ceda9..73f7f3d810344a7c2416e344a239d8a4f29f4cc1 100755
|
| --- a/tests/gclient_smoketest.py
|
| +++ b/tests/gclient_smoketest.py
|
| @@ -660,6 +660,37 @@ class GClientSmokeBoth(GClientSmokeBase):
|
| }
|
| self.check((out, '', 0), results)
|
|
|
| + def testRecurse(self):
|
| + if not self.enabled:
|
| + return
|
| + self.gclient(['config', '--spec',
|
| + 'solutions=['
|
| + '{"name": "src",'
|
| + ' "url": "' + self.svn_base + 'trunk/src/"},'
|
| + '{"name": "src-git",'
|
| + '"url": "' + self.git_base + 'repo_1"}]'])
|
| + self.gclient(['sync', '--deps', 'mac'])
|
| + results = self.gclient(['recurse', 'sh', '-c',
|
| + 'echo $GCLIENT_SCM,$GCLIENT_URL,`pwd`'])
|
| +
|
| + entries = [tuple(line.split(','))
|
| + for line in results[0].strip().split('\n')]
|
| + logging.debug(entries)
|
| +
|
| + bases = {'svn': self.svn_base, 'git': self.git_base}
|
| + expected_source = [
|
| + ('svn', 'trunk/src/', 'src'),
|
| + ('git', 'repo_1', 'src-git'),
|
| + ('svn', 'trunk/other', 'src/other'),
|
| + ('git', 'repo_2@' + self.githash('repo_2', 1)[:7], 'src/repo2'),
|
| + ('git', 'repo_3', 'src/repo2/repo_renamed'),
|
| + ('svn', 'trunk/third_party/foo@1', 'src/third_party/foo'),
|
| + ]
|
| + expected = [(scm, bases[scm] + url, os.path.join(self.root_dir, path))
|
| + for (scm, url, path) in expected_source]
|
| +
|
| + self.assertEquals(sorted(entries), sorted(expected))
|
| +
|
|
|
| if __name__ == '__main__':
|
| if '-c' in sys.argv:
|
|
|