| 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 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 join('src', 'third_party', 'prout'), | 267 join('src', 'third_party', 'prout'), |
| 268 FAKE.svn_revs[2]), | 268 FAKE.svn_revs[2]), |
| 269 ) | 269 ) |
| 270 tree[join('src', 'hooked1')] = 'hooked1' | 270 tree[join('src', 'hooked1')] = 'hooked1' |
| 271 self.assertTree(tree) | 271 self.assertTree(tree) |
| 272 | 272 |
| 273 def testRevertAndStatus(self): | 273 def testRevertAndStatus(self): |
| 274 self.gclient(['config', self.svn_base + 'trunk/src/']) | 274 self.gclient(['config', self.svn_base + 'trunk/src/']) |
| 275 # Tested in testSync. | 275 # Tested in testSync. |
| 276 self.gclient(['sync', '--deps', 'mac']) | 276 self.gclient(['sync', '--deps', 'mac']) |
| 277 write(join(self.root_dir, 'src', 'third_party', 'foo', 'hi'), 'Hey!') | 277 write(join(self.root_dir, 'src', 'other', 'hi'), 'Hey!') |
| 278 | 278 |
| 279 results = self.gclient(['status']) | 279 results = self.gclient(['status']) |
| 280 out = results[0].splitlines(False) | 280 out = results[0].splitlines(False) |
| 281 self.assertEquals(out[0], '') | 281 self.assertEquals(out[0], '') |
| 282 self.assertTrue(out[1].startswith('________ running \'svn status\' in \'')) | 282 self.assertTrue(out[1].startswith('________ running \'svn status\' in \'')) |
| 283 self.assertEquals(out[2], '? other') | 283 self.assertEquals(out[2], '? other') |
| 284 self.assertEquals(out[3], '? hooked1') | 284 self.assertEquals(out[3], '? hooked1') |
| 285 self.assertEquals(out[4], '? third_party/foo') | 285 self.assertEquals(out[4], '? third_party/foo') |
| 286 self.assertEquals(out[5], '') | 286 self.assertEquals(out[5], '') |
| 287 self.assertTrue(out[6].startswith('________ running \'svn status\' in \'')) | 287 self.assertTrue(out[6].startswith('________ running \'svn status\' in \'')) |
| (...skipping 24 matching lines...) Expand all Loading... |
| 312 self.assertEquals(out[0], '') | 312 self.assertEquals(out[0], '') |
| 313 self.assertTrue(out[1].startswith('________ running \'svn status\' in \'')) | 313 self.assertTrue(out[1].startswith('________ running \'svn status\' in \'')) |
| 314 self.assertEquals(out[2], '? other') | 314 self.assertEquals(out[2], '? other') |
| 315 self.assertEquals(out[3], '? hooked1') | 315 self.assertEquals(out[3], '? hooked1') |
| 316 self.assertEquals(out[4], '? hooked2') | 316 self.assertEquals(out[4], '? hooked2') |
| 317 self.assertEquals(out[5], '? third_party/foo') | 317 self.assertEquals(out[5], '? third_party/foo') |
| 318 self.assertEquals(6, len(out)) | 318 self.assertEquals(6, len(out)) |
| 319 self.checkString('', results[1]) | 319 self.checkString('', results[1]) |
| 320 self.assertEquals(0, results[2]) | 320 self.assertEquals(0, results[2]) |
| 321 | 321 |
| 322 def testRevertAndStatusDepsOs(self): |
| 323 self.gclient(['config', self.svn_base + 'trunk/src/']) |
| 324 # Tested in testSync. |
| 325 self.gclient(['sync', '--deps', 'mac', '--revision', 'src@1']) |
| 326 write(join(self.root_dir, 'src', 'other', 'hi'), 'Hey!') |
| 327 |
| 328 results = self.gclient(['status', '--deps', 'mac']) |
| 329 out = results[0].splitlines(False) |
| 330 self.assertEquals(out[0], '') |
| 331 self.assertTrue(out[1].startswith('________ running \'svn status\' in \'')) |
| 332 self.assertEquals(out[2], '? other') |
| 333 self.assertEquals(out[3], '? third_party/fpp') |
| 334 self.assertEquals(out[4], '? third_party/prout') |
| 335 self.assertEquals(out[5], '') |
| 336 self.assertTrue(out[6].startswith('________ running \'svn status\' in \'')) |
| 337 self.assertEquals(out[7], '? hi') |
| 338 self.assertEquals(8, len(out)) |
| 339 self.assertEquals('', results[1]) |
| 340 self.assertEquals(0, results[2]) |
| 341 |
| 342 # Revert implies --force implies running hooks without looking at pattern |
| 343 # matching. |
| 344 results = self.gclient(['revert', '--deps', 'mac']) |
| 345 out = results[0].splitlines(False) |
| 346 self.assertEquals(24, len(out)) |
| 347 self.checkString('', results[1]) |
| 348 self.assertEquals(0, results[2]) |
| 349 tree = mangle_svn_tree( |
| 350 (join('trunk', 'src'), 'src', FAKE.svn_revs[1]), |
| 351 (join('trunk', 'third_party', 'foo'), join('src', 'third_party', 'fpp'), |
| 352 FAKE.svn_revs[2]), |
| 353 (join('trunk', 'other'), join('src', 'other'), FAKE.svn_revs[2]), |
| 354 (join('trunk', 'third_party', 'prout'), |
| 355 join('src', 'third_party', 'prout'), |
| 356 FAKE.svn_revs[2]), |
| 357 ) |
| 358 self.assertTree(tree) |
| 359 |
| 360 results = self.gclient(['status', '--deps', 'mac']) |
| 361 out = results[0].splitlines(False) |
| 362 self.assertEquals(out[0], '') |
| 363 self.assertTrue(out[1].startswith('________ running \'svn status\' in \'')) |
| 364 self.assertEquals(out[2], '? other') |
| 365 self.assertEquals(out[3], '? third_party/fpp') |
| 366 self.assertEquals(out[4], '? third_party/prout') |
| 367 self.assertEquals(5, len(out)) |
| 368 self.checkString('', results[1]) |
| 369 self.assertEquals(0, results[2]) |
| 370 |
| 322 def testRunHooks(self): | 371 def testRunHooks(self): |
| 323 self.gclient(['config', self.svn_base + 'trunk/src/']) | 372 self.gclient(['config', self.svn_base + 'trunk/src/']) |
| 324 self.gclient(['sync', '--deps', 'mac']) | 373 self.gclient(['sync', '--deps', 'mac']) |
| 325 results = self.gclient(['runhooks']) | 374 results = self.gclient(['runhooks']) |
| 326 out = results[0].splitlines(False) | 375 out = results[0].splitlines(False) |
| 327 self.assertEquals(4, len(out)) | 376 self.assertEquals(4, len(out)) |
| 328 self.assertEquals(out[0], '') | 377 self.assertEquals(out[0], '') |
| 329 self.assertTrue(re.match(r'^________ running \'.*?python -c ' | 378 self.assertTrue(re.match(r'^________ running \'.*?python -c ' |
| 330 r'open\(\'src/hooked1\', \'w\'\)\.write\(\'hooked1\'\)\' in \'.*', | 379 r'open\(\'src/hooked1\', \'w\'\)\.write\(\'hooked1\'\)\' in \'.*', |
| 331 out[1])) | 380 out[1])) |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 logging.basicConfig(level=logging.DEBUG) | 561 logging.basicConfig(level=logging.DEBUG) |
| 513 if '-l' in sys.argv: | 562 if '-l' in sys.argv: |
| 514 SHOULD_LEAK = True | 563 SHOULD_LEAK = True |
| 515 sys.argv.remove('-l') | 564 sys.argv.remove('-l') |
| 516 FAKE = FakeRepos(TRIAL_DIR, SHOULD_LEAK, True) | 565 FAKE = FakeRepos(TRIAL_DIR, SHOULD_LEAK, True) |
| 517 try: | 566 try: |
| 518 FAKE.setUp() | 567 FAKE.setUp() |
| 519 unittest.main() | 568 unittest.main() |
| 520 finally: | 569 finally: |
| 521 FAKE.tearDown() | 570 FAKE.tearDown() |
| OLD | NEW |