Commit 65f6b45d authored by Edward Lemur's avatar Edward Lemur Committed by Commit Bot

gclient: Assert invokations of gclient succeed when running smoketests.

Bug: 1024683
Change-Id: I01245d34ad1fa1142ce726c80bf5b61567bafe35
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1925038Reviewed-by: 's avatarAnthony Polito <apolito@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
parent 589d4563
...@@ -526,7 +526,7 @@ deps_os ={ ...@@ -526,7 +526,7 @@ deps_os ={
vars = { vars = {
'str_var': 'xyz', 'str_var': 'xyz',
} }
gclient_gn_args_file = 'src/repo2/gclient.args' gclient_gn_args_file = 'src/repo8/gclient.args'
gclient_gn_args = [ gclient_gn_args = [
'str_var', 'str_var',
] ]
......
...@@ -41,7 +41,7 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase): ...@@ -41,7 +41,7 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase):
# Suppress Python 3 warnings and other test undesirables. # Suppress Python 3 warnings and other test undesirables.
self.env['GCLIENT_TEST'] = '1' self.env['GCLIENT_TEST'] = '1'
def gclient(self, cmd, cwd=None): def gclient(self, cmd, cwd=None, error_ok=False):
if not cwd: if not cwd:
cwd = self.root_dir cwd = self.root_dir
if COVERAGE: if COVERAGE:
...@@ -57,6 +57,10 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase): ...@@ -57,6 +57,10 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase):
(stdout, stderr) = process.communicate() (stdout, stderr) = process.communicate()
logging.debug("XXX: %s\n%s\nXXX" % (' '.join(cmd), stdout)) logging.debug("XXX: %s\n%s\nXXX" % (' '.join(cmd), stdout))
logging.debug("YYY: %s\n%s\nYYY" % (' '.join(cmd), stderr)) logging.debug("YYY: %s\n%s\nYYY" % (' '.join(cmd), stderr))
if not error_ok:
self.assertEqual(0, process.returncode, stderr)
return (stdout.replace('\r\n', '\n'), stderr.replace('\r\n', '\n'), return (stdout.replace('\r\n', '\n'), stderr.replace('\r\n', '\n'),
process.returncode) process.returncode)
...@@ -87,11 +91,10 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase): ...@@ -87,11 +91,10 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase):
def parseGclient(self, cmd, items, expected_stderr='', untangle=False): def parseGclient(self, cmd, items, expected_stderr='', untangle=False):
"""Parse gclient's output to make it easier to test. """Parse gclient's output to make it easier to test.
If untangle is True, tries to sort out the output from parallel checkout.""" If untangle is True, tries to sort out the output from parallel checkout."""
(stdout, stderr, returncode) = self.gclient(cmd) (stdout, stderr, _) = self.gclient(cmd)
if untangle: if untangle:
stdout = self.untangle(stdout) stdout = self.untangle(stdout)
self.checkString(expected_stderr, stderr) self.checkString(expected_stderr, stderr)
self.assertEqual(0, returncode)
return self.checkBlock(stdout, items) return self.checkBlock(stdout, items)
def splitBlock(self, stdout): def splitBlock(self, stdout):
...@@ -169,19 +172,18 @@ class GClientSmoke(GClientSmokeBase): ...@@ -169,19 +172,18 @@ class GClientSmoke(GClientSmokeBase):
def testNotConfigured(self): def testNotConfigured(self):
res = ('', 'Error: client not configured; see \'gclient config\'\n', 1) res = ('', 'Error: client not configured; see \'gclient config\'\n', 1)
self.check(res, self.gclient(['diff'])) self.check(res, self.gclient(['diff'], error_ok=True))
self.check(res, self.gclient(['pack'])) self.check(res, self.gclient(['pack'], error_ok=True))
self.check(res, self.gclient(['revert'])) self.check(res, self.gclient(['revert'], error_ok=True))
self.check(res, self.gclient(['revinfo'])) self.check(res, self.gclient(['revinfo'], error_ok=True))
self.check(res, self.gclient(['runhooks'])) self.check(res, self.gclient(['runhooks'], error_ok=True))
self.check(res, self.gclient(['status'])) self.check(res, self.gclient(['status'], error_ok=True))
self.check(res, self.gclient(['sync'])) self.check(res, self.gclient(['sync'], error_ok=True))
self.check(res, self.gclient(['update'])) self.check(res, self.gclient(['update'], error_ok=True))
def testConfig(self): def testConfig(self):
# Get any bootstrapping out of the way. # Get any bootstrapping out of the way.
results = self.gclient(['version']) results = self.gclient(['version'])
self.assertEqual(results[2], 0)
p = join(self.root_dir, '.gclient') p = join(self.root_dir, '.gclient')
def test(cmd, expected): def test(cmd, expected):
...@@ -262,7 +264,7 @@ class GClientSmoke(GClientSmokeBase): ...@@ -262,7 +264,7 @@ class GClientSmoke(GClientSmokeBase):
test(['config', '--spec', '["blah blah"]'], '["blah blah"]') test(['config', '--spec', '["blah blah"]'], '["blah blah"]')
os.remove(p) os.remove(p)
results = self.gclient(['config', 'foo', 'faa', 'fuu']) results = self.gclient(['config', 'foo', 'faa', 'fuu'], error_ok=True)
err = ('Usage: gclient.py config [options] [url]\n\n' err = ('Usage: gclient.py config [options] [url]\n\n'
'gclient.py: error: Inconsistent arguments. Use either --spec or one' 'gclient.py: error: Inconsistent arguments. Use either --spec or one'
' or 2 args\n') ' or 2 args\n')
...@@ -309,6 +311,8 @@ class GClientSmoke(GClientSmokeBase): ...@@ -309,6 +311,8 @@ class GClientSmoke(GClientSmokeBase):
class GClientSmokeGIT(GClientSmokeBase): class GClientSmokeGIT(GClientSmokeBase):
def setUp(self): def setUp(self):
super(GClientSmokeGIT, self).setUp() super(GClientSmokeGIT, self).setUp()
self.env['PATH'] = (os.path.join(ROOT_DIR, 'testing_support')
+ os.pathsep + self.env['PATH'])
self.enabled = self.FAKE_REPOS.set_up_git() self.enabled = self.FAKE_REPOS.set_up_git()
def testSync(self): def testSync(self):
...@@ -527,9 +531,8 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -527,9 +531,8 @@ class GClientSmokeGIT(GClientSmokeBase):
if not self.enabled: if not self.enabled:
return return
self.gclient(['config', self.git_base + 'repo_13', '--name', 'src']) self.gclient(['config', self.git_base + 'repo_13', '--name', 'src'])
_out, _err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 2)]) ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 2)])
self.assertEqual(0, rc)
def testSyncFetchUpdate(self): def testSyncFetchUpdate(self):
if not self.enabled: if not self.enabled:
...@@ -538,22 +541,19 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -538,22 +541,19 @@ class GClientSmokeGIT(GClientSmokeBase):
# Sync to an earlier revision first, one that doesn't refer to # Sync to an earlier revision first, one that doesn't refer to
# non-standard refs. # non-standard refs.
_out, _err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 1)]) ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 1)])
self.assertEqual(0, rc)
# Make sure update that pulls a non-standard ref works. # Make sure update that pulls a non-standard ref works.
_out, _err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 2)]) ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 2)])
self.assertEqual(0, rc)
def testSyncDirect(self): def testSyncDirect(self):
if not self.enabled: if not self.enabled:
return return
self.gclient(['config', self.git_base + 'repo_12', '--name', 'src']) self.gclient(['config', self.git_base + 'repo_12', '--name', 'src'])
_out, _err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', 'refs/changes/1212']) ['sync', '-v', '-v', '-v', '--revision', 'refs/changes/1212'])
self.assertEqual(0, rc)
def testSyncUnmanaged(self): def testSyncUnmanaged(self):
if not self.enabled: if not self.enabled:
...@@ -739,9 +739,9 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -739,9 +739,9 @@ class GClientSmokeGIT(GClientSmokeBase):
expected_stderr = ("Error: Command 'vpython -c import sys; " expected_stderr = ("Error: Command 'vpython -c import sys; "
"sys.exit(1)' returned non-zero exit status 1 in %s\n" "sys.exit(1)' returned non-zero exit status 1 in %s\n"
% self.root_dir) % self.root_dir)
stdout, stderr, retcode = self.gclient(['sync', '--deps', 'mac', '--jobs=1', stdout, stderr, retcode = self.gclient(
'--revision', ['sync', '--deps', 'mac', '--jobs=1', '--revision',
'src@' + self.githash('repo_5', 3)]) 'src@' + self.githash('repo_5', 3)], error_ok=True)
self.assertEqual(stderr, expected_stderr) self.assertEqual(stderr, expected_stderr)
self.assertEqual(2, retcode) self.assertEqual(2, retcode)
self.checkBlock(stdout, expectated_stdout) self.checkBlock(stdout, expectated_stdout)
...@@ -887,15 +887,13 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -887,15 +887,13 @@ class GClientSmokeGIT(GClientSmokeBase):
'}', '}',
])) ]))
results = self.gclient([ self.gclient([
'setdep', '-r', 'foo@new_foo', '-r', 'bar@new_bar', 'setdep', '-r', 'foo@new_foo', '-r', 'bar@new_bar',
'--var', 'foo_var=new_val', '--deps-file', fake_deps]) '--var', 'foo_var=new_val', '--deps-file', fake_deps])
with open(fake_deps) as f: with open(fake_deps) as f:
contents = f.read().splitlines() contents = f.read().splitlines()
self.assertEqual('', results[1], results[1])
self.assertEqual(0, results[2])
self.assertEqual([ self.assertEqual([
'vars = { ', 'vars = { ',
' "foo_var": "new_val",', ' "foo_var": "new_val",',
...@@ -932,15 +930,13 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -932,15 +930,13 @@ class GClientSmokeGIT(GClientSmokeBase):
'}]', '}]',
])) ]))
results = self.gclient([ self.gclient([
'setdep', '-r', 'foo@new_foo', '-r', 'bar@new_bar', 'setdep', '-r', 'foo@new_foo', '-r', 'bar@new_bar',
'--var', 'foo_var=new_val', '--deps-file', fake_deps]) '--var', 'foo_var=new_val', '--deps-file', fake_deps])
with open(fake_deps) as f: with open(fake_deps) as f:
contents = f.read().splitlines() contents = f.read().splitlines()
self.assertEqual('', results[1], results[1])
self.assertEqual(0, results[2])
self.assertEqual([ self.assertEqual([
'vars = { ', 'vars = { ',
' "foo_var": "new_val",', ' "foo_var": "new_val",',
...@@ -980,13 +976,11 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -980,13 +976,11 @@ class GClientSmokeGIT(GClientSmokeBase):
'getdep', '-r', 'foo', '-r', 'bar','--var', 'foo_var', 'getdep', '-r', 'foo', '-r', 'bar','--var', 'foo_var',
'--deps-file', fake_deps]) '--deps-file', fake_deps])
self.assertEqual('', results[1])
self.assertEqual([ self.assertEqual([
'foo_val', 'foo_val',
'foo_rev', 'foo_rev',
'bar_rev', 'bar_rev',
], results[0].splitlines()) ], results[0].splitlines())
self.assertEqual(0, results[2])
def testGetDep_BuiltinVariables(self): def testGetDep_BuiltinVariables(self):
self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
...@@ -1015,13 +1009,11 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -1015,13 +1009,11 @@ class GClientSmokeGIT(GClientSmokeBase):
'getdep', '-r', 'foo', '-r', 'bar','--var', 'foo_var', 'getdep', '-r', 'foo', '-r', 'bar','--var', 'foo_var',
'--deps-file', fake_deps]) '--deps-file', fake_deps])
self.assertEqual('', results[1])
self.assertEqual([ self.assertEqual([
'foo_val', 'foo_val',
'foo_rev', 'foo_rev',
'bar_rev', 'bar_rev',
], results[0].splitlines()) ], results[0].splitlines())
self.assertEqual(0, results[2])
def testFlatten(self): def testFlatten(self):
if not self.enabled: if not self.enabled:
...@@ -1045,11 +1037,10 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -1045,11 +1037,10 @@ class GClientSmokeGIT(GClientSmokeBase):
'name': 'src', 'name': 'src',
'deps_file': output_deps 'deps_file': output_deps
}] }]
results = self.gclient([ self.gclient([
'sync', 'sync',
'--spec=solutions=%s' % solutions '--spec=solutions=%s' % solutions
]) ])
self.assertEqual(results[2], 0)
with open(output_deps) as f: with open(output_deps) as f:
deps_contents = f.read() deps_contents = f.read()
...@@ -1468,7 +1459,7 @@ class GClientSmokeGIT(GClientSmokeBase): ...@@ -1468,7 +1459,7 @@ class GClientSmokeGIT(GClientSmokeBase):
self.maxDiff = None self.maxDiff = None
self.assertEqual([ self.assertEqual([
'gclient_gn_args_file = "src/repo2/gclient.args"', 'gclient_gn_args_file = "src/repo8/gclient.args"',
"gclient_gn_args = ['str_var']", "gclient_gn_args = ['str_var']",
'deps = {', 'deps = {',
' # src', ' # src',
...@@ -1972,8 +1963,7 @@ class GClientSmokeCipd(GClientSmokeBase): ...@@ -1972,8 +1963,7 @@ class GClientSmokeCipd(GClientSmokeBase):
def testSyncCipd(self): def testSyncCipd(self):
self.gclient(['config', self.git_base + 'repo_14', '--name', 'src']) self.gclient(['config', self.git_base + 'repo_14', '--name', 'src'])
out, err, rc = self.gclient(['sync']) self.gclient(['sync'])
self.assertEqual(0, rc, out + err)
tree = self.mangle_git_tree(('repo_14@1', 'src')) tree = self.mangle_git_tree(('repo_14@1', 'src'))
tree.update({ tree.update({
...@@ -2005,19 +1995,17 @@ class GClientSmokeCipd(GClientSmokeBase): ...@@ -2005,19 +1995,17 @@ class GClientSmokeCipd(GClientSmokeBase):
self.gclient(['config', self.git_base + 'repo_13', '--name', 'src']) self.gclient(['config', self.git_base + 'repo_13', '--name', 'src'])
# repo_13@1 has src/repo12 as a git dependency. # repo_13@1 has src/repo12 as a git dependency.
out, err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 1)]) ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 1)])
self.assertEqual(0, rc, out + err)
tree = self.mangle_git_tree(('repo_13@1', 'src'), tree = self.mangle_git_tree(('repo_13@1', 'src'),
('repo_12@1', 'src/repo12')) ('repo_12@1', 'src/repo12'))
self.assertTree(tree) self.assertTree(tree)
# repo_13@3 has src/repo12 as a cipd dependency. # repo_13@3 has src/repo12 as a cipd dependency.
out, err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 3), ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 3),
'--delete_unversioned_trees']) '--delete_unversioned_trees'])
self.assertEqual(0, rc, out + err)
tree = self.mangle_git_tree(('repo_13@3', 'src')) tree = self.mangle_git_tree(('repo_13@3', 'src'))
tree.update({ tree.update({
...@@ -2037,10 +2025,9 @@ class GClientSmokeCipd(GClientSmokeBase): ...@@ -2037,10 +2025,9 @@ class GClientSmokeCipd(GClientSmokeBase):
self.gclient(['config', self.git_base + 'repo_13', '--name', 'src']) self.gclient(['config', self.git_base + 'repo_13', '--name', 'src'])
# repo_13@3 has src/repo12 as a cipd dependency. # repo_13@3 has src/repo12 as a cipd dependency.
out, err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 3), ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 3),
'--delete_unversioned_trees']) '--delete_unversioned_trees'])
self.assertEqual(0, rc, out + err)
tree = self.mangle_git_tree(('repo_13@3', 'src')) tree = self.mangle_git_tree(('repo_13@3', 'src'))
tree.update({ tree.update({
...@@ -2057,9 +2044,8 @@ class GClientSmokeCipd(GClientSmokeBase): ...@@ -2057,9 +2044,8 @@ class GClientSmokeCipd(GClientSmokeBase):
self.assertTree(tree) self.assertTree(tree)
# repo_13@1 has src/repo12 as a git dependency. # repo_13@1 has src/repo12 as a git dependency.
out, err, rc = self.gclient( self.gclient(
['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 1)]) ['sync', '-v', '-v', '-v', '--revision', self.githash('repo_13', 1)])
self.assertEqual(0, rc, out + err)
tree = self.mangle_git_tree(('repo_13@1', 'src'), tree = self.mangle_git_tree(('repo_13@1', 'src'),
('repo_12@1', 'src/repo12')) ('repo_12@1', 'src/repo12'))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment