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

Side by Side Diff: scripts/slave/recipe_modules/chromium/steps.py

Issue 1104533002: Add recipe for split AMP/local CQ. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Remove device_os 4.4.3 and device_timeout. Created 5 years, 6 months 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
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import re 5 import re
6 import string 6 import string
7 7
8 8
9 class Test(object): 9 class Test(object):
10 """ 10 """
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 if not gtest_results: 611 if not gtest_results:
612 return False, None # pragma: no cover 612 return False, None # pragma: no cover
613 613
614 global_tags = gtest_results.raw.get('global_tags', []) 614 global_tags = gtest_results.raw.get('global_tags', [])
615 if 'UNRELIABLE_RESULTS' in global_tags: 615 if 'UNRELIABLE_RESULTS' in global_tags:
616 return False, None # pragma: no cover 616 return False, None # pragma: no cover
617 617
618 return True, gtest_results.failures 618 return True, gtest_results.failures
619 619
620 620
621 class AMPGTestTest(Test):
622 AMP_INSTANCE_ADDRESS = '172.22.21.180'
623 AMP_INSTANCE_PORT = '80'
624 AMP_INSTANCE_PROTOCOL = 'http'
625 AMP_RESULTS_BUCKET = 'chrome-amp-results'
626 def __init__(self, name, args=None, target_name=None, device_name=['Nexus 5'],
627 device_os=['4.4.2'], android_isolate_path=None,
628 **runtest_kwargs):
629 self._name = name
630 self._args = args
631 self._target_name = target_name
632 self._android_isolate_path = android_isolate_path
633 # LocalGTestTest is used when AMP tests are not triggered successfully.
634 self._local_test = LocalGTestTest(name, args, target_name, **runtest_kwargs)
635 self._device_name = device_name
636 self._device_os = device_os
637 self._trigger_successful = None
638 self._failures = []
639
640 @property
641 def name(self):
Paweł Hajdan Jr. 2015/06/08 09:33:21 I don't see "failures" method being defined by thi
Paweł Hajdan Jr. 2015/06/19 10:46:09 Have you addressed this comment? It may be fine fo
navabi 2015/06/19 19:49:28 I see. Can you show me where these are used in the
Paweł Hajdan Jr. 2015/06/22 14:31:41 Please see determine_new_failures in build/scripts
642 return self._name
643
644 def run(self, api, suffix): # pylint: disable=R0201
645 """Not used. All logic in pre_run, post_run."""
646 return []
647
648 def pre_run(self, api, suffix):
649 """Triggers an AMP test."""
650 amp_arguments = api.amp.amp_arguments(
651 api_address=AMPGTestTest.AMP_INSTANCE_ADDRESS,
652 api_port=AMPGTestTest.AMP_INSTANCE_PORT,
653 api_protocol=AMPGTestTest.AMP_INSTANCE_PROTOCOL,
654 device_name=self._device_name,
navabi 2015/06/06 01:56:53 is it cool if device_timeout is missing from amp_a
655 device_os=self._device_os)
656
657 isolate_file_path = (api.path['checkout'].join(self._android_isolate_path)
658 if self._android_isolate_path else None)
659 try:
660 api.amp.trigger_test_suite(
661 self._name, 'gtest',
662 api.amp.gtest_arguments(self._name,
663 isolate_file_path=isolate_file_path),
664 amp_arguments)
665 self._trigger_successful = True
666 except api.step.StepFailure:
667 self._trigger_successful = False
668
669 def post_run(self, api, suffix):
670 # If we were unable to successfully trigger the AMP job, run locally.
671 if not self._trigger_successful:
672 return self._local_test.run(api, suffix)
Paweł Hajdan Jr. 2015/06/08 09:33:21 How are failures of the local test run propagated
673 else:
674 amp_arguments = api.amp.amp_arguments(
675 api_address=AMPGTestTest.AMP_INSTANCE_ADDRESS,
676 api_port=AMPGTestTest.AMP_INSTANCE_PORT,
677 api_protocol=AMPGTestTest.AMP_INSTANCE_PROTOCOL,
678 device_name=self._device_name,
679 device_os=self._device_os)
680
681 try:
682 api.amp.collect_test_suite(
683 self._name, 'gtest', api.amp.gtest_arguments(self._name),
684 amp_arguments)
685 except api.step.StepFailure as f:
686 self._failures = [str(f)]
Paweł Hajdan Jr. 2015/06/08 09:33:21 Where is self._failures read?
687
688
621 class GTestTest(Test): 689 class GTestTest(Test):
622 def __init__(self, name, args=None, target_name=None, enable_swarming=False, 690 def __init__(self, name, args=None, target_name=None, enable_swarming=False,
623 swarming_shards=1, swarming_dimensions=None, swarming_tags=None, 691 swarming_shards=1, swarming_dimensions=None, swarming_tags=None,
624 swarming_extra_suffix=None, **runtest_kwargs): 692 swarming_extra_suffix=None, **runtest_kwargs):
625 super(GTestTest, self).__init__() 693 super(GTestTest, self).__init__()
626 if enable_swarming: 694 if enable_swarming:
627 self._test = SwarmingGTestTest( 695 self._test = SwarmingGTestTest(
628 name, args, target_name, swarming_shards, swarming_dimensions, 696 name, args, target_name, swarming_shards, swarming_dimensions,
629 swarming_tags, swarming_extra_suffix) 697 swarming_tags, swarming_extra_suffix)
630 else: 698 else:
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 GTestTest('ui_base_unittests'), 1310 GTestTest('ui_base_unittests'),
1243 GTestTest('ui_ios_unittests'), 1311 GTestTest('ui_ios_unittests'),
1244 GTestTest('sync_unit_tests'), 1312 GTestTest('sync_unit_tests'),
1245 GTestTest('sql_unittests'), 1313 GTestTest('sql_unittests'),
1246 ] 1314 ]
1247 1315
1248 GOMA_TESTS = [ 1316 GOMA_TESTS = [
1249 GTestTest('base_unittests'), 1317 GTestTest('base_unittests'),
1250 GTestTest('content_unittests'), 1318 GTestTest('content_unittests'),
1251 ] 1319 ]
OLDNEW
« no previous file with comments | « scripts/slave/recipe_modules/chromium/chromium_fyi.py ('k') | scripts/slave/recipes/chromium.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698