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 |