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 |