| 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 |