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

Side by Side Diff: tests/gclient_smoketest.py

Issue 2099153003: Switch gclient config to default to unmanaged mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Update tests Created 4 years, 5 months 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 | « gclient.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 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 results = self.gclient(cmd) 202 results = self.gclient(cmd)
203 self.check(('', '', 0), results) 203 self.check(('', '', 0), results)
204 self.checkString(expected, open(p, 'rU').read()) 204 self.checkString(expected, open(p, 'rU').read())
205 205
206 test(['config', self.svn_base + 'trunk/src/'], 206 test(['config', self.svn_base + 'trunk/src/'],
207 ('solutions = [\n' 207 ('solutions = [\n'
208 ' {\n' 208 ' {\n'
209 ' "name" : "src",\n' 209 ' "name" : "src",\n'
210 ' "url" : "%strunk/src",\n' 210 ' "url" : "%strunk/src",\n'
211 ' "deps_file" : "DEPS",\n' 211 ' "deps_file" : "DEPS",\n'
212 ' "managed" : True,\n' 212 ' "managed" : False,\n'
213 ' "custom_deps" : {},\n' 213 ' "custom_deps" : {},\n'
214 ' },\n' 214 ' },\n'
215 ']\n' 215 ']\n'
216 'cache_dir = None\n') % self.svn_base) 216 'cache_dir = None\n') % self.svn_base)
217 217
218 test(['config', self.git_base + 'repo_1', '--name', 'src'], 218 test(['config', self.git_base + 'repo_1', '--name', 'src'],
219 ('solutions = [\n' 219 ('solutions = [\n'
220 ' {\n' 220 ' {\n'
221 ' "name" : "src",\n' 221 ' "name" : "src",\n'
222 ' "url" : "%srepo_1",\n' 222 ' "url" : "%srepo_1",\n'
223 ' "deps_file" : "DEPS",\n' 223 ' "deps_file" : "DEPS",\n'
224 ' "managed" : True,\n' 224 ' "managed" : False,\n'
225 ' "custom_deps" : {},\n' 225 ' "custom_deps" : {},\n'
226 ' },\n' 226 ' },\n'
227 ']\n' 227 ']\n'
228 'cache_dir = None\n') % self.git_base) 228 'cache_dir = None\n') % self.git_base)
229 229
230 test(['config', 'foo', '--deps', 'blah'], 230 test(['config', 'foo', '--deps', 'blah'],
231 'solutions = [\n' 231 'solutions = [\n'
232 ' {\n' 232 ' {\n'
233 ' "name" : "foo",\n' 233 ' "name" : "foo",\n'
234 ' "url" : "foo",\n' 234 ' "url" : "foo",\n'
235 ' "deps_file" : "blah",\n' 235 ' "deps_file" : "blah",\n'
236 ' "managed" : True,\n' 236 ' "managed" : False,\n'
237 ' "custom_deps" : {},\n' 237 ' "custom_deps" : {},\n'
238 ' },\n' 238 ' },\n'
239 ']\n' 239 ']\n'
240 'cache_dir = None\n') 240 'cache_dir = None\n')
241 241
242 test(['config', '--spec', '["blah blah"]'], '["blah blah"]') 242 test(['config', '--spec', '["blah blah"]'], '["blah blah"]')
243 243
244 os.remove(p) 244 os.remove(p)
245 results = self.gclient(['config', 'foo', 'faa', 'fuu']) 245 results = self.gclient(['config', 'foo', 'faa', 'fuu'])
246 err = ('Usage: gclient.py config [options] [url]\n\n' 246 err = ('Usage: gclient.py config [options] [url]\n\n'
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 os.mkdir(src) 280 os.mkdir(src)
281 res = self.gclient(['status', '--jobs', '1'], src) 281 res = self.gclient(['status', '--jobs', '1'], src)
282 self.checkBlock(res[0], [('running', deps), ('running', src)]) 282 self.checkBlock(res[0], [('running', deps), ('running', src)])
283 283
284 284
285 class GClientSmokeGIT(GClientSmokeBase): 285 class GClientSmokeGIT(GClientSmokeBase):
286 def setUp(self): 286 def setUp(self):
287 super(GClientSmokeGIT, self).setUp() 287 super(GClientSmokeGIT, self).setUp()
288 self.enabled = self.FAKE_REPOS.set_up_git() 288 self.enabled = self.FAKE_REPOS.set_up_git()
289 289
290 def testSync(self): 290 def testSyncManaged(self):
291 if not self.enabled: 291 if not self.enabled:
292 return 292 return
293 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) 293 self.gclient([
294 'config', self.git_base + 'repo_1', '--name', 'src', '--managed'])
294 # Test unversioned checkout. 295 # Test unversioned checkout.
295 self.parseGclient( 296 self.parseGclient(
296 ['sync', '--deps', 'mac', '--jobs', '1'], 297 ['sync', '--deps', 'mac', '--jobs', '8'],
297 ['running', 'running']) 298 ['running', 'running'])
298 # TODO(maruel): http://crosbug.com/3582 hooks run even if not matching, must 299 # TODO(maruel): http://crosbug.com/3582 hooks run even if not matching, must
299 # add sync parsing to get the list of updated files. 300 # add sync parsing to get the list of updated files.
300 tree = self.mangle_git_tree(('repo_1@2', 'src'), 301 tree = self.mangle_git_tree(('repo_1@2', 'src'),
301 ('repo_2@1', 'src/repo2'), 302 ('repo_2@1', 'src/repo2'),
302 ('repo_3@2', 'src/repo2/repo_renamed')) 303 ('repo_3@2', 'src/repo2/repo_renamed'))
303 tree['src/git_hooked1'] = 'git_hooked1' 304 tree['src/git_hooked1'] = 'git_hooked1'
304 tree['src/git_hooked2'] = 'git_hooked2' 305 tree['src/git_hooked2'] = 'git_hooked2'
305 self.assertTree(tree) 306 self.assertTree(tree)
306 307
307 # Manually remove git_hooked1 before synching to make sure it's not 308 # Manually remove git_hooked1 before synching to make sure it's not
308 # recreated. 309 # recreated.
309 os.remove(join(self.root_dir, 'src', 'git_hooked1')) 310 os.remove(join(self.root_dir, 'src', 'git_hooked1'))
310 311
311 # Test incremental versioned sync: sync backward. 312 # Test incremental versioned sync: sync backward.
312 self.parseGclient( 313 self.parseGclient(
313 ['sync', '--jobs', '1', '--revision', 314 ['sync', '--jobs', '1', '--revision',
314 'src@' + self.githash('repo_1', 1), 315 'src@' + self.githash('repo_1', 1), '--jobs', '1',
315 '--deps', 'mac', '--delete_unversioned_trees'], 316 '--deps', 'mac', '--delete_unversioned_trees'],
316 ['deleting']) 317 ['deleting'])
317 tree = self.mangle_git_tree(('repo_1@1', 'src'), 318 tree = self.mangle_git_tree(('repo_1@1', 'src'),
318 ('repo_2@2', 'src/repo2'), 319 ('repo_2@2', 'src/repo2'),
319 ('repo_3@1', 'src/repo2/repo3'), 320 ('repo_3@1', 'src/repo2/repo3'),
320 ('repo_4@2', 'src/repo4')) 321 ('repo_4@2', 'src/repo4'))
321 tree['src/git_hooked2'] = 'git_hooked2' 322 tree['src/git_hooked2'] = 'git_hooked2'
322 self.assertTree(tree) 323 self.assertTree(tree)
323 # Test incremental sync: delete-unversioned_trees isn't there. 324 # Test incremental sync: delete-unversioned_trees isn't there.
324 self.parseGclient( 325 self.parseGclient(
325 ['sync', '--deps', 'mac', '--jobs', '1'], 326 ['sync', '--deps', 'mac', '--jobs', '8'],
326 ['running', 'running']) 327 ['running', 'running'])
327 tree = self.mangle_git_tree(('repo_1@2', 'src'), 328 tree = self.mangle_git_tree(('repo_1@2', 'src'),
328 ('repo_2@1', 'src/repo2'), 329 ('repo_2@1', 'src/repo2'),
329 ('repo_3@1', 'src/repo2/repo3'), 330 ('repo_3@1', 'src/repo2/repo3'),
330 ('repo_3@2', 'src/repo2/repo_renamed'), 331 ('repo_3@2', 'src/repo2/repo_renamed'),
331 ('repo_4@2', 'src/repo4')) 332 ('repo_4@2', 'src/repo4'))
332 tree['src/git_hooked1'] = 'git_hooked1' 333 tree['src/git_hooked1'] = 'git_hooked1'
333 tree['src/git_hooked2'] = 'git_hooked2' 334 tree['src/git_hooked2'] = 'git_hooked2'
334 self.assertTree(tree) 335 self.assertTree(tree)
335 336
(...skipping 23 matching lines...) Expand all
359 self.parseGclient( 360 self.parseGclient(
360 ['sync', '--deps', 'mac', '--jobs', '1', 361 ['sync', '--deps', 'mac', '--jobs', '1',
361 '--revision', self.githash('repo_1', 1)], 362 '--revision', self.githash('repo_1', 1)],
362 []) 363 [])
363 tree = self.mangle_git_tree(('repo_1@1', 'src'), 364 tree = self.mangle_git_tree(('repo_1@1', 'src'),
364 ('repo_2@2', 'src/repo2'), 365 ('repo_2@2', 'src/repo2'),
365 ('repo_3@1', 'src/repo2/repo3'), 366 ('repo_3@1', 'src/repo2/repo3'),
366 ('repo_4@2', 'src/repo4')) 367 ('repo_4@2', 'src/repo4'))
367 self.assertTree(tree) 368 self.assertTree(tree)
368 369
369 def testSyncJobs(self):
370 if not self.enabled:
371 return
372 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
373 # Test unversioned checkout.
374 self.parseGclient(
375 ['sync', '--deps', 'mac', '--jobs', '8'],
376 ['running', 'running'],
377 untangle=True)
378 # TODO(maruel): http://crosbug.com/3582 hooks run even if not matching, must
379 # add sync parsing to get the list of updated files.
380 tree = self.mangle_git_tree(('repo_1@2', 'src'),
381 ('repo_2@1', 'src/repo2'),
382 ('repo_3@2', 'src/repo2/repo_renamed'))
383 tree['src/git_hooked1'] = 'git_hooked1'
384 tree['src/git_hooked2'] = 'git_hooked2'
385 self.assertTree(tree)
386
387 # Manually remove git_hooked1 before synching to make sure it's not
388 # recreated.
389 os.remove(join(self.root_dir, 'src', 'git_hooked1'))
390
391 # Test incremental versioned sync: sync backward.
392 # Use --jobs 1 otherwise the order is not deterministic.
393 self.parseGclient(
394 ['sync', '--revision', 'src@' + self.githash('repo_1', 1),
395 '--deps', 'mac', '--delete_unversioned_trees', '--jobs', '1'],
396 ['deleting'],
397 untangle=True)
398 tree = self.mangle_git_tree(('repo_1@1', 'src'),
399 ('repo_2@2', 'src/repo2'),
400 ('repo_3@1', 'src/repo2/repo3'),
401 ('repo_4@2', 'src/repo4'))
402 tree['src/git_hooked2'] = 'git_hooked2'
403 self.assertTree(tree)
404 # Test incremental sync: delete-unversioned_trees isn't there.
405 self.parseGclient(
406 ['sync', '--deps', 'mac', '--jobs', '8'],
407 ['running', 'running'],
408 untangle=True)
409 tree = self.mangle_git_tree(('repo_1@2', 'src'),
410 ('repo_2@1', 'src/repo2'),
411 ('repo_3@1', 'src/repo2/repo3'),
412 ('repo_3@2', 'src/repo2/repo_renamed'),
413 ('repo_4@2', 'src/repo4'))
414 tree['src/git_hooked1'] = 'git_hooked1'
415 tree['src/git_hooked2'] = 'git_hooked2'
416 self.assertTree(tree)
417
418 def testRunHooks(self): 370 def testRunHooks(self):
419 if not self.enabled: 371 if not self.enabled:
420 return 372 return
421 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) 373 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
422 self.gclient(['sync', '--deps', 'mac']) 374 self.gclient(['sync', '--deps', 'mac'])
423 tree = self.mangle_git_tree(('repo_1@2', 'src'), 375 tree = self.mangle_git_tree(('repo_1@2', 'src'),
424 ('repo_2@1', 'src/repo2'), 376 ('repo_2@1', 'src/repo2'),
425 ('repo_3@2', 'src/repo2/repo_renamed')) 377 ('repo_3@2', 'src/repo2/repo_renamed'))
426 tree['src/git_hooked1'] = 'git_hooked1' 378 tree['src/git_hooked1'] = 'git_hooked1'
427 tree['src/git_hooked2'] = 'git_hooked2' 379 tree['src/git_hooked2'] = 'git_hooked2'
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 840
889 if '-c' in sys.argv: 841 if '-c' in sys.argv:
890 COVERAGE = True 842 COVERAGE = True
891 sys.argv.remove('-c') 843 sys.argv.remove('-c')
892 if os.path.exists('.coverage'): 844 if os.path.exists('.coverage'):
893 os.remove('.coverage') 845 os.remove('.coverage')
894 os.environ['COVERAGE_FILE'] = os.path.join( 846 os.environ['COVERAGE_FILE'] = os.path.join(
895 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 847 os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
896 '.coverage') 848 '.coverage')
897 unittest.main() 849 unittest.main()
OLDNEW
« no previous file with comments | « gclient.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698