Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: tests/gclient_smoketest.py

Issue 25322002: Add support in gclient for pre-DEPS hooks (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Revert "Add support in gclient for pre-DEPS hooks" Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « testing_support/fake_repos.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Smoke tests for gclient.py. 6 """Smoke tests for gclient.py.
7 7
8 Shell out 'gclient' and run basic conformance tests. 8 Shell out 'gclient' and run basic conformance tests.
9 9
10 This test assumes GClientSmokeBase.URL_BASE is valid. 10 This test assumes GClientSmokeBase.URL_BASE is valid.
(...skipping 1049 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 ['running', 'running']) 1060 ['running', 'running'])
1061 self.assertEquals(1, len(out[0])) 1061 self.assertEquals(1, len(out[0]))
1062 self.assertEquals(1, len(out[1])) 1062 self.assertEquals(1, len(out[1]))
1063 tree = self.mangle_git_tree(('repo_1@2', 'src'), 1063 tree = self.mangle_git_tree(('repo_1@2', 'src'),
1064 ('repo_2@1', 'src/repo2'), 1064 ('repo_2@1', 'src/repo2'),
1065 ('repo_3@2', 'src/repo2/repo_renamed')) 1065 ('repo_3@2', 'src/repo2/repo_renamed'))
1066 tree['src/git_hooked1'] = 'git_hooked1' 1066 tree['src/git_hooked1'] = 'git_hooked1'
1067 tree['src/git_hooked2'] = 'git_hooked2' 1067 tree['src/git_hooked2'] = 'git_hooked2'
1068 self.assertTree(tree) 1068 self.assertTree(tree)
1069 1069
1070 def testPreDepsHooks(self):
1071 if not self.enabled:
1072 return
1073 self.gclient(['config', self.git_base + 'repo_5', '--name', 'src'])
1074 expectation = [
1075 ('running', self.root_dir), # git clone repo_5
1076 ('running', self.root_dir + '/src'), # git checkout src
1077 ('running', self.root_dir), # pre-deps hook
1078 ('running', self.root_dir), # git clone repo_1
1079 ('running', self.root_dir + '/src/repo1'), # git checkout repo1
1080 ('running', self.root_dir), # git clone repo_1
1081 ('running', self.root_dir + '/src/repo2'), # git checkout repo2
1082 ]
1083 out = self.parseGclient(['sync', '--deps', 'mac', '--jobs=1',
1084 '--revision', 'src@' + self.githash('repo_5', 2)],
1085 expectation)
1086 self.assertEquals(2, len(out[2]))
1087 self.assertEquals('pre-deps hook', out[2][1])
1088 tree = self.mangle_git_tree(('repo_5@2', 'src'),
1089 ('repo_1@2', 'src/repo1'),
1090 ('repo_2@1', 'src/repo2')
1091 )
1092 tree['src/git_pre_deps_hooked'] = 'git_pre_deps_hooked'
1093 self.assertTree(tree)
1094
1095 os.remove(join(self.root_dir, 'src', 'git_pre_deps_hooked'))
1096
1097 # Pre-DEPS hooks don't run with runhooks.
1098 self.gclient(['runhooks', '--deps', 'mac'])
1099 tree = self.mangle_git_tree(('repo_5@2', 'src'),
1100 ('repo_1@2', 'src/repo1'),
1101 ('repo_2@1', 'src/repo2')
1102 )
1103 self.assertTree(tree)
1104
1105 # Pre-DEPS hooks run when syncing with --nohooks.
1106 self.gclient(['sync', '--deps', 'mac', '--nohooks',
1107 '--revision', 'src@' + self.githash('repo_5', 2)])
1108 tree = self.mangle_git_tree(('repo_5@2', 'src'),
1109 ('repo_1@2', 'src/repo1'),
1110 ('repo_2@1', 'src/repo2')
1111 )
1112 tree['src/git_pre_deps_hooked'] = 'git_pre_deps_hooked'
1113 self.assertTree(tree)
1114
1115 os.remove(join(self.root_dir, 'src', 'git_pre_deps_hooked'))
1116
1117 # Pre-DEPS hooks don't run with --noprehooks
1118 self.gclient(['sync', '--deps', 'mac', '--noprehooks',
1119 '--revision', 'src@' + self.githash('repo_5', 2)])
1120 tree = self.mangle_git_tree(('repo_5@2', 'src'),
1121 ('repo_1@2', 'src/repo1'),
1122 ('repo_2@1', 'src/repo2')
1123 )
1124 self.assertTree(tree)
1125
1126 def testPreDepsHooksError(self):
1127 if not self.enabled:
1128 return
1129 self.gclient(['config', self.git_base + 'repo_5', '--name', 'src'])
1130 expectated_stdout = [
1131 ('running', self.root_dir), # git clone repo_5
1132 ('running', self.root_dir + '/src'), # git checkout src
1133 ('running', self.root_dir), # pre-deps hook
1134 ('running', self.root_dir), # pre-deps hook (fails)
1135 ]
1136 expected_stderr = ('Error: Command /usr/bin/python -c import sys; '
1137 'sys.exit(1) returned non-zero exit status 1 in %s\n'
1138 % self.root_dir)
1139 stdout, stderr, retcode = self.gclient(['sync', '--deps', 'mac', '--jobs=1',
1140 '--revision',
1141 'src@' + self.githash('repo_5', 3)])
1142 self.assertEquals(stderr, expected_stderr)
1143 self.assertEquals(2, retcode)
1144 self.checkBlock(stdout, expectated_stdout)
1145
1146 def testRevInfo(self): 1070 def testRevInfo(self):
1147 if not self.enabled: 1071 if not self.enabled:
1148 return 1072 return
1149 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) 1073 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
1150 self.gclient(['sync', '--deps', 'mac']) 1074 self.gclient(['sync', '--deps', 'mac'])
1151 results = self.gclient(['revinfo', '--deps', 'mac']) 1075 results = self.gclient(['revinfo', '--deps', 'mac'])
1152 out = ('src: %(base)srepo_1\n' 1076 out = ('src: %(base)srepo_1\n'
1153 'src/repo2: %(base)srepo_2@%(hash2)s\n' 1077 'src/repo2: %(base)srepo_2@%(hash2)s\n'
1154 'src/repo2/repo_renamed: %(base)srepo_3\n' % 1078 'src/repo2/repo_renamed: %(base)srepo_3\n' %
1155 { 1079 {
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 1368
1445 if '-c' in sys.argv: 1369 if '-c' in sys.argv:
1446 COVERAGE = True 1370 COVERAGE = True
1447 sys.argv.remove('-c') 1371 sys.argv.remove('-c')
1448 if os.path.exists('.coverage'): 1372 if os.path.exists('.coverage'):
1449 os.remove('.coverage') 1373 os.remove('.coverage')
1450 os.environ['COVERAGE_FILE'] = os.path.join( 1374 os.environ['COVERAGE_FILE'] = os.path.join(
1451 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 1375 os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
1452 '.coverage') 1376 '.coverage')
1453 unittest.main() 1377 unittest.main()
OLDNEW
« no previous file with comments | « testing_support/fake_repos.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698