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

Side by Side Diff: tests/isolate_smoke_test.py

Issue 51383003: Report all swarming and isolate fatal errors in a consistent way. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/swarm_client
Patch Set: make isolate_smoke_test less strict regarding exact contents of stderr Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « swarming.py ('k') | tests/run_isolated_smoke_test.py » ('j') | 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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 import cStringIO 6 import cStringIO
7 import hashlib 7 import hashlib
8 import json 8 import json
9 import logging 9 import logging
10 import os 10 import os
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 try: 357 try:
358 self._execute(mode, 'missing_trailing_slash.isolate', [], True) 358 self._execute(mode, 'missing_trailing_slash.isolate', [], True)
359 self.fail() 359 self.fail()
360 except subprocess.CalledProcessError as e: 360 except subprocess.CalledProcessError as e:
361 self.assertEqual('', e.output) 361 self.assertEqual('', e.output)
362 out = e.stderr 362 out = e.stderr
363 self._expect_no_tree() 363 self._expect_no_tree()
364 self._expect_no_result() 364 self._expect_no_result()
365 root = file_path.get_native_path_case(unicode(ROOT_DIR)) 365 root = file_path.get_native_path_case(unicode(ROOT_DIR))
366 expected = ( 366 expected = (
367 '\n' 367 'Input directory %s must have a trailing slash' %
368 'Error: Input directory %s must have a trailing slash\n' %
369 os.path.join(root, 'tests', 'isolate', 'files1') 368 os.path.join(root, 'tests', 'isolate', 'files1')
370 ) 369 )
371 self.assertEqual(expected, out) 370 self.assertIn(expected, out)
372 371
373 def _test_non_existent(self, mode): 372 def _test_non_existent(self, mode):
374 try: 373 try:
375 self._execute(mode, 'non_existent.isolate', [], True) 374 self._execute(mode, 'non_existent.isolate', [], True)
376 self.fail() 375 self.fail()
377 except subprocess.CalledProcessError as e: 376 except subprocess.CalledProcessError as e:
378 self.assertEqual('', e.output) 377 self.assertEqual('', e.output)
379 out = e.stderr 378 out = e.stderr
380 self._expect_no_tree() 379 self._expect_no_tree()
381 self._expect_no_result() 380 self._expect_no_result()
382 root = file_path.get_native_path_case(unicode(ROOT_DIR)) 381 root = file_path.get_native_path_case(unicode(ROOT_DIR))
383 expected = ( 382 expected = (
384 '\n' 383 'Input file %s doesn\'t exist' %
385 'Error: Input file %s doesn\'t exist\n' %
386 os.path.join(root, 'tests', 'isolate', 'A_file_that_do_not_exist') 384 os.path.join(root, 'tests', 'isolate', 'A_file_that_do_not_exist')
387 ) 385 )
388 self.assertEqual(expected, out) 386 self.assertIn(expected, out)
389 387
390 def _test_all_items_invalid(self, mode): 388 def _test_all_items_invalid(self, mode):
391 out = self._execute(mode, 'all_items_invalid.isolate', 389 out = self._execute(mode, 'all_items_invalid.isolate',
392 ['--ignore_broken_item'], True) 390 ['--ignore_broken_item'], True)
393 self._expect_results(['empty.py'], None, None, None) 391 self._expect_results(['empty.py'], None, None, None)
394 392
395 return out or '' 393 return out or ''
396 394
397 395
398 class Isolate(unittest.TestCase): 396 class Isolate(unittest.TestCase):
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 833
836 def test_no_run(self): 834 def test_no_run(self):
837 try: 835 try:
838 self._execute('trace', 'no_run.isolate', [], True) 836 self._execute('trace', 'no_run.isolate', [], True)
839 self.fail() 837 self.fail()
840 except subprocess.CalledProcessError, e: 838 except subprocess.CalledProcessError, e:
841 out = e.output 839 out = e.output
842 err = e.stderr 840 err = e.stderr
843 self._expect_no_tree() 841 self._expect_no_tree()
844 self._expect_no_result() 842 self._expect_no_result()
845 expected = '\nError: No command to run.\n' 843 expected = 'No command to run.'
846 self.assertEqual('', out) 844 self.assertEqual('', out)
847 self.assertEqual(expected, err) 845 self.assertIn(expected, err)
848 846
849 # TODO(csharp): Disabled until crbug.com/150823 is fixed. 847 # TODO(csharp): Disabled until crbug.com/150823 is fixed.
850 def do_not_test_touch_only(self): 848 def do_not_test_touch_only(self):
851 out = self._execute( 849 out = self._execute(
852 'trace', 'touch_only.isolate', ['-V', 'FLAG', 'trace'], True) 850 'trace', 'touch_only.isolate', ['-V', 'FLAG', 'trace'], True)
853 self.assertEqual('', out) 851 self.assertEqual('', out)
854 self._expect_no_tree() 852 self._expect_no_tree()
855 empty = os.path.join('files1', 'test_file1.txt') 853 empty = os.path.join('files1', 'test_file1.txt')
856 self._expect_results( 854 self._expect_results(
857 ['touch_only.py', 'trace'], None, {u'FLAG': u'trace'}, empty) 855 ['touch_only.py', 'trace'], None, {u'FLAG': u'trace'}, empty)
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 self.assertEqual('Simply works.\n', stdout) 1166 self.assertEqual('Simply works.\n', stdout)
1169 self.assertEqual(0, proc.returncode) 1167 self.assertEqual(0, proc.returncode)
1170 1168
1171 1169
1172 if __name__ == '__main__': 1170 if __name__ == '__main__':
1173 VERBOSE = '-v' in sys.argv 1171 VERBOSE = '-v' in sys.argv
1174 logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR) 1172 logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR)
1175 if VERBOSE: 1173 if VERBOSE:
1176 unittest.TestCase.maxDiff = None 1174 unittest.TestCase.maxDiff = None
1177 unittest.main() 1175 unittest.main()
OLDNEW
« no previous file with comments | « swarming.py ('k') | tests/run_isolated_smoke_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698