mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
gclient setdep: Add support for CIPD versions
gclient setdep used to assume that the version of a CIPD package was always
of the form 'version:<something>'.
However, the following are all valid:
* SHA1 hashes that specify a single instance
* tags (tagname:tagvalue)
* References (e.g. 'latest') that are dynamically resolved by the CIPD server.
This change adds support for all of them:
* GetCIPD simply returns whatever the 'version' entry is, without assuming
it begins with 'version:'.
* SetCIPD sets 'version' ta whatever it is passed, without prepending 'version:'
at the beginning.
Bug: 858978
Change-Id: I53669c5df7fb51cde42e0af271139b5719a47622
Reviewed-on: https://chromium-review.googlesource.com/1120943
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
This commit is contained in:
@@ -382,7 +382,7 @@ class CipdTest(unittest.TestCase):
|
||||
' "packages": [',
|
||||
' {',
|
||||
' "package": "some/cipd/package",',
|
||||
' "version": "version:1234",',
|
||||
' "version": "deadbeef",',
|
||||
' },',
|
||||
' {',
|
||||
' "package": "another/cipd/package",',
|
||||
@@ -395,12 +395,20 @@ class CipdTest(unittest.TestCase):
|
||||
'}',
|
||||
]))
|
||||
|
||||
result = gclient_eval.GetCIPD(
|
||||
local_scope, 'src/cipd/package', 'another/cipd/package')
|
||||
self.assertEqual(result, '5678')
|
||||
self.assertEqual(
|
||||
gclient_eval.GetCIPD(
|
||||
local_scope, 'src/cipd/package', 'some/cipd/package'),
|
||||
'deadbeef')
|
||||
|
||||
self.assertEqual(
|
||||
gclient_eval.GetCIPD(
|
||||
local_scope, 'src/cipd/package', 'another/cipd/package'),
|
||||
'version:5678')
|
||||
|
||||
gclient_eval.SetCIPD(
|
||||
local_scope, 'src/cipd/package', 'another/cipd/package', '6.789')
|
||||
local_scope, 'src/cipd/package', 'another/cipd/package', 'version:6789')
|
||||
gclient_eval.SetCIPD(
|
||||
local_scope, 'src/cipd/package', 'some/cipd/package', 'foobar')
|
||||
result = gclient_eval.RenderDEPSFile(local_scope)
|
||||
|
||||
self.assertEqual(result, '\n'.join([
|
||||
@@ -409,11 +417,11 @@ class CipdTest(unittest.TestCase):
|
||||
' "packages": [',
|
||||
' {',
|
||||
' "package": "some/cipd/package",',
|
||||
' "version": "version:1234",',
|
||||
' "version": "foobar",',
|
||||
' },',
|
||||
' {',
|
||||
' "package": "another/cipd/package",',
|
||||
' "version": "version:6.789",',
|
||||
' "version": "version:6789",',
|
||||
' },',
|
||||
' ],',
|
||||
' "condition": "checkout_android",',
|
||||
@@ -422,6 +430,39 @@ class CipdTest(unittest.TestCase):
|
||||
'}',
|
||||
]))
|
||||
|
||||
def test_preserves_escaped_vars(self):
|
||||
local_scope = gclient_eval.Exec('\n'.join([
|
||||
'deps = {',
|
||||
' "src/cipd/package": {',
|
||||
' "packages": [',
|
||||
' {',
|
||||
' "package": "package/${{platform}}",',
|
||||
' "version": "version:abcd",',
|
||||
' },',
|
||||
' ],',
|
||||
' "dep_type": "cipd",',
|
||||
' },',
|
||||
'}',
|
||||
]))
|
||||
|
||||
gclient_eval.SetCIPD(
|
||||
local_scope, 'src/cipd/package', 'package/${platform}', 'version:dcba')
|
||||
result = gclient_eval.RenderDEPSFile(local_scope)
|
||||
|
||||
self.assertEqual(result, '\n'.join([
|
||||
'deps = {',
|
||||
' "src/cipd/package": {',
|
||||
' "packages": [',
|
||||
' {',
|
||||
' "package": "package/${{platform}}",',
|
||||
' "version": "version:dcba",',
|
||||
' },',
|
||||
' ],',
|
||||
' "dep_type": "cipd",',
|
||||
' },',
|
||||
'}',
|
||||
]))
|
||||
|
||||
|
||||
class RevisionTest(unittest.TestCase):
|
||||
def assert_gets_and_sets_revision(self, before, after, rev_before='deadbeef'):
|
||||
@@ -552,6 +593,24 @@ class RevisionTest(unittest.TestCase):
|
||||
]
|
||||
self.assert_gets_and_sets_revision(before, after, rev_before=None)
|
||||
|
||||
def test_preserves_variables(self):
|
||||
before = [
|
||||
'vars = {',
|
||||
' "src_root": "src"',
|
||||
'}',
|
||||
'deps = {',
|
||||
' "{src_root}/dep": "https://example.com/dep.git@deadbeef",',
|
||||
'}',
|
||||
]
|
||||
after = [
|
||||
'vars = {',
|
||||
' "src_root": "src"',
|
||||
'}',
|
||||
'deps = {',
|
||||
' "{src_root}/dep": "https://example.com/dep.git@deadfeed",',
|
||||
'}',
|
||||
]
|
||||
self.assert_gets_and_sets_revision(before, after)
|
||||
|
||||
def test_preserves_formatting(self):
|
||||
before = [
|
||||
|
||||
Reference in New Issue
Block a user