Index: tests/gclient_test.py |
diff --git a/tests/gclient_test.py b/tests/gclient_test.py |
index 449a49169c56861a442de43dc7816f59ea2839de..35f2be29c036b35213b821a0d08eb4859a4f8fa1 100755 |
--- a/tests/gclient_test.py |
+++ b/tests/gclient_test.py |
@@ -425,6 +425,46 @@ class GclientTest(trial_dir.TestCase): |
], |
sorted(self._get_processed())) |
+ def testDepsOsOverrideDepsInDepsFile(self): |
+ """Verifies that a 'deps_os' path can override a 'deps' path. |
+ """ |
+ |
+ write( |
+ '.gclient', |
+ 'solutions = [\n' |
+ ' { "name": "foo",\n' |
+ ' "url": "svn://example.com/foo",\n' |
+ ' },]\n') |
+ write( |
+ os.path.join('foo', 'DEPS'), |
+ 'target_os = ["baz"]\n' |
+ 'deps = {\n' |
+ ' "foo/src": "/src",\n' # This path is to be overridden by similar path |
+ # in deps_os['unix']. |
+ '}\n' |
+ 'deps_os = {\n' |
+ ' "unix": { "foo/unix": "/unix",' |
+ ' "foo/src": "/src_unix"},\n' |
+ ' "baz": { "foo/baz": "/baz", },\n' |
+ ' "jaz": { "foo/jaz": "/jaz", },\n' |
+ '}') |
+ |
+ parser = gclient.Parser() |
+ options, _ = parser.parse_args(['--jobs', '1']) |
+ options.deps_os = 'unix' |
+ |
+ obj = gclient.GClient.LoadCurrentConfig(options) |
+ obj.RunOnDeps('None', []) |
+ self.assertEqual(['unix'], sorted(obj.enforced_os)) |
+ self.assertEquals( |
+ [ |
+ 'svn://example.com/foo', |
+ 'svn://example.com/foo/baz', |
+ 'svn://example.com/foo/src_unix', |
+ 'svn://example.com/foo/unix', |
+ ], |
+ sorted(self._get_processed())) |
+ |
def testRecursionOverride(self): |
"""Verifies gclient respects the recursion var syntax. |