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

Side by Side Diff: tests/gclient_smoketest.py

Issue 2699005: Add more forced revisions in fake_repos.py and adds a recursive DEPS. (Closed)
Patch Set: Fix -l and standalone fake_repos.py usage Created 10 years, 6 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 | « tests/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/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 # recreated. 211 # recreated.
212 os.remove(join(self.root_dir, 'src', 'svn_hooked1')) 212 os.remove(join(self.root_dir, 'src', 'svn_hooked1'))
213 213
214 # Test incremental versioned sync: sync backward. 214 # Test incremental versioned sync: sync backward.
215 self.parseGclient(['sync', '--revision', 'src@1', '--deps', 'mac', 215 self.parseGclient(['sync', '--revision', 'src@1', '--deps', 'mac',
216 '--delete_unversioned_trees'], 216 '--delete_unversioned_trees'],
217 ['running', 'running', 'running', 'running', 'deleting']) 217 ['running', 'running', 'running', 'running', 'deleting'])
218 tree = self.mangle_svn_tree( 218 tree = self.mangle_svn_tree(
219 ('trunk/src@1', 'src'), 219 ('trunk/src@1', 'src'),
220 ('trunk/third_party/foo@2', 'src/third_party/fpp'), 220 ('trunk/third_party/foo@2', 'src/third_party/fpp'),
221 ('trunk/other@2', 'src/other'), 221 ('trunk/other@1', 'src/other'),
222 ('trunk/third_party/foo@2', 'src/third_party/prout')) 222 ('trunk/third_party/foo@2', 'src/third_party/prout'))
223 self.assertTree(tree) 223 self.assertTree(tree)
224 # Test incremental sync: delete-unversioned_trees isn't there. 224 # Test incremental sync: delete-unversioned_trees isn't there.
225 self.parseGclient(['sync', '--deps', 'mac'], 225 self.parseGclient(['sync', '--deps', 'mac'],
226 ['running', 'running', 'running', 'running']) 226 ['running', 'running', 'running', 'running'])
227 tree = self.mangle_svn_tree( 227 tree = self.mangle_svn_tree(
228 ('trunk/src@2', 'src'), 228 ('trunk/src@2', 'src'),
229 ('trunk/third_party/foo@2', 'src/third_party/fpp'), 229 ('trunk/third_party/foo@2', 'src/third_party/fpp'),
230 ('trunk/third_party/foo@1', 'src/third_party/foo'), 230 ('trunk/third_party/foo@1', 'src/third_party/foo'),
231 ('trunk/other@2', 'src/other'), 231 ('trunk/other@2', 'src/other'),
(...skipping 17 matching lines...) Expand all
249 self.assertTree(tree) 249 self.assertTree(tree)
250 250
251 def testSyncNoSolutionName(self): 251 def testSyncNoSolutionName(self):
252 # When no solution name is provided, gclient uses the first solution listed. 252 # When no solution name is provided, gclient uses the first solution listed.
253 self.gclient(['config', self.svn_base + 'trunk/src/']) 253 self.gclient(['config', self.svn_base + 'trunk/src/'])
254 self.parseGclient(['sync', '--deps', 'mac', '-r', '1'], 254 self.parseGclient(['sync', '--deps', 'mac', '-r', '1'],
255 ['running', 'running', 'running', 'running']) 255 ['running', 'running', 'running', 'running'])
256 tree = self.mangle_svn_tree( 256 tree = self.mangle_svn_tree(
257 ('trunk/src@1', 'src'), 257 ('trunk/src@1', 'src'),
258 ('trunk/third_party/foo@2', 'src/third_party/fpp'), 258 ('trunk/third_party/foo@2', 'src/third_party/fpp'),
259 ('trunk/other@2', 'src/other'), 259 ('trunk/other@1', 'src/other'),
260 ('trunk/third_party/foo@2', 'src/third_party/prout')) 260 ('trunk/third_party/foo@2', 'src/third_party/prout'))
261 self.assertTree(tree) 261 self.assertTree(tree)
262 262
263 def testRevertAndStatus(self): 263 def testRevertAndStatus(self):
264 self.gclient(['config', self.svn_base + 'trunk/src/']) 264 self.gclient(['config', self.svn_base + 'trunk/src/'])
265 # Tested in testSync. 265 # Tested in testSync.
266 self.gclient(['sync', '--deps', 'mac']) 266 self.gclient(['sync', '--deps', 'mac'])
267 write(join(self.root_dir, 'src', 'other', 'hi'), 'Hey!') 267 write(join(self.root_dir, 'src', 'other', 'hi'), 'Hey!')
268 268
269 out = self.parseGclient(['status', '--deps', 'mac'], 269 out = self.parseGclient(['status', '--deps', 'mac'],
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 # TODO(maruel): In general, gclient revert output is wrong. It should output 339 # TODO(maruel): In general, gclient revert output is wrong. It should output
340 # the file list after some ___ running 'svn status' 340 # the file list after some ___ running 'svn status'
341 results = self.gclient(['revert', '--deps', 'mac']) 341 results = self.gclient(['revert', '--deps', 'mac'])
342 out = self.splitBlock(results[0]) 342 out = self.splitBlock(results[0])
343 self.assertEquals(7, len(out)) 343 self.assertEquals(7, len(out))
344 self.checkString('', results[1]) 344 self.checkString('', results[1])
345 self.assertEquals(0, results[2]) 345 self.assertEquals(0, results[2])
346 tree = self.mangle_svn_tree( 346 tree = self.mangle_svn_tree(
347 ('trunk/src@1', 'src'), 347 ('trunk/src@1', 'src'),
348 ('trunk/third_party/foo@2', 'src/third_party/fpp'), 348 ('trunk/third_party/foo@2', 'src/third_party/fpp'),
349 ('trunk/other@2', 'src/other'), 349 ('trunk/other@1', 'src/other'),
350 ('trunk/third_party/prout@2', 'src/third_party/prout')) 350 ('trunk/third_party/prout@2', 'src/third_party/prout'))
351 self.assertTree(tree) 351 self.assertTree(tree)
352 352
353 out = self.parseGclient(['status', '--deps', 'mac'], 353 out = self.parseGclient(['status', '--deps', 'mac'],
354 [['running', join(self.root_dir, 'src')]]) 354 [['running', join(self.root_dir, 'src')]])
355 out = self.svnBlockCleanup(out) 355 out = self.svnBlockCleanup(out)
356 self.checkString('other', out[0][1]) 356 self.checkString('other', out[0][1])
357 self.checkString(join('third_party', 'fpp'), out[0][2]) 357 self.checkString(join('third_party', 'fpp'), out[0][2])
358 self.checkString(join('third_party', 'prout'), out[0][3]) 358 self.checkString(join('third_party', 'prout'), out[0][3])
359 self.assertEquals(4, len(out[0])) 359 self.assertEquals(4, len(out[0]))
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 'src@' + self.githash('repo_1', 1), 417 'src@' + self.githash('repo_1', 1),
418 '--deps', 'mac', '--delete_unversioned_trees']) 418 '--deps', 'mac', '--delete_unversioned_trees'])
419 # gclient's git output is unparsable and all messed up. Don't look at it, it 419 # gclient's git output is unparsable and all messed up. Don't look at it, it
420 # hurts the smoke test's eyes. Add "print out" here if you want to dare to 420 # hurts the smoke test's eyes. Add "print out" here if you want to dare to
421 # parse it. So just assert it's not empty and look at the result on the file 421 # parse it. So just assert it's not empty and look at the result on the file
422 # system instead. 422 # system instead.
423 self.assertEquals('', results[1]) 423 self.assertEquals('', results[1])
424 self.assertEquals(0, results[2]) 424 self.assertEquals(0, results[2])
425 tree = self.mangle_git_tree(('repo_1@1', 'src'), 425 tree = self.mangle_git_tree(('repo_1@1', 'src'),
426 ('repo_2@2', 'src/repo2'), 426 ('repo_2@2', 'src/repo2'),
427 ('repo_3@2', 'src/repo2/repo3'), 427 ('repo_3@1', 'src/repo2/repo3'),
428 ('repo_4@2', 'src/repo4')) 428 ('repo_4@2', 'src/repo4'))
429 tree['src/git_hooked2'] = 'git_hooked2' 429 tree['src/git_hooked2'] = 'git_hooked2'
430 self.assertTree(tree) 430 self.assertTree(tree)
431 # Test incremental sync: delete-unversioned_trees isn't there. 431 # Test incremental sync: delete-unversioned_trees isn't there.
432 results = self.gclient(['sync', '--deps', 'mac']) 432 results = self.gclient(['sync', '--deps', 'mac'])
433 # See comment above about parsing gclient's git output. 433 # See comment above about parsing gclient's git output.
434 self.assertEquals('', results[1]) 434 self.assertEquals('', results[1])
435 self.assertEquals(0, results[2]) 435 self.assertEquals(0, results[2])
436 tree = self.mangle_git_tree(('repo_1@2', 'src'), 436 tree = self.mangle_git_tree(('repo_1@2', 'src'),
437 ('repo_2@1', 'src/repo2'), 437 ('repo_2@1', 'src/repo2'),
438 ('repo_3@2', 'src/repo2/repo3'), 438 ('repo_3@1', 'src/repo2/repo3'),
439 ('repo_3@2', 'src/repo2/repo_renamed'), 439 ('repo_3@2', 'src/repo2/repo_renamed'),
440 ('repo_4@2', 'src/repo4')) 440 ('repo_4@2', 'src/repo4'))
441 tree['src/git_hooked1'] = 'git_hooked1' 441 tree['src/git_hooked1'] = 'git_hooked1'
442 tree['src/git_hooked2'] = 'git_hooked2' 442 tree['src/git_hooked2'] = 'git_hooked2'
443 self.assertTree(tree) 443 self.assertTree(tree)
444 444
445 def testSyncIgnoredSolutionName(self): 445 def testSyncIgnoredSolutionName(self):
446 """TODO(maruel): This will become an error soon.""" 446 """TODO(maruel): This will become an error soon."""
447 if not self.enabled: 447 if not self.enabled:
448 return 448 return
(...skipping 25 matching lines...) Expand all
474 results = self.gclient(['sync', '--deps', 'mac', 474 results = self.gclient(['sync', '--deps', 'mac',
475 '--revision', self.githash('repo_1', 1)]) 475 '--revision', self.githash('repo_1', 1)])
476 self.checkBlock(results[0], []) 476 self.checkBlock(results[0], [])
477 # TODO(maruel): git shouldn't output to stderr... 477 # TODO(maruel): git shouldn't output to stderr...
478 #self.checkString('Switched to a new branch \'%s\'\n' 478 #self.checkString('Switched to a new branch \'%s\'\n'
479 # % self.githash('repo_1', 1), results[1]) 479 # % self.githash('repo_1', 1), results[1])
480 self.checkString('', results[1]) 480 self.checkString('', results[1])
481 self.assertEquals(0, results[2]) 481 self.assertEquals(0, results[2])
482 tree = self.mangle_git_tree(('repo_1@1', 'src'), 482 tree = self.mangle_git_tree(('repo_1@1', 'src'),
483 ('repo_2@2', 'src/repo2'), 483 ('repo_2@2', 'src/repo2'),
484 ('repo_3@2', 'src/repo2/repo3'), 484 ('repo_3@1', 'src/repo2/repo3'),
485 ('repo_4@2', 'src/repo4')) 485 ('repo_4@2', 'src/repo4'))
486 self.assertTree(tree) 486 self.assertTree(tree)
487 487
488 def testRevertAndStatus(self): 488 def testRevertAndStatus(self):
489 """TODO(maruel): Remove this line once this test is fixed.""" 489 """TODO(maruel): Remove this line once this test is fixed."""
490 if not self.enabled: 490 if not self.enabled:
491 return 491 return
492 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) 492 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
493 # Tested in testSync. 493 # Tested in testSync.
494 self.gclient(['sync', '--deps', 'mac']) 494 self.gclient(['sync', '--deps', 'mac'])
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 '"url": "' + self.git_base + 'repo_1"}]']) 615 '"url": "' + self.git_base + 'repo_1"}]'])
616 results = self.gclient(['sync', '--deps', 'mac', '--revision', '1', 616 results = self.gclient(['sync', '--deps', 'mac', '--revision', '1',
617 '-r', 'src-git@' + self.githash('repo_1', 1)]) 617 '-r', 'src-git@' + self.githash('repo_1', 1)])
618 self.checkBlock(results[0], ['running', 'running', 'running', 'running']) 618 self.checkBlock(results[0], ['running', 'running', 'running', 'running'])
619 # TODO(maruel): Something's wrong here. git outputs to stderr 'Switched to 619 # TODO(maruel): Something's wrong here. git outputs to stderr 'Switched to
620 # new branch \'hash\''. 620 # new branch \'hash\''.
621 #self.checkString('', results[1]) 621 #self.checkString('', results[1])
622 self.assertEquals(0, results[2]) 622 self.assertEquals(0, results[2])
623 tree = self.mangle_git_tree(('repo_1@1', 'src-git'), 623 tree = self.mangle_git_tree(('repo_1@1', 'src-git'),
624 ('repo_2@2', 'src/repo2'), 624 ('repo_2@2', 'src/repo2'),
625 ('repo_3@2', 'src/repo2/repo3'), 625 ('repo_3@1', 'src/repo2/repo3'),
626 ('repo_4@2', 'src/repo4')) 626 ('repo_4@2', 'src/repo4'))
627 tree.update(self.mangle_svn_tree( 627 tree.update(self.mangle_svn_tree(
628 ('trunk/src@1', 'src'), 628 ('trunk/src@1', 'src'),
629 ('trunk/third_party/foo@2', 'src/third_party/fpp'), 629 ('trunk/third_party/foo@2', 'src/third_party/fpp'),
630 ('trunk/other@2', 'src/other'), 630 ('trunk/other@1', 'src/other'),
631 ('trunk/third_party/foo@2', 'src/third_party/prout'))) 631 ('trunk/third_party/foo@2', 'src/third_party/prout')))
632 self.assertTree(tree) 632 self.assertTree(tree)
633 633
634 634
635 if __name__ == '__main__': 635 if __name__ == '__main__':
636 if '-c' in sys.argv: 636 if '-c' in sys.argv:
637 COVERAGE = True 637 COVERAGE = True
638 sys.argv.remove('-c') 638 sys.argv.remove('-c')
639 if os.path.exists('.coverage'): 639 if os.path.exists('.coverage'):
640 os.remove('.coverage') 640 os.remove('.coverage')
641 os.environ['COVERAGE_FILE'] = os.path.join( 641 os.environ['COVERAGE_FILE'] = os.path.join(
642 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 642 os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
643 '.coverage') 643 '.coverage')
644 unittest.main() 644 unittest.main()
OLDNEW
« no previous file with comments | « tests/fake_repos.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698