| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 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 """Script to generate chromium.gpu.json and chromium.gpu.fyi.json in | 6 """Script to generate chromium.gpu.json and chromium.gpu.fyi.json in |
| 7 the src/testing/buildbot directory. Maintaining these files by hand is | 7 the src/testing/buildbot directory. Maintaining these files by hand is |
| 8 too unwieldy. | 8 too unwieldy. |
| 9 """ | 9 """ |
| 10 | 10 |
| (...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 # bots. crbug.com/582094 . It's not useful now anyway until audio | 609 # bots. crbug.com/582094 . It's not useful now anyway until audio |
| 610 # hardware is deployed on the swarming bots, so stop running it | 610 # hardware is deployed on the swarming bots, so stop running it |
| 611 # everywhere. | 611 # everywhere. |
| 612 # 'content_unittests': {}, | 612 # 'content_unittests': {}, |
| 613 'gl_tests': { | 613 'gl_tests': { |
| 614 'tester_configs': [ | 614 'tester_configs': [ |
| 615 { | 615 { |
| 616 'allow_on_android': True, | 616 'allow_on_android': True, |
| 617 } | 617 } |
| 618 ], | 618 ], |
| 619 'args': ['--use-gpu-in-tests'] | 619 'desktop_args': ['--use-gpu-in-tests'] |
| 620 }, | 620 }, |
| 621 'gl_unittests': { | 621 'gl_unittests': { |
| 622 'tester_configs': [ | 622 'tester_configs': [ |
| 623 { | 623 { |
| 624 'allow_on_android': True, | 624 'allow_on_android': True, |
| 625 } | 625 } |
| 626 ], | 626 ], |
| 627 'args': ['--use-gpu-in-tests'] | 627 'desktop_args': ['--use-gpu-in-tests'] |
| 628 }, | 628 }, |
| 629 # The gles2_conform_tests are closed-source and deliberately only run | 629 # The gles2_conform_tests are closed-source and deliberately only run |
| 630 # on the FYI waterfall and the optional tryservers. | 630 # on the FYI waterfall and the optional tryservers. |
| 631 'gles2_conform_test': { | 631 'gles2_conform_test': { |
| 632 'tester_configs': [ | 632 'tester_configs': [ |
| 633 { | 633 { |
| 634 'fyi_only': True, | 634 'fyi_only': True, |
| 635 # Run this on the optional tryservers. | 635 # Run this on the optional tryservers. |
| 636 'run_on_optional': True, | 636 'run_on_optional': True, |
| 637 } | 637 } |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 949 # Put the swarming dimensions in anyway. If the tester is later | 949 # Put the swarming dimensions in anyway. If the tester is later |
| 950 # swarmed, they will come in handy. | 950 # swarmed, they will come in handy. |
| 951 if not 'swarming' in result: | 951 if not 'swarming' in result: |
| 952 result['swarming'] = {} | 952 result['swarming'] = {} |
| 953 result['swarming'].update({ | 953 result['swarming'].update({ |
| 954 'can_use_on_swarming_builders': True, | 954 'can_use_on_swarming_builders': True, |
| 955 'dimension_sets': [ | 955 'dimension_sets': [ |
| 956 tester_config['swarming_dimensions'] | 956 tester_config['swarming_dimensions'] |
| 957 ], | 957 ], |
| 958 }) | 958 }) |
| 959 if 'desktop_args' in result: |
| 960 if not is_android(tester_config): |
| 961 if not 'args' in result: |
| 962 result['args'] = [] |
| 963 result['args'] += result['desktop_args'] |
| 964 # Don't put the desktop args in the JSON. |
| 965 result.pop('desktop_args') |
| 966 |
| 959 # This flag only has an effect on the Linux bots that run tests | 967 # This flag only has an effect on the Linux bots that run tests |
| 960 # locally (as opposed to via Swarming), which are only those couple | 968 # locally (as opposed to via Swarming), which are only those couple |
| 961 # on the chromium.gpu.fyi waterfall. Still, there is no harm in | 969 # on the chromium.gpu.fyi waterfall. Still, there is no harm in |
| 962 # specifying it everywhere. | 970 # specifying it everywhere. |
| 963 result['use_xvfb'] = False | 971 result['use_xvfb'] = False |
| 964 return result | 972 return result |
| 965 | 973 |
| 966 def generate_telemetry_test(tester_name, tester_config, | 974 def generate_telemetry_test(tester_name, tester_config, |
| 967 test, test_config, is_fyi): | 975 test, test_config, is_fyi): |
| 968 if not should_run_on_tester(tester_name, tester_config, test_config, is_fyi): | 976 if not should_run_on_tester(tester_name, tester_config, test_config, is_fyi): |
| 969 return None | 977 return None |
| 970 test_args = ['-v'] | 978 test_args = ['-v'] |
| 971 # --expose-gc allows the WebGL conformance tests to more reliably | 979 # --expose-gc allows the WebGL conformance tests to more reliably |
| 972 # reproduce GC-related bugs in the V8 bindings. | 980 # reproduce GC-related bugs in the V8 bindings. |
| 973 extra_browser_args_string = ( | 981 extra_browser_args_string = ( |
| 974 '--enable-logging=stderr --js-flags=--expose-gc') | 982 '--enable-logging=stderr --js-flags=--expose-gc') |
| 975 if 'extra_browser_args' in test_config: | 983 if 'extra_browser_args' in test_config: |
| 976 extra_browser_args_string += ' ' + ' '.join( | 984 extra_browser_args_string += ' ' + ' '.join( |
| 977 test_config['extra_browser_args']) | 985 test_config['extra_browser_args']) |
| 978 test_args.append('--extra-browser-args=' + extra_browser_args_string) | 986 test_args.append('--extra-browser-args=' + extra_browser_args_string) |
| 979 if 'args' in test_config: | 987 if 'args' in test_config: |
| 980 test_args.extend(substitute_args(tester_config, test_config['args'])) | 988 test_args.extend(substitute_args(tester_config, test_config['args'])) |
| 989 if 'desktop_args' in test_config and not is_android(tester_config): |
| 990 test_args.extend(substitute_args(tester_config, |
| 991 test_config['desktop_args'])) |
| 981 # The step name must end in 'test' or 'tests' in order for the | 992 # The step name must end in 'test' or 'tests' in order for the |
| 982 # results to automatically show up on the flakiness dashboard. | 993 # results to automatically show up on the flakiness dashboard. |
| 983 # (At least, this was true some time ago.) Continue to use this | 994 # (At least, this was true some time ago.) Continue to use this |
| 984 # naming convention for the time being to minimize changes. | 995 # naming convention for the time being to minimize changes. |
| 985 step_name = test | 996 step_name = test |
| 986 if not (step_name.endswith('test') or step_name.endswith('tests')): | 997 if not (step_name.endswith('test') or step_name.endswith('tests')): |
| 987 step_name = '%s_tests' % step_name | 998 step_name = '%s_tests' % step_name |
| 988 # Prepend Telemetry GPU-specific flags. | 999 # Prepend Telemetry GPU-specific flags. |
| 989 benchmark_name = test_config.get('target_name') or test | 1000 benchmark_name = test_config.get('target_name') or test |
| 990 prefix_args = [ | 1001 prefix_args = [ |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1058 json.dump(tests, fp, indent=2, separators=(',', ': '), sort_keys=True) | 1069 json.dump(tests, fp, indent=2, separators=(',', ': '), sort_keys=True) |
| 1059 fp.write('\n') | 1070 fp.write('\n') |
| 1060 | 1071 |
| 1061 def main(): | 1072 def main(): |
| 1062 generate_all_tests(FYI_WATERFALL, True) | 1073 generate_all_tests(FYI_WATERFALL, True) |
| 1063 generate_all_tests(WATERFALL, False) | 1074 generate_all_tests(WATERFALL, False) |
| 1064 return 0 | 1075 return 0 |
| 1065 | 1076 |
| 1066 if __name__ == "__main__": | 1077 if __name__ == "__main__": |
| 1067 sys.exit(main()) | 1078 sys.exit(main()) |
| OLD | NEW |