OLD | NEW |
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 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 self.assertTree(tree) | 192 self.assertTree(tree) |
193 | 193 |
194 def SyncAtRev1(self, arg): | 194 def SyncAtRev1(self, arg): |
195 self.gclient(['config', self.svn_base + 'trunk/src/']) | 195 self.gclient(['config', self.svn_base + 'trunk/src/']) |
196 results = self.gclient(['sync', '--deps', 'mac', '-r', arg]) | 196 results = self.gclient(['sync', '--deps', 'mac', '-r', arg]) |
197 out = results[0].splitlines(False) | 197 out = results[0].splitlines(False) |
198 self.assertEquals(19, len(out)) | 198 self.assertEquals(19, len(out)) |
199 self.checkString('', results[1]) | 199 self.checkString('', results[1]) |
200 self.assertEquals(0, results[2]) | 200 self.assertEquals(0, results[2]) |
201 tree = mangle_svn_tree( | 201 tree = mangle_svn_tree( |
202 (join('trunk', 'src'), 'src', FAKE.svn_revs[1]), | 202 (join('trunk', 'src'), 'src', self.FAKE_REPOS.svn_revs[1]), |
203 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'fpp'), | 203 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'fpp'), |
204 FAKE.svn_revs[2]), | 204 self.FAKE_REPOS.svn_revs[2]), |
205 (join('trunk', 'other'), join('src', 'other'), FAKE.svn_revs[2]), | 205 (join('trunk', 'other'), join('src', 'other'), |
| 206 self.FAKE_REPOS.svn_revs[2]), |
206 (join('trunk', 'third_party', 'foo'), | 207 (join('trunk', 'third_party', 'foo'), |
207 join('src', 'third_party', 'prout'), | 208 join('src', 'third_party', 'prout'), |
208 FAKE.svn_revs[2]), | 209 self.FAKE_REPOS.svn_revs[2]), |
209 ) | 210 ) |
210 self.assertTree(tree) | 211 self.assertTree(tree) |
211 | 212 |
212 def testSyncIgnoredSolutionName(self): | 213 def testSyncIgnoredSolutionName(self): |
213 self.SyncAtRev1('ignored@1') | 214 self.SyncAtRev1('ignored@1') |
214 | 215 |
215 def testSyncNoSolutionName(self): | 216 def testSyncNoSolutionName(self): |
216 self.SyncAtRev1('1') | 217 self.SyncAtRev1('1') |
217 | 218 |
218 def testRevertAndStatus(self): | 219 def testRevertAndStatus(self): |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 { | 489 { |
489 'base': self.git_base, | 490 'base': self.git_base, |
490 'hash1': self.FAKE_REPOS.git_hashes['repo_1'][1][0], | 491 'hash1': self.FAKE_REPOS.git_hashes['repo_1'][1][0], |
491 'hash2': self.FAKE_REPOS.git_hashes['repo_2'][0][0], | 492 'hash2': self.FAKE_REPOS.git_hashes['repo_2'][0][0], |
492 'hash3': self.FAKE_REPOS.git_hashes['repo_3'][1][0], | 493 'hash3': self.FAKE_REPOS.git_hashes['repo_3'][1][0], |
493 }) | 494 }) |
494 self.check((out, '', 0), results) | 495 self.check((out, '', 0), results) |
495 | 496 |
496 | 497 |
497 class GClientSmokeBoth(GClientSmokeBase): | 498 class GClientSmokeBoth(GClientSmokeBase): |
| 499 def setUp(self): |
| 500 GClientSmokeBase.setUp(self) |
| 501 self.FAKE_REPOS.setUpSVN() |
| 502 self.FAKE_REPOS.setUpGIT() |
| 503 |
498 def testMultiSolutions(self): | 504 def testMultiSolutions(self): |
499 self.gclient(['config', '--spec', | 505 self.gclient(['config', '--spec', |
500 'solutions=[' | 506 'solutions=[' |
501 '{"name": "src",' | 507 '{"name": "src",' |
502 ' "url": "' + self.svn_base + 'trunk/src/"},' | 508 ' "url": "' + self.svn_base + 'trunk/src/"},' |
503 '{"name": "src-git",' | 509 '{"name": "src-git",' |
504 '"url": "' + self.git_base + 'repo_1"}]']) | 510 '"url": "' + self.git_base + 'repo_1"}]']) |
505 results = self.gclient(['sync', '--deps', 'mac']) | 511 results = self.gclient(['sync', '--deps', 'mac']) |
506 out = results[0].splitlines(False) | 512 out = results[0].splitlines(False) |
507 self.assertEquals(32, len(out)) | 513 self.assertEquals(32, len(out)) |
508 # TODO(maruel): Something's wrong here. git outputs to stderr 'Switched to | 514 # TODO(maruel): Something's wrong here. git outputs to stderr 'Switched to |
509 # new branch \'hash\''. | 515 # new branch \'hash\''. |
510 #self.checkString('', results[1]) | 516 #self.checkString('', results[1]) |
511 self.assertEquals(0, results[2]) | 517 self.assertEquals(0, results[2]) |
512 tree = mangle_git_tree( | 518 tree = mangle_git_tree( |
513 ('src-git', FAKE.git_hashes['repo_1'][1][1]), | 519 ('src-git', self.FAKE_REPOS.git_hashes['repo_1'][1][1]), |
514 (join('src', 'repo2'), FAKE.git_hashes['repo_2'][0][1]), | 520 (join('src', 'repo2'), self.FAKE_REPOS.git_hashes['repo_2'][0][1]), |
515 (join('src', 'repo2', 'repo_renamed'), FAKE.git_hashes['repo_3'][1][1]), | 521 (join('src', 'repo2', 'repo_renamed'), |
| 522 self.FAKE_REPOS.git_hashes['repo_3'][1][1]), |
516 ) | 523 ) |
517 tree.update(mangle_svn_tree( | 524 tree.update(mangle_svn_tree( |
518 (join('trunk', 'src'), 'src', FAKE.svn_revs[2]), | 525 (join('trunk', 'src'), 'src', self.FAKE_REPOS.svn_revs[2]), |
519 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'foo'), | 526 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'foo'), |
520 FAKE.svn_revs[1]), | 527 self.FAKE_REPOS.svn_revs[1]), |
521 (join('trunk', 'other'), join('src', 'other'), FAKE.svn_revs[2]), | 528 (join('trunk', 'other'), join('src', 'other'), |
| 529 self.FAKE_REPOS.svn_revs[2]), |
522 )) | 530 )) |
523 tree[join('src', 'git_hooked1')] = 'git_hooked1' | 531 tree[join('src', 'git_hooked1')] = 'git_hooked1' |
524 tree[join('src', 'git_hooked2')] = 'git_hooked2' | 532 tree[join('src', 'git_hooked2')] = 'git_hooked2' |
525 tree[join('src', 'svn_hooked1')] = 'svn_hooked1' | 533 tree[join('src', 'svn_hooked1')] = 'svn_hooked1' |
526 tree[join('src', 'svn_hooked2')] = 'svn_hooked2' | 534 tree[join('src', 'svn_hooked2')] = 'svn_hooked2' |
527 self.assertTree(tree) | 535 self.assertTree(tree) |
528 | 536 |
529 def testMultiSolutionsMultiRev(self): | 537 def testMultiSolutionsMultiRev(self): |
530 self.gclient(['config', '--spec', | 538 self.gclient(['config', '--spec', |
531 'solutions=[' | 539 'solutions=[' |
532 '{"name": "src",' | 540 '{"name": "src",' |
533 ' "url": "' + self.svn_base + 'trunk/src/"},' | 541 ' "url": "' + self.svn_base + 'trunk/src/"},' |
534 '{"name": "src-git",' | 542 '{"name": "src-git",' |
535 '"url": "' + self.git_base + 'repo_1"}]']) | 543 '"url": "' + self.git_base + 'repo_1"}]']) |
536 results = self.gclient(['sync', '--deps', 'mac', '--revision', '1', '-r', | 544 results = self.gclient([ |
537 'src-git@' + FAKE.git_hashes['repo_1'][0][0]]) | 545 'sync', '--deps', 'mac', '--revision', '1', '-r', |
| 546 'src-git@' + self.FAKE_REPOS.git_hashes['repo_1'][0][0]]) |
538 out = results[0].splitlines(False) | 547 out = results[0].splitlines(False) |
539 self.assertEquals(35, len(out)) | 548 self.assertEquals(35, len(out)) |
540 # TODO(maruel): Something's wrong here. git outputs to stderr 'Switched to | 549 # TODO(maruel): Something's wrong here. git outputs to stderr 'Switched to |
541 # new branch \'hash\''. | 550 # new branch \'hash\''. |
542 #self.checkString('', results[1]) | 551 #self.checkString('', results[1]) |
543 self.assertEquals(0, results[2]) | 552 self.assertEquals(0, results[2]) |
544 tree = mangle_git_tree( | 553 tree = mangle_git_tree( |
545 ('src-git', FAKE.git_hashes['repo_1'][0][1]), | 554 ('src-git', self.FAKE_REPOS.git_hashes['repo_1'][0][1]), |
546 (join('src', 'repo2'), FAKE.git_hashes['repo_2'][1][1]), | 555 (join('src', 'repo2'), self.FAKE_REPOS.git_hashes['repo_2'][1][1]), |
547 (join('src', 'repo2', 'repo3'), FAKE.git_hashes['repo_3'][1][1]), | 556 (join('src', 'repo2', 'repo3'), |
548 (join('src', 'repo4'), FAKE.git_hashes['repo_4'][1][1]), | 557 self.FAKE_REPOS.git_hashes['repo_3'][1][1]), |
| 558 (join('src', 'repo4'), self.FAKE_REPOS.git_hashes['repo_4'][1][1]), |
549 ) | 559 ) |
550 tree.update(mangle_svn_tree( | 560 tree.update(mangle_svn_tree( |
551 (join('trunk', 'src'), 'src', FAKE.svn_revs[1]), | 561 (join('trunk', 'src'), 'src', self.FAKE_REPOS.svn_revs[1]), |
552 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'fpp'), | 562 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'fpp'), |
553 FAKE.svn_revs[2]), | 563 self.FAKE_REPOS.svn_revs[2]), |
554 (join('trunk', 'other'), join('src', 'other'), FAKE.svn_revs[2]), | 564 (join('trunk', 'other'), join('src', 'other'), |
| 565 self.FAKE_REPOS.svn_revs[2]), |
555 (join('trunk', 'third_party', 'foo'), | 566 (join('trunk', 'third_party', 'foo'), |
556 join('src', 'third_party', 'prout'), | 567 join('src', 'third_party', 'prout'), |
557 FAKE.svn_revs[2]), | 568 self.FAKE_REPOS.svn_revs[2]), |
558 )) | 569 )) |
559 self.assertTree(tree) | 570 self.assertTree(tree) |
560 | 571 |
561 | 572 |
562 if __name__ == '__main__': | 573 if __name__ == '__main__': |
563 if '-c' in sys.argv: | 574 if '-c' in sys.argv: |
564 COVERAGE = True | 575 COVERAGE = True |
565 sys.argv.remove('-c') | 576 sys.argv.remove('-c') |
566 if os.path.exists('.coverage'): | 577 if os.path.exists('.coverage'): |
567 os.remove('.coverage') | 578 os.remove('.coverage') |
568 os.environ['COVERAGE_FILE'] = os.path.join( | 579 os.environ['COVERAGE_FILE'] = os.path.join( |
569 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), | 580 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), |
570 '.coverage') | 581 '.coverage') |
571 unittest.main() | 582 unittest.main() |
OLD | NEW |