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

Side by Side Diff: scripts/slave/recipe_modules/v8/api.py

Issue 1146093002: Adding api option to download test data before a perf run. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 5 years, 7 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
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/v8/example.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 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 collections 5 import collections
6 import datetime 6 import datetime
7 import math 7 import math
8 import re 8 import re
9 9
10 from infra.libs.infra_types import freeze 10 from infra.libs.infra_types import freeze
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 like ia32. 805 like ia32.
806 suffix: Optional name suffix to differentiate multiple runs of the same 806 suffix: Optional name suffix to differentiate multiple runs of the same
807 step. 807 step.
808 upload: If true, uploads results to the performance dashboard. 808 upload: If true, uploads results to the performance dashboard.
809 extra_flags: List of flags to be passed to the test executable. 809 extra_flags: List of flags to be passed to the test executable.
810 Returns: A mapping of test config name->results map. Each results map has 810 Returns: A mapping of test config name->results map. Each results map has
811 an errors and a traces item. 811 an errors and a traces item.
812 """ 812 """
813 813
814 results_mapping = collections.defaultdict(dict) 814 results_mapping = collections.defaultdict(dict)
815 def run_single_perf_test(test, name, json_file): 815 def run_single_perf_test(test, name, json_file, download_test=None):
816 """Call the v8 perf test runner. 816 """Call the v8 perf test runner.
817 817
818 Performance results are saved in the json test results file as a dict with 818 Performance results are saved in the json test results file as a dict with
819 'errors' for accumulated errors and 'traces' for the measurements. 819 'errors' for accumulated errors and 'traces' for the measurements.
820 """ 820 """
821 full_args = [ 821 full_args = [
822 '--arch', self.m.chromium.c.gyp_env.GYP_DEFINES['v8_target_arch'], 822 '--arch', self.m.chromium.c.gyp_env.GYP_DEFINES['v8_target_arch'],
823 '--buildbot', 823 '--buildbot',
824 '--json-test-results', self.m.json.output(add_json_log=False), 824 '--json-test-results', self.m.json.output(add_json_log=False),
825 json_file, 825 json_file,
826 ] 826 ]
827 827
828 if extra_flags: 828 if extra_flags:
829 full_args.append('--extra-flags="%s"' % ' '.join(extra_flags)) 829 full_args.append('--extra-flags="%s"' % ' '.join(extra_flags))
830 830
831 step_test_data = lambda: self.test_api.perf_json( 831 step_test_data = lambda: self.test_api.perf_json(
832 self._test_data.get('perf_failures', False)) 832 self._test_data.get('perf_failures', False))
833 833
834 try: 834 try:
835 if download_test is not None:
836 self.m.python(
837 '%s%s - download-data' % (name, suffix),
838 self.m.path['checkout'].join('tools', 'run-test.py'),
839 ['--download-data-only', download_test],
840 cwd=self.m.path['checkout'],
841 step_test_data=step_test_data,
842 )
835 self.m.python( 843 self.m.python(
836 '%s%s' % (name, suffix), 844 '%s%s' % (name, suffix),
837 self.m.path['checkout'].join('tools', 'run_perf.py'), 845 self.m.path['checkout'].join('tools', 'run_perf.py'),
838 full_args, 846 full_args,
839 cwd=self.m.path['checkout'], 847 cwd=self.m.path['checkout'],
840 step_test_data=step_test_data, 848 step_test_data=step_test_data,
841 ) 849 )
842 finally: 850 finally:
843 step_result = self.m.step.active_result 851 step_result = self.m.step.active_result
844 results_mapping[test] = step_result.json.output 852 results_mapping[test] = step_result.json.output
(...skipping 10 matching lines...) Expand all
855 self.revision_number, 863 self.revision_number,
856 bot=category) 864 bot=category)
857 865
858 failed = False 866 failed = False
859 for t in tests: 867 for t in tests:
860 assert perf_configs[t] 868 assert perf_configs[t]
861 assert perf_configs[t]['name'] 869 assert perf_configs[t]['name']
862 assert perf_configs[t]['json'] 870 assert perf_configs[t]['json']
863 try: 871 try:
864 run_single_perf_test( 872 run_single_perf_test(
865 t, perf_configs[t]['name'], perf_configs[t]['json']) 873 t, perf_configs[t]['name'], perf_configs[t]['json'],
874 download_test=perf_configs[t].get('download_test'))
866 except self.m.step.StepFailure: 875 except self.m.step.StepFailure:
867 failed = True 876 failed = True
868 877
869 # Collect all perf data of the previous steps. 878 # Collect all perf data of the previous steps.
870 if upload: 879 if upload:
871 self.perf_upload( 880 self.perf_upload(
872 [results_mapping[k] for k in sorted(results_mapping.keys())], 881 [results_mapping[k] for k in sorted(results_mapping.keys())],
873 category) 882 category)
874 883
875 if failed: 884 if failed:
(...skipping 19 matching lines...) Expand all
895 properties = { 904 properties = {
896 'revision': self.revision, 905 'revision': self.revision,
897 'parent_got_revision': self.revision, 906 'parent_got_revision': self.revision,
898 'parent_got_revision_cp': self.revision_cp, 907 'parent_got_revision_cp': self.revision_cp,
899 } 908 }
900 properties.update(**additional_properties) 909 properties.update(**additional_properties)
901 self.m.trigger(*[{ 910 self.m.trigger(*[{
902 'builder_name': builder_name, 911 'builder_name': builder_name,
903 'properties': properties, 912 'properties': properties,
904 } for builder_name in triggers]) 913 } for builder_name in triggers])
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/v8/example.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698