| OLD | NEW |
| 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 contextlib | 5 import contextlib |
| 6 import datetime | 6 import datetime |
| 7 import json | 7 import json |
| 8 import os | 8 import os |
| 9 import re | 9 import re |
| 10 import sys | 10 import sys |
| (...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 843 annotation=None, except_annotation=None, | 843 annotation=None, except_annotation=None, |
| 844 screenshot=False, verbose=False, tool=None, | 844 screenshot=False, verbose=False, tool=None, |
| 845 apk_package=None, | 845 apk_package=None, |
| 846 official_build=False, | 846 official_build=False, |
| 847 json_results_file=None, | 847 json_results_file=None, |
| 848 timeout_scale=None, strict_mode=None, | 848 timeout_scale=None, strict_mode=None, |
| 849 suffix=None, num_retries=None, | 849 suffix=None, num_retries=None, |
| 850 device_flags=None, | 850 device_flags=None, |
| 851 wrapper_script_suite_name=None, | 851 wrapper_script_suite_name=None, |
| 852 result_details=False, | 852 result_details=False, |
| 853 cs_base_url=None, |
| 854 store_tombstones=False, |
| 853 **kwargs): | 855 **kwargs): |
| 854 args = [ | 856 args = [ |
| 855 '--blacklist-file', self.blacklist_file, | 857 '--blacklist-file', self.blacklist_file, |
| 856 ] | 858 ] |
| 857 if tool: | 859 if tool: |
| 858 args.append('--tool=%s' % tool) | 860 args.append('--tool=%s' % tool) |
| 859 if flakiness_dashboard: | 861 if flakiness_dashboard: |
| 860 args.extend(['--flakiness-dashboard-server', flakiness_dashboard]) | 862 args.extend(['--flakiness-dashboard-server', flakiness_dashboard]) |
| 861 if annotation: | 863 if annotation: |
| 862 args.extend(['-A', annotation]) | 864 args.extend(['-A', annotation]) |
| 863 if except_annotation: | 865 if except_annotation: |
| 864 args.extend(['-E', except_annotation]) | 866 args.extend(['-E', except_annotation]) |
| 865 if screenshot: | 867 if screenshot: |
| 866 args.append('--screenshot') | 868 args.append('--screenshot') |
| 867 if verbose: | 869 if verbose: |
| 868 args.append('--verbose') | 870 args.append('--verbose') |
| 869 if self.c.coverage or self.c.incremental_coverage: | 871 if self.c.coverage or self.c.incremental_coverage: |
| 870 args.extend(['--coverage-dir', self.coverage_dir]) | 872 args.extend(['--coverage-dir', self.coverage_dir]) |
| 871 if result_details: | 873 if result_details: |
| 872 details_dir = self.m.path.mkdtemp('temp_details') | 874 details_dir = self.m.path.mkdtemp('temp_details') |
| 873 if not json_results_file: | 875 if not json_results_file: |
| 874 json_results_file = self.m.path.join(details_dir, 'json_results_file') | 876 json_results_file = self.m.path.join(details_dir, 'json_results_file') |
| 875 if json_results_file: | 877 if json_results_file: |
| 876 args.extend(['--json-results-file', json_results_file]) | 878 args.extend(['--json-results-file', json_results_file]) |
| 879 if store_tombstones: |
| 880 args.append('--store-tombstones') |
| 877 if timeout_scale: | 881 if timeout_scale: |
| 878 args.extend(['--timeout-scale', timeout_scale]) | 882 args.extend(['--timeout-scale', timeout_scale]) |
| 879 if strict_mode: | 883 if strict_mode: |
| 880 args.extend(['--strict-mode', strict_mode]) | 884 args.extend(['--strict-mode', strict_mode]) |
| 881 if num_retries is not None: | 885 if num_retries is not None: |
| 882 args.extend(['--num-retries', str(num_retries)]) | 886 args.extend(['--num-retries', str(num_retries)]) |
| 883 if device_flags: | 887 if device_flags: |
| 884 args.extend(['--device-flags', device_flags]) | 888 args.extend(['--device-flags', device_flags]) |
| 885 if test_apk: | 889 if test_apk: |
| 886 args.extend(['--test-apk', test_apk]) | 890 args.extend(['--test-apk', test_apk]) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 905 step_result = self.test_runner( | 909 step_result = self.test_runner( |
| 906 step_name, | 910 step_name, |
| 907 args=args, | 911 args=args, |
| 908 wrapper_script_suite_name=wrapper_script_suite_name, | 912 wrapper_script_suite_name=wrapper_script_suite_name, |
| 909 **kwargs) | 913 **kwargs) |
| 910 finally: | 914 finally: |
| 911 if result_details: | 915 if result_details: |
| 912 with self.m.step.nest('process results for %s' % step_name): | 916 with self.m.step.nest('process results for %s' % step_name): |
| 913 try: | 917 try: |
| 914 details_html = details_dir.join('details.html') | 918 details_html = details_dir.join('details.html') |
| 919 presentation_args = ['--json-file', |
| 920 json_results_file, |
| 921 '--html-file', |
| 922 details_html, |
| 923 '--master-name', |
| 924 self.m.properties.get('mastername')] |
| 925 if cs_base_url: |
| 926 presentation_args.extend(['--cs-base-url', cs_base_url]) |
| 915 self.m.python( | 927 self.m.python( |
| 916 'Generate Result Details', | 928 'Generate Result Details', |
| 917 self.resource('test_results_presentation.py'), | 929 self.resource('test_results_presentation.py'), |
| 918 args=['--json-file', | 930 args=presentation_args) |
| 919 json_results_file, | |
| 920 '--html-file', | |
| 921 details_html]) | |
| 922 details_list = self.m.file.read( | 931 details_list = self.m.file.read( |
| 923 'Read detail.html', | 932 'Read detail.html', |
| 924 details_html, | 933 details_html, |
| 925 test_data="<!DOCTYPE html><html></html>").splitlines() | 934 test_data="<!DOCTYPE html><html></html>").splitlines() |
| 926 self.m.step.active_result.presentation.logs['result_details'] = ( | 935 self.m.step.active_result.presentation.logs['result_details'] = ( |
| 927 details_list) | 936 details_list) |
| 928 finally: | 937 finally: |
| 929 self.m.file.rmtree('Remove details.html tmp files.', details_dir) | 938 self.m.file.rmtree('Remove details.html tmp files.', details_dir) |
| 930 return step_result | 939 return step_result |
| 931 | 940 |
| (...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1468 script = self.c.test_runner | 1477 script = self.c.test_runner |
| 1469 if wrapper_script_suite_name: | 1478 if wrapper_script_suite_name: |
| 1470 script = self.m.chromium.output_dir.join('bin', 'run_%s' % | 1479 script = self.m.chromium.output_dir.join('bin', 'run_%s' % |
| 1471 wrapper_script_suite_name) | 1480 wrapper_script_suite_name) |
| 1472 else: | 1481 else: |
| 1473 env = kwargs.get('env', {}) | 1482 env = kwargs.get('env', {}) |
| 1474 env['CHROMIUM_OUTPUT_DIR'] = env.get('CHROMIUM_OUTPUT_DIR', | 1483 env['CHROMIUM_OUTPUT_DIR'] = env.get('CHROMIUM_OUTPUT_DIR', |
| 1475 self.m.chromium.output_dir) | 1484 self.m.chromium.output_dir) |
| 1476 kwargs['env'] = env | 1485 kwargs['env'] = env |
| 1477 return self.m.python(step_name, script, args, **kwargs) | 1486 return self.m.python(step_name, script, args, **kwargs) |
| OLD | NEW |