| 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 |
| 11 import copy | 11 import copy |
| 12 import json | 12 import json |
| 13 import os | 13 import os |
| 14 import string | 14 import string |
| 15 import sys | 15 import sys |
| 16 | 16 |
| 17 THIS_DIR = os.path.dirname(os.path.abspath(__file__)) | 17 THIS_DIR = os.path.dirname(os.path.abspath(__file__)) |
| 18 SRC_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR))) | 18 SRC_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR))) |
| 19 | 19 |
| 20 # "Types" of waterfalls and bots. A bot's type is the union of its own |
| 21 # type and the type of its waterfall. Predicates can apply to these |
| 22 # sets in order to run tests only on a certain subset of the bots. |
| 23 class Types(object): |
| 24 GPU = 'gpu' |
| 25 GPU_FYI = 'gpu_fyi' |
| 26 OPTIONAL = 'optional' |
| 27 V8_FYI = 'v8_fyi' |
| 28 |
| 29 # The predicate functions receive a list of types as input and |
| 30 # determine whether the test should run on the given bot. |
| 31 class Predicates(object): |
| 32 @staticmethod |
| 33 def DEFAULT(x): |
| 34 # By default, tests run on the chromium.gpu and chromium.gpu.fyi |
| 35 # waterfalls, but not on the optional tryservers or on the |
| 36 # client.v8.fyi waterfall. |
| 37 return Types.OPTIONAL not in x and Types.V8_FYI not in x |
| 38 |
| 39 @staticmethod |
| 40 def FYI_ONLY(x): |
| 41 # This predicate is more complex than desired because the optional |
| 42 # tryservers are considered to be on the chromium.gpu.fyi |
| 43 # waterfall. |
| 44 return Types.GPU_FYI in x and Types.OPTIONAL not in x |
| 45 |
| 46 @staticmethod |
| 47 def FYI_AND_OPTIONAL(x): |
| 48 return Predicates.FYI_ONLY(x) or Types.OPTIONAL in x |
| 49 |
| 50 @staticmethod |
| 51 def FYI_OPTIONAL_AND_V8(x): |
| 52 return Predicates.FYI_AND_OPTIONAL(x) or Types.V8_FYI in x |
| 53 |
| 54 @staticmethod |
| 55 def DEFAULT_PLUS_V8(x): |
| 56 return Predicates.DEFAULT(x) or Types.V8_FYI in x |
| 57 |
| 58 |
| 20 WATERFALL = { | 59 WATERFALL = { |
| 60 'name': 'chromium.gpu', |
| 61 'type': Types.GPU, |
| 62 |
| 21 'builders': { | 63 'builders': { |
| 22 'GPU Win Builder' : {}, | 64 'GPU Win Builder' : {}, |
| 23 'GPU Win Builder (dbg)' : {}, | 65 'GPU Win Builder (dbg)' : {}, |
| 24 'GPU Mac Builder' : {}, | 66 'GPU Mac Builder' : {}, |
| 25 'GPU Mac Builder (dbg)' : {}, | 67 'GPU Mac Builder (dbg)' : {}, |
| 26 'GPU Linux Builder' : {}, | 68 'GPU Linux Builder' : {}, |
| 27 'GPU Linux Builder (dbg)' : {}, | 69 'GPU Linux Builder (dbg)' : {}, |
| 28 }, | 70 }, |
| 29 | 71 |
| 30 'testers': { | 72 'testers': { |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 }, | 157 }, |
| 116 ], | 158 ], |
| 117 'build_config': 'Debug', | 159 'build_config': 'Debug', |
| 118 'swarming': True, | 160 'swarming': True, |
| 119 'os_type': 'linux', | 161 'os_type': 'linux', |
| 120 }, | 162 }, |
| 121 } | 163 } |
| 122 } | 164 } |
| 123 | 165 |
| 124 FYI_WATERFALL = { | 166 FYI_WATERFALL = { |
| 167 'name': 'chromium.gpu.fyi', |
| 168 'type': Types.GPU_FYI, |
| 169 |
| 125 'builders': { | 170 'builders': { |
| 126 'GPU Win Builder' : {}, | 171 'GPU Win Builder' : {}, |
| 127 'GPU Win Builder (dbg)' : {}, | 172 'GPU Win Builder (dbg)' : {}, |
| 128 'GPU Win x64 Builder' : {}, | 173 'GPU Win x64 Builder' : {}, |
| 129 'GPU Win x64 Builder (dbg)' : {}, | 174 'GPU Win x64 Builder (dbg)' : {}, |
| 130 'GPU Mac Builder' : {}, | 175 'GPU Mac Builder' : {}, |
| 131 'GPU Mac Builder (dbg)' : {}, | 176 'GPU Mac Builder (dbg)' : {}, |
| 132 'GPU Linux Builder' : {}, | 177 'GPU Linux Builder' : {}, |
| 133 'GPU Linux Builder (dbg)' : {}, | 178 'GPU Linux Builder (dbg)' : {}, |
| 134 'Linux ChromiumOS Builder' : { | 179 'Linux ChromiumOS Builder' : { |
| (...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 'Optional Win7 Release (NVIDIA)': { | 687 'Optional Win7 Release (NVIDIA)': { |
| 643 'swarming_dimensions': [ | 688 'swarming_dimensions': [ |
| 644 { | 689 { |
| 645 'gpu': '10de:104a', | 690 'gpu': '10de:104a', |
| 646 'os': 'Windows-2008ServerR2-SP1' | 691 'os': 'Windows-2008ServerR2-SP1' |
| 647 }, | 692 }, |
| 648 ], | 693 ], |
| 649 'build_config': 'Release', | 694 'build_config': 'Release', |
| 650 'swarming': True, | 695 'swarming': True, |
| 651 'os_type': 'win', | 696 'os_type': 'win', |
| 697 'type': Types.OPTIONAL, |
| 652 }, | 698 }, |
| 653 'Optional Win7 Release (AMD)': { | 699 'Optional Win7 Release (AMD)': { |
| 654 'swarming_dimensions': [ | 700 'swarming_dimensions': [ |
| 655 { | 701 { |
| 656 'gpu': '1002:6613', | 702 'gpu': '1002:6613', |
| 657 'os': 'Windows-2008ServerR2-SP1' | 703 'os': 'Windows-2008ServerR2-SP1' |
| 658 }, | 704 }, |
| 659 ], | 705 ], |
| 660 'build_config': 'Release', | 706 'build_config': 'Release', |
| 661 'swarming': True, | 707 'swarming': True, |
| 662 'os_type': 'win', | 708 'os_type': 'win', |
| 709 'type': Types.OPTIONAL, |
| 663 }, | 710 }, |
| 664 'Optional Mac 10.10 Release (Intel)': { | 711 'Optional Mac 10.10 Release (Intel)': { |
| 665 'swarming_dimensions': [ | 712 'swarming_dimensions': [ |
| 666 { | 713 { |
| 667 'gpu': '8086:0a2e', | 714 'gpu': '8086:0a2e', |
| 668 'os': 'Mac-10.12' | 715 'os': 'Mac-10.12' |
| 669 }, | 716 }, |
| 670 ], | 717 ], |
| 671 'build_config': 'Release', | 718 'build_config': 'Release', |
| 672 'swarming': True, | 719 'swarming': True, |
| 673 'os_type': 'mac', | 720 'os_type': 'mac', |
| 721 'type': Types.OPTIONAL, |
| 674 }, | 722 }, |
| 675 'Optional Mac Retina Release': { | 723 'Optional Mac Retina Release': { |
| 676 'swarming_dimensions': [ | 724 'swarming_dimensions': [ |
| 677 { | 725 { |
| 678 'gpu': '10de:0fe9', | 726 'gpu': '10de:0fe9', |
| 679 'hidpi': '1', | 727 'hidpi': '1', |
| 680 'os': 'Mac' | 728 'os': 'Mac' |
| 681 }, | 729 }, |
| 682 ], | 730 ], |
| 683 'build_config': 'Release', | 731 'build_config': 'Release', |
| 684 'swarming': True, | 732 'swarming': True, |
| 685 'os_type': 'mac', | 733 'os_type': 'mac', |
| 734 'type': Types.OPTIONAL, |
| 686 }, | 735 }, |
| 687 'Optional Mac 10.10 Retina Release (AMD)': { | 736 'Optional Mac 10.10 Retina Release (AMD)': { |
| 688 'swarming_dimensions': [ | 737 'swarming_dimensions': [ |
| 689 { | 738 { |
| 690 'gpu': '1002:6821', | 739 'gpu': '1002:6821', |
| 691 'hidpi': '1', | 740 'hidpi': '1', |
| 692 'os': 'Mac' | 741 'os': 'Mac' |
| 693 }, | 742 }, |
| 694 ], | 743 ], |
| 695 'build_config': 'Release', | 744 'build_config': 'Release', |
| 696 'swarming': True, | 745 'swarming': True, |
| 697 'os_type': 'mac', | 746 'os_type': 'mac', |
| 747 'type': Types.OPTIONAL, |
| 698 }, | 748 }, |
| 699 'Optional Linux Release (NVIDIA)': { | 749 'Optional Linux Release (NVIDIA)': { |
| 700 'swarming_dimensions': [ | 750 'swarming_dimensions': [ |
| 701 { | 751 { |
| 702 'gpu': '10de:104a', | 752 'gpu': '10de:104a', |
| 703 'os': 'Ubuntu' | 753 'os': 'Ubuntu' |
| 704 }, | 754 }, |
| 705 ], | 755 ], |
| 706 'build_config': 'Release', | 756 'build_config': 'Release', |
| 707 'swarming': True, | 757 'swarming': True, |
| 708 'os_type': 'linux', | 758 'os_type': 'linux', |
| 759 'type': Types.OPTIONAL, |
| 709 }, | 760 }, |
| 710 } | 761 } |
| 711 } | 762 } |
| 712 | 763 |
| 713 V8_FYI_WATERFALL = { | 764 V8_FYI_WATERFALL = { |
| 765 'name': 'client.v8.fyi', |
| 766 'type': Types.V8_FYI, |
| 767 |
| 714 'prologue': { | 768 'prologue': { |
| 715 "V8 Android GN (dbg)": { | 769 "V8 Android GN (dbg)": { |
| 716 "additional_compile_targets": [ | 770 "additional_compile_targets": [ |
| 717 "chrome_public_apk" | 771 "chrome_public_apk" |
| 718 ], | 772 ], |
| 719 "gtest_tests": [] | 773 "gtest_tests": [] |
| 720 }, | 774 }, |
| 721 "V8 Linux GN": { | 775 "V8 Linux GN": { |
| 722 "additional_compile_targets": [ | 776 "additional_compile_targets": [ |
| 723 "accessibility_unittests", | 777 "accessibility_unittests", |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 808 'swarming': True, | 862 'swarming': True, |
| 809 'os_type': 'linux', | 863 'os_type': 'linux', |
| 810 }, | 864 }, |
| 811 } | 865 } |
| 812 } | 866 } |
| 813 | 867 |
| 814 COMMON_GTESTS = { | 868 COMMON_GTESTS = { |
| 815 'angle_deqp_egl_tests': { | 869 'angle_deqp_egl_tests': { |
| 816 'tester_configs': [ | 870 'tester_configs': [ |
| 817 { | 871 { |
| 818 'fyi_only': True, | 872 # Run this on the FYI waterfall and optional tryservers. |
| 819 # Run this on the optional tryservers. | 873 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 820 'run_on_optional': True, | |
| 821 # Run only on the Win7 Release NVIDIA 32- and 64-bit bots | 874 # Run only on the Win7 Release NVIDIA 32- and 64-bit bots |
| 822 # (and trybots) for the time being, at least until more capacity is | 875 # (and trybots) for the time being, at least until more capacity is |
| 823 # added. | 876 # added. |
| 824 # TODO(jmadill): Run on the Linux Release NVIDIA bots. | 877 # TODO(jmadill): Run on the Linux Release NVIDIA bots. |
| 825 'build_configs': ['Release', 'Release_x64'], | 878 'build_configs': ['Release', 'Release_x64'], |
| 826 'swarming_dimension_sets': [ | 879 'swarming_dimension_sets': [ |
| 827 { | 880 { |
| 828 'gpu': '10de:104a', | 881 'gpu': '10de:104a', |
| 829 'os': 'Windows-2008ServerR2-SP1' | 882 'os': 'Windows-2008ServerR2-SP1' |
| 830 } | 883 } |
| 831 ], | 884 ], |
| 832 }, | 885 }, |
| 833 ], | 886 ], |
| 834 'args': [ | 887 'args': [ |
| 835 '--test-launcher-batch-limit=400' | 888 '--test-launcher-batch-limit=400' |
| 836 ] | 889 ] |
| 837 }, | 890 }, |
| 838 | 891 |
| 839 'angle_deqp_gles2_d3d11_tests': { | 892 'angle_deqp_gles2_d3d11_tests': { |
| 840 'tester_configs': [ | 893 'tester_configs': [ |
| 841 { | 894 { |
| 842 'fyi_only': True, | 895 # Run this on the FYI waterfall and optional tryservers. |
| 843 # Run this on the optional tryservers. | 896 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 844 'run_on_optional': True, | |
| 845 # Run only on the Win7 NVIDIA/AMD R7 240 32- and 64-bit bots (and | 897 # Run only on the Win7 NVIDIA/AMD R7 240 32- and 64-bit bots (and |
| 846 # trybots) for the time being, at least until more capacity is | 898 # trybots) for the time being, at least until more capacity is |
| 847 # added. | 899 # added. |
| 848 'build_configs': ['Release', 'Release_x64'], | 900 'build_configs': ['Release', 'Release_x64'], |
| 849 'swarming_dimension_sets': [ | 901 'swarming_dimension_sets': [ |
| 850 # NVIDIA Win 7 | 902 # NVIDIA Win 7 |
| 851 { | 903 { |
| 852 'gpu': '10de:104a', | 904 'gpu': '10de:104a', |
| 853 'os': 'Windows-2008ServerR2-SP1' | 905 'os': 'Windows-2008ServerR2-SP1' |
| 854 }, | 906 }, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 866 'test': 'angle_deqp_gles2_tests', | 918 'test': 'angle_deqp_gles2_tests', |
| 867 'args': [ | 919 'args': [ |
| 868 '--test-launcher-batch-limit=400', | 920 '--test-launcher-batch-limit=400', |
| 869 '--deqp-egl-display-type=angle-d3d11' | 921 '--deqp-egl-display-type=angle-d3d11' |
| 870 ] | 922 ] |
| 871 }, | 923 }, |
| 872 | 924 |
| 873 'angle_deqp_gles2_gl_tests': { | 925 'angle_deqp_gles2_gl_tests': { |
| 874 'tester_configs': [ | 926 'tester_configs': [ |
| 875 { | 927 { |
| 876 'fyi_only': True, | 928 # Run this on the FYI waterfall and optional tryservers. |
| 877 # Run this on the optional tryservers. | 929 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 878 'run_on_optional': True, | |
| 879 # Run only on the Linux Release NVIDIA 32- and 64-bit bots (and | 930 # Run only on the Linux Release NVIDIA 32- and 64-bit bots (and |
| 880 # trybots) for the time being, at least until more capacity is added. | 931 # trybots) for the time being, at least until more capacity is added. |
| 881 'build_configs': ['Release', 'Release_x64'], | 932 'build_configs': ['Release', 'Release_x64'], |
| 882 'swarming_dimension_sets': [ | 933 'swarming_dimension_sets': [ |
| 883 # NVIDIA Linux | 934 # NVIDIA Linux |
| 884 { | 935 { |
| 885 'gpu': '10de:104a', | 936 'gpu': '10de:104a', |
| 886 'os': 'Ubuntu' | 937 'os': 'Ubuntu' |
| 887 }, | 938 }, |
| 888 ], | 939 ], |
| 889 }, | 940 }, |
| 890 ], | 941 ], |
| 891 'desktop_swarming': { | 942 'desktop_swarming': { |
| 892 'shards': 4, | 943 'shards': 4, |
| 893 }, | 944 }, |
| 894 'test': 'angle_deqp_gles2_tests', | 945 'test': 'angle_deqp_gles2_tests', |
| 895 'args': [ | 946 'args': [ |
| 896 '--test-launcher-batch-limit=400', | 947 '--test-launcher-batch-limit=400', |
| 897 '--deqp-egl-display-type=angle-gl' | 948 '--deqp-egl-display-type=angle-gl' |
| 898 ] | 949 ] |
| 899 }, | 950 }, |
| 900 | 951 |
| 901 'angle_deqp_gles2_gles_tests': { | 952 'angle_deqp_gles2_gles_tests': { |
| 902 'tester_configs': [ | 953 'tester_configs': [ |
| 903 { | 954 { |
| 904 'allow_on_android': True, | 955 # Run this on the FYI waterfall and optional tryservers. |
| 905 'fyi_only': True, | 956 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 906 # Run this on the optional tryservers. | |
| 907 'run_on_optional': True, | |
| 908 # Run on Nexus 5X swarmed bots. | 957 # Run on Nexus 5X swarmed bots. |
| 909 'build_configs': ['android-chromium'], | 958 'build_configs': ['android-chromium'], |
| 910 'swarming_dimension_sets': [ | 959 'swarming_dimension_sets': [ |
| 911 # Nexus 5X | 960 # Nexus 5X |
| 912 { | 961 { |
| 913 'device_type': 'bullhead', | 962 'device_type': 'bullhead', |
| 914 'device_os': 'M', | 963 'device_os': 'M', |
| 915 'os': 'Android' | 964 'os': 'Android' |
| 916 } | 965 } |
| 917 ], | 966 ], |
| 918 }, | 967 }, |
| 919 ], | 968 ], |
| 920 'test': 'angle_deqp_gles2_tests', | 969 'test': 'angle_deqp_gles2_tests', |
| 921 # Only pass the display type to desktop. The Android runner doesn't support | 970 # Only pass the display type to desktop. The Android runner doesn't support |
| 922 # passing args to the executable but only one display type is supported on | 971 # passing args to the executable but only one display type is supported on |
| 923 # Android anyways. | 972 # Android anyways. |
| 924 'desktop_args': [ | 973 'desktop_args': [ |
| 925 '--test-launcher-batch-limit=400', | 974 '--test-launcher-batch-limit=400', |
| 926 '--deqp-egl-display-type=angle-gles' | 975 '--deqp-egl-display-type=angle-gles' |
| 927 ], | 976 ], |
| 928 'android_args': ['--enable-xml-result-parsing'] | 977 'android_args': ['--enable-xml-result-parsing'] |
| 929 }, | 978 }, |
| 930 | 979 |
| 931 'angle_deqp_gles3_d3d11_tests': { | 980 'angle_deqp_gles3_d3d11_tests': { |
| 932 'tester_configs': [ | 981 'tester_configs': [ |
| 933 { | 982 { |
| 934 'fyi_only': True, | |
| 935 # TODO(jmadill): Run this on ANGLE roll tryservers. | 983 # TODO(jmadill): Run this on ANGLE roll tryservers. |
| 936 'run_on_optional': False, | 984 'predicate': Predicates.FYI_ONLY, |
| 937 # Run only on the NVIDIA and AMD Win7 bots (and trybots) for the time | 985 # Run only on the NVIDIA and AMD Win7 bots (and trybots) for the time |
| 938 # being, at least until more capacity is added. | 986 # being, at least until more capacity is added. |
| 939 'build_configs': ['Release'], | 987 'build_configs': ['Release'], |
| 940 'swarming_dimension_sets': [ | 988 'swarming_dimension_sets': [ |
| 941 # NVIDIA Win 7 | 989 # NVIDIA Win 7 |
| 942 { | 990 { |
| 943 'gpu': '10de:104a', | 991 'gpu': '10de:104a', |
| 944 'os': 'Windows-2008ServerR2-SP1' | 992 'os': 'Windows-2008ServerR2-SP1' |
| 945 }, | 993 }, |
| 946 # AMD Win 7 | 994 # AMD Win 7 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 957 'test': 'angle_deqp_gles3_tests', | 1005 'test': 'angle_deqp_gles3_tests', |
| 958 'args': [ | 1006 'args': [ |
| 959 '--test-launcher-batch-limit=400', | 1007 '--test-launcher-batch-limit=400', |
| 960 '--deqp-egl-display-type=angle-d3d11' | 1008 '--deqp-egl-display-type=angle-d3d11' |
| 961 ] | 1009 ] |
| 962 }, | 1010 }, |
| 963 | 1011 |
| 964 'angle_deqp_gles3_gl_tests': { | 1012 'angle_deqp_gles3_gl_tests': { |
| 965 'tester_configs': [ | 1013 'tester_configs': [ |
| 966 { | 1014 { |
| 967 'fyi_only': True, | |
| 968 # TODO(jmadill): Run this on ANGLE roll tryservers. | 1015 # TODO(jmadill): Run this on ANGLE roll tryservers. |
| 969 'run_on_optional': False, | 1016 'predicate': Predicates.FYI_ONLY, |
| 970 # Run only on the Linux Release NVIDIA 32-bit bots (and trybots) for | 1017 # Run only on the Linux Release NVIDIA 32-bit bots (and trybots) for |
| 971 # the time being, at least until more capacity is added. | 1018 # the time being, at least until more capacity is added. |
| 972 'build_configs': ['Release'], | 1019 'build_configs': ['Release'], |
| 973 'swarming_dimension_sets': [ | 1020 'swarming_dimension_sets': [ |
| 974 # NVIDIA Linux | 1021 # NVIDIA Linux |
| 975 { | 1022 { |
| 976 'gpu': '10de:104a', | 1023 'gpu': '10de:104a', |
| 977 'os': 'Ubuntu' | 1024 'os': 'Ubuntu' |
| 978 } | 1025 } |
| 979 ], | 1026 ], |
| 980 } | 1027 } |
| 981 ], | 1028 ], |
| 982 'swarming': { | 1029 'swarming': { |
| 983 'shards': 12, | 1030 'shards': 12, |
| 984 }, | 1031 }, |
| 985 'test': 'angle_deqp_gles3_tests', | 1032 'test': 'angle_deqp_gles3_tests', |
| 986 'args': [ | 1033 'args': [ |
| 987 '--test-launcher-batch-limit=400', | 1034 '--test-launcher-batch-limit=400', |
| 988 '--deqp-egl-display-type=angle-gl' | 1035 '--deqp-egl-display-type=angle-gl' |
| 989 ] | 1036 ] |
| 990 }, | 1037 }, |
| 991 | 1038 |
| 992 'angle_deqp_gles31_d3d11_tests': { | 1039 'angle_deqp_gles31_d3d11_tests': { |
| 993 'tester_configs': [ | 1040 'tester_configs': [ |
| 994 { | 1041 { |
| 995 'fyi_only': True, | 1042 'predicate': Predicates.FYI_ONLY, |
| 996 'run_on_optional': False, | |
| 997 # Run on the Win Release NVIDIA bots. | 1043 # Run on the Win Release NVIDIA bots. |
| 998 'build_configs': ['Release'], | 1044 'build_configs': ['Release'], |
| 999 'swarming_dimension_sets': [ | 1045 'swarming_dimension_sets': [ |
| 1000 { | 1046 { |
| 1001 'gpu': '10de:104a', | 1047 'gpu': '10de:104a', |
| 1002 'os': 'Windows-2008ServerR2-SP1' | 1048 'os': 'Windows-2008ServerR2-SP1' |
| 1003 } | 1049 } |
| 1004 ], | 1050 ], |
| 1005 } | 1051 } |
| 1006 ], | 1052 ], |
| 1007 'swarming': { | 1053 'swarming': { |
| 1008 # TODO(geofflang): Increase the number of shards as more tests start to | 1054 # TODO(geofflang): Increase the number of shards as more tests start to |
| 1009 # pass and runtime increases. | 1055 # pass and runtime increases. |
| 1010 'shards': 4, | 1056 'shards': 4, |
| 1011 }, | 1057 }, |
| 1012 'test': 'angle_deqp_gles31_tests', | 1058 'test': 'angle_deqp_gles31_tests', |
| 1013 'args': [ | 1059 'args': [ |
| 1014 '--test-launcher-batch-limit=400', | 1060 '--test-launcher-batch-limit=400', |
| 1015 '--deqp-egl-display-type=angle-d3d11' | 1061 '--deqp-egl-display-type=angle-d3d11' |
| 1016 ] | 1062 ] |
| 1017 }, | 1063 }, |
| 1018 | 1064 |
| 1019 'angle_deqp_gles31_gl_tests': { | 1065 'angle_deqp_gles31_gl_tests': { |
| 1020 'tester_configs': [ | 1066 'tester_configs': [ |
| 1021 { | 1067 { |
| 1022 'fyi_only': True, | 1068 'predicate': Predicates.FYI_ONLY, |
| 1023 'run_on_optional': False, | 1069 # Run on the Win Release NVIDIA bots. |
| 1024 # Run on the Win/Linux Release NVIDIA bots. | |
| 1025 'build_configs': ['Release'], | 1070 'build_configs': ['Release'], |
| 1026 'swarming_dimension_sets': [ | 1071 'swarming_dimension_sets': [ |
| 1027 { | 1072 { |
| 1028 'gpu': '10de:104a', | 1073 'gpu': '10de:104a', |
| 1029 'os': 'Windows-2008ServerR2-SP1' | 1074 'os': 'Windows-2008ServerR2-SP1' |
| 1030 }, | 1075 }, |
| 1031 { | 1076 { |
| 1032 'gpu': '10de:104a', | 1077 'gpu': '10de:104a', |
| 1033 'os': 'Ubuntu' | 1078 'os': 'Ubuntu' |
| 1034 } | 1079 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1046 '--deqp-egl-display-type=angle-gl' | 1091 '--deqp-egl-display-type=angle-gl' |
| 1047 ] | 1092 ] |
| 1048 }, | 1093 }, |
| 1049 | 1094 |
| 1050 # Until we have more capacity, run angle_end2end_tests only on the | 1095 # Until we have more capacity, run angle_end2end_tests only on the |
| 1051 # FYI waterfall, the ANGLE trybots (which mirror the FYI waterfall), | 1096 # FYI waterfall, the ANGLE trybots (which mirror the FYI waterfall), |
| 1052 # and the optional trybots (mainly used during ANGLE rolls). | 1097 # and the optional trybots (mainly used during ANGLE rolls). |
| 1053 'angle_end2end_tests': { | 1098 'angle_end2end_tests': { |
| 1054 'tester_configs': [ | 1099 'tester_configs': [ |
| 1055 { | 1100 { |
| 1056 'allow_on_android': True, | 1101 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1057 'fyi_only': True, | |
| 1058 'run_on_optional': True, | |
| 1059 }, | 1102 }, |
| 1060 ], | 1103 ], |
| 1061 'disabled_tester_configs': [ | 1104 'disabled_tester_configs': [ |
| 1062 { | 1105 { |
| 1063 'names': [ | 1106 'names': [ |
| 1064 # TODO(ynovikov) Investigate why the test breaks on older devices. | 1107 # TODO(ynovikov) Investigate why the test breaks on older devices. |
| 1065 'Android Release (Nexus 5)', | 1108 'Android Release (Nexus 5)', |
| 1066 'Android Release (Nexus 6)', | 1109 'Android Release (Nexus 6)', |
| 1067 'Android Release (Nexus 9)', | 1110 'Android Release (Nexus 9)', |
| 1068 | 1111 |
| 1069 # These tests are flaky on old AMD. | 1112 # These tests are flaky on old AMD. |
| 1070 # TODO(jmadill): Enably flaky test retries only on this config. | 1113 # TODO(jmadill): Enably flaky test retries only on this config. |
| 1071 'Win7 Release (AMD R5 230)', | 1114 'Win7 Release (AMD R5 230)', |
| 1072 ], | 1115 ], |
| 1073 }, | 1116 }, |
| 1074 ], | 1117 ], |
| 1075 'desktop_args': [ | 1118 'desktop_args': [ |
| 1076 '--use-gpu-in-tests', | 1119 '--use-gpu-in-tests', |
| 1077 # ANGLE test retries deliberately disabled to prevent flakiness. | 1120 # ANGLE test retries deliberately disabled to prevent flakiness. |
| 1078 # http://crbug.com/669196 | 1121 # http://crbug.com/669196 |
| 1079 '--test-launcher-retry-limit=0' | 1122 '--test-launcher-retry-limit=0' |
| 1080 ] | 1123 ] |
| 1081 }, | 1124 }, |
| 1082 'angle_unittests': { | 1125 'angle_unittests': { |
| 1083 'tester_configs': [ | |
| 1084 { | |
| 1085 'allow_on_android': True, | |
| 1086 } | |
| 1087 ], | |
| 1088 'desktop_args': [ | 1126 'desktop_args': [ |
| 1089 '--use-gpu-in-tests', | 1127 '--use-gpu-in-tests', |
| 1090 # ANGLE test retries deliberately disabled to prevent flakiness. | 1128 # ANGLE test retries deliberately disabled to prevent flakiness. |
| 1091 # http://crbug.com/669196 | 1129 # http://crbug.com/669196 |
| 1092 '--test-launcher-retry-limit=0' | 1130 '--test-launcher-retry-limit=0' |
| 1093 ] | 1131 ] |
| 1094 }, | 1132 }, |
| 1095 # Until the media-only tests are extracted from content_unittests, | 1133 # Until the media-only tests are extracted from content_unittests, |
| 1096 # and audio_unittests and content_unittests can be run on the commit | 1134 # and audio_unittests and content_unittests can be run on the commit |
| 1097 # queue with --require-audio-hardware-for-testing, run them only on | 1135 # queue with --require-audio-hardware-for-testing, run them only on |
| 1098 # the FYI waterfall. | 1136 # the FYI waterfall. |
| 1099 # | 1137 # |
| 1100 # Note that the transition to the Chromium recipe has forced the | 1138 # Note that the transition to the Chromium recipe has forced the |
| 1101 # removal of the --require-audio-hardware-for-testing flag for the | 1139 # removal of the --require-audio-hardware-for-testing flag for the |
| 1102 # time being. See crbug.com/574942. | 1140 # time being. See crbug.com/574942. |
| 1103 'audio_unittests': { | 1141 'audio_unittests': { |
| 1104 'tester_configs': [ | 1142 'tester_configs': [ |
| 1105 { | 1143 { |
| 1106 'fyi_only': True, | 1144 'predicate': Predicates.FYI_ONLY, |
| 1107 } | 1145 } |
| 1108 ], | 1146 ], |
| 1147 # Don't run these tests on Android. |
| 1148 'disabled_tester_configs': [ |
| 1149 { |
| 1150 'os_types': ['android'], |
| 1151 }, |
| 1152 ], |
| 1109 'args': ['--use-gpu-in-tests'] | 1153 'args': ['--use-gpu-in-tests'] |
| 1110 }, | 1154 }, |
| 1111 # TODO(kbr): content_unittests is killing the Linux GPU swarming | 1155 # TODO(kbr): content_unittests is killing the Linux GPU swarming |
| 1112 # bots. crbug.com/582094 . It's not useful now anyway until audio | 1156 # bots. crbug.com/582094 . It's not useful now anyway until audio |
| 1113 # hardware is deployed on the swarming bots, so stop running it | 1157 # hardware is deployed on the swarming bots, so stop running it |
| 1114 # everywhere. | 1158 # everywhere. |
| 1115 # 'content_unittests': {}, | 1159 # 'content_unittests': {}, |
| 1116 'gl_tests': { | 1160 'gl_tests': { |
| 1117 'tester_configs': [ | |
| 1118 { | |
| 1119 'allow_on_android': True, | |
| 1120 } | |
| 1121 ], | |
| 1122 'disabled_tester_configs': [ | 1161 'disabled_tester_configs': [ |
| 1123 { | 1162 { |
| 1124 'names': [ | 1163 'names': [ |
| 1125 # TODO(kbr): investigate inability to recognize this | 1164 # TODO(kbr): investigate inability to recognize this |
| 1126 # configuration in the various tests. crbug.com/624621 | 1165 # configuration in the various tests. crbug.com/624621 |
| 1127 'Android Release (Pixel C)', | 1166 'Android Release (Pixel C)', |
| 1128 ], | 1167 ], |
| 1129 }, | 1168 }, |
| 1130 ], | 1169 ], |
| 1131 'desktop_args': ['--use-gpu-in-tests'] | 1170 'desktop_args': ['--use-gpu-in-tests'] |
| 1132 }, | 1171 }, |
| 1133 'gl_unittests': { | 1172 'gl_unittests': { |
| 1134 'tester_configs': [ | |
| 1135 { | |
| 1136 'allow_on_android': True, | |
| 1137 } | |
| 1138 ], | |
| 1139 'desktop_args': ['--use-gpu-in-tests'] | 1173 'desktop_args': ['--use-gpu-in-tests'] |
| 1140 }, | 1174 }, |
| 1141 # The gles2_conform_tests are closed-source and deliberately only run | 1175 # The gles2_conform_tests are closed-source and deliberately only run |
| 1142 # on the FYI waterfall and the optional tryservers. | 1176 # on the FYI waterfall and the optional tryservers. |
| 1143 'gles2_conform_test': { | 1177 'gles2_conform_test': { |
| 1144 'tester_configs': [ | 1178 'tester_configs': [ |
| 1145 { | 1179 { |
| 1146 'fyi_only': True, | 1180 # Run this on the FYI waterfall and optional tryservers. |
| 1147 # Run this on the optional tryservers. | 1181 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1148 'run_on_optional': True, | |
| 1149 } | 1182 } |
| 1150 ], | 1183 ], |
| 1184 # Don't run these tests on Android. |
| 1185 'disabled_tester_configs': [ |
| 1186 { |
| 1187 'os_types': ['android'], |
| 1188 }, |
| 1189 ], |
| 1151 'args': ['--use-gpu-in-tests'] | 1190 'args': ['--use-gpu-in-tests'] |
| 1152 }, | 1191 }, |
| 1153 'gles2_conform_d3d9_test': { | 1192 'gles2_conform_d3d9_test': { |
| 1154 'tester_configs': [ | 1193 'tester_configs': [ |
| 1155 { | 1194 { |
| 1156 'fyi_only': True, | 1195 # Run this on the FYI waterfall and optional tryservers. |
| 1196 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1157 'os_types': ['win'], | 1197 'os_types': ['win'], |
| 1158 # Run this on the optional tryservers. | |
| 1159 'run_on_optional': True, | |
| 1160 } | 1198 } |
| 1161 ], | 1199 ], |
| 1162 'args': [ | 1200 'args': [ |
| 1163 '--use-gpu-in-tests', | 1201 '--use-gpu-in-tests', |
| 1164 '--use-angle=d3d9', | 1202 '--use-angle=d3d9', |
| 1165 ], | 1203 ], |
| 1166 'test': 'gles2_conform_test', | 1204 'test': 'gles2_conform_test', |
| 1167 }, | 1205 }, |
| 1168 'gles2_conform_gl_test': { | 1206 'gles2_conform_gl_test': { |
| 1169 'tester_configs': [ | 1207 'tester_configs': [ |
| 1170 { | 1208 { |
| 1171 'fyi_only': True, | 1209 # Run this on the FYI waterfall and optional tryservers. |
| 1210 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1172 'os_types': ['win'], | 1211 'os_types': ['win'], |
| 1173 # Run this on the optional tryservers. | |
| 1174 'run_on_optional': True, | |
| 1175 } | 1212 } |
| 1176 ], | 1213 ], |
| 1177 'args': [ | 1214 'args': [ |
| 1178 '--use-gpu-in-tests', | 1215 '--use-gpu-in-tests', |
| 1179 '--use-angle=gl', | 1216 '--use-angle=gl', |
| 1180 '--disable-gpu-sandbox', | 1217 '--disable-gpu-sandbox', |
| 1181 ], | 1218 ], |
| 1182 'test': 'gles2_conform_test', | 1219 'test': 'gles2_conform_test', |
| 1183 }, | 1220 }, |
| 1184 'swiftshader_unittests': { | 1221 'swiftshader_unittests': { |
| 1185 'tester_configs': [ | 1222 'tester_configs': [ |
| 1186 { | 1223 { |
| 1187 'fyi_only': True, | 1224 # Run this on the FYI waterfall and optional tryservers. |
| 1188 # Run this on the optional tryservers. | 1225 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1189 'run_on_optional': True, | |
| 1190 'os_types': ['win', 'linux'], | 1226 'os_types': ['win', 'linux'], |
| 1191 }, | 1227 }, |
| 1192 ], | 1228 ], |
| 1193 }, | 1229 }, |
| 1194 'tab_capture_end2end_tests': { | 1230 'tab_capture_end2end_tests': { |
| 1195 'tester_configs': [ | 1231 'tester_configs': [ |
| 1196 { | 1232 { |
| 1197 'build_configs': ['Release', 'Release_x64'], | 1233 'build_configs': ['Release', 'Release_x64'], |
| 1198 } | 1234 } |
| 1199 ], | 1235 ], |
| 1236 # Don't run these tests on Android. |
| 1237 'disabled_tester_configs': [ |
| 1238 { |
| 1239 'os_types': ['android'], |
| 1240 }, |
| 1241 ], |
| 1200 'override_compile_targets': [ | 1242 'override_compile_targets': [ |
| 1201 'tab_capture_end2end_tests_run', | 1243 'tab_capture_end2end_tests_run', |
| 1202 ], | 1244 ], |
| 1203 }, | 1245 }, |
| 1204 'video_decode_accelerator_unittest': { | 1246 'video_decode_accelerator_unittest': { |
| 1205 'tester_configs': [ | 1247 'tester_configs': [ |
| 1206 { | 1248 { |
| 1207 'os_types': ['win'] | 1249 'os_types': ['win'] |
| 1208 }, | 1250 }, |
| 1209 ], | 1251 ], |
| 1210 'args': [ | 1252 'args': [ |
| 1211 '--use-test-data-path', | 1253 '--use-test-data-path', |
| 1212 ], | 1254 ], |
| 1213 }, | 1255 }, |
| 1214 } | 1256 } |
| 1215 | 1257 |
| 1216 # This requires a hack because the isolate's name is different than | 1258 # This requires a hack because the isolate's name is different than |
| 1217 # the executable's name. On the few non-swarmed testers, this causes | 1259 # the executable's name. On the few non-swarmed testers, this causes |
| 1218 # the executable to not be found. It would be better if the Chromium | 1260 # the executable to not be found. It would be better if the Chromium |
| 1219 # recipe supported running isolates locally. crbug.com/581953 | 1261 # recipe supported running isolates locally. crbug.com/581953 |
| 1220 | 1262 |
| 1221 NON_SWARMED_GTESTS = { | 1263 NON_SWARMED_GTESTS = { |
| 1222 'tab_capture_end2end_tests': { | 1264 'tab_capture_end2end_tests': { |
| 1223 'swarming': { | 1265 'swarming': { |
| 1224 'can_use_on_swarming_builders': False | 1266 'can_use_on_swarming_builders': False |
| 1225 }, | 1267 }, |
| 1226 'test': 'browser_tests', | 1268 # Don't run these tests on Android. |
| 1227 'args': [ | 1269 'disabled_tester_configs': [ |
| 1228 '--enable-gpu', | 1270 { |
| 1229 '--test-launcher-jobs=1', | 1271 'os_types': ['android'], |
| 1230 '--gtest_filter=CastStreamingApiTestWithPixelOutput.EndToEnd*:' + \ | 1272 }, |
| 1231 'TabCaptureApiPixelTest.EndToEnd*' | 1273 ], |
| 1232 ], | 1274 'test': 'browser_tests', |
| 1233 'swarming': { | 1275 'args': [ |
| 1234 'can_use_on_swarming_builders': False, | 1276 '--enable-gpu', |
| 1235 }, | 1277 '--test-launcher-jobs=1', |
| 1278 '--gtest_filter=CastStreamingApiTestWithPixelOutput.EndToEnd*:' + \ |
| 1279 'TabCaptureApiPixelTest.EndToEnd*' |
| 1280 ], |
| 1281 'swarming': { |
| 1282 'can_use_on_swarming_builders': False, |
| 1283 }, |
| 1236 } | 1284 } |
| 1237 } | 1285 } |
| 1238 | 1286 |
| 1239 # These tests use Telemetry's new browser_test_runner, which is a much | 1287 # These tests use Telemetry's new browser_test_runner, which is a much |
| 1240 # simpler harness for correctness testing. | 1288 # simpler harness for correctness testing. |
| 1241 TELEMETRY_GPU_INTEGRATION_TESTS = { | 1289 TELEMETRY_GPU_INTEGRATION_TESTS = { |
| 1242 'context_lost': { | 1290 'context_lost': { |
| 1243 'tester_configs': [ | 1291 'tester_configs': [ |
| 1244 { | 1292 { |
| 1245 'allow_on_android': True, | 1293 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1246 'run_on_v8': True, | |
| 1247 }, | 1294 }, |
| 1248 ] | 1295 ] |
| 1249 }, | 1296 }, |
| 1250 'depth_capture': { | 1297 'depth_capture': { |
| 1251 'tester_configs': [ | 1298 'tester_configs': [ |
| 1252 { | 1299 { |
| 1253 'allow_on_android': True, | 1300 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1254 'run_on_v8': True, | |
| 1255 }, | 1301 }, |
| 1256 ] | 1302 ] |
| 1257 }, | 1303 }, |
| 1258 'gpu_process_launch_tests': { | 1304 'gpu_process_launch_tests': { |
| 1259 'target_name': 'gpu_process', | 1305 'target_name': 'gpu_process', |
| 1260 'tester_configs': [ | 1306 'tester_configs': [ |
| 1261 { | 1307 { |
| 1262 'allow_on_android': True, | 1308 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1263 'run_on_v8': True, | |
| 1264 } | 1309 } |
| 1265 ], | 1310 ], |
| 1266 }, | 1311 }, |
| 1267 'hardware_accelerated_feature': { | 1312 'hardware_accelerated_feature': { |
| 1268 'tester_configs': [ | 1313 'tester_configs': [ |
| 1269 { | 1314 { |
| 1270 'allow_on_android': True, | 1315 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1271 'run_on_v8': True, | |
| 1272 }, | 1316 }, |
| 1273 ], | 1317 ], |
| 1274 }, | 1318 }, |
| 1275 'maps_pixel_test': { | 1319 'maps_pixel_test': { |
| 1276 'target_name': 'maps', | 1320 'target_name': 'maps', |
| 1277 'args': [ | 1321 'args': [ |
| 1278 '--os-type', | 1322 '--os-type', |
| 1279 '${os_type}', | 1323 '${os_type}', |
| 1280 '--build-revision', | 1324 '--build-revision', |
| 1281 '${got_revision}', | 1325 '${got_revision}', |
| 1282 '--test-machine-name', | 1326 '--test-machine-name', |
| 1283 '${buildername}', | 1327 '${buildername}', |
| 1284 ], | 1328 ], |
| 1285 'tester_configs': [ | 1329 'tester_configs': [ |
| 1286 { | 1330 { |
| 1287 'allow_on_android': True, | 1331 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1288 'run_on_v8': True, | |
| 1289 }, | 1332 }, |
| 1290 ], | 1333 ], |
| 1291 }, | 1334 }, |
| 1292 'pixel_test': { | 1335 'pixel_test': { |
| 1293 'target_name': 'pixel', | 1336 'target_name': 'pixel', |
| 1294 'args': [ | 1337 'args': [ |
| 1295 '--refimg-cloud-storage-bucket', | 1338 '--refimg-cloud-storage-bucket', |
| 1296 'chromium-gpu-archive/reference-images', | 1339 'chromium-gpu-archive/reference-images', |
| 1297 '--os-type', | 1340 '--os-type', |
| 1298 '${os_type}', | 1341 '${os_type}', |
| 1299 '--build-revision', | 1342 '--build-revision', |
| 1300 '${got_revision}', | 1343 '${got_revision}', |
| 1301 '--test-machine-name', | 1344 '--test-machine-name', |
| 1302 '${buildername}', | 1345 '${buildername}', |
| 1303 ], | 1346 ], |
| 1304 'non_precommit_args': [ | 1347 'non_precommit_args': [ |
| 1305 '--upload-refimg-to-cloud-storage', | 1348 '--upload-refimg-to-cloud-storage', |
| 1306 ], | 1349 ], |
| 1307 'precommit_args': [ | 1350 'precommit_args': [ |
| 1308 '--download-refimg-from-cloud-storage', | 1351 '--download-refimg-from-cloud-storage', |
| 1309 ], | 1352 ], |
| 1310 'tester_configs': [ | 1353 'tester_configs': [ |
| 1311 { | 1354 { |
| 1312 'allow_on_android': True, | 1355 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1313 'run_on_v8': True, | |
| 1314 }, | 1356 }, |
| 1315 ], | 1357 ], |
| 1316 }, | 1358 }, |
| 1317 'screenshot_sync': { | 1359 'screenshot_sync': { |
| 1318 'tester_configs': [ | 1360 'tester_configs': [ |
| 1319 { | 1361 { |
| 1320 'allow_on_android': True, | 1362 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1321 'run_on_v8': True, | |
| 1322 }, | 1363 }, |
| 1323 ], | 1364 ], |
| 1324 }, | 1365 }, |
| 1325 'trace_test': { | 1366 'trace_test': { |
| 1326 'tester_configs': [ | 1367 'tester_configs': [ |
| 1327 { | 1368 { |
| 1328 'allow_on_android': True, | 1369 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1329 'run_on_v8': True, | |
| 1330 }, | 1370 }, |
| 1331 ], | 1371 ], |
| 1332 }, | 1372 }, |
| 1333 'webgl_conformance': { | 1373 'webgl_conformance': { |
| 1334 'tester_configs': [ | 1374 'tester_configs': [ |
| 1335 { | 1375 { |
| 1336 'allow_on_android': True, | 1376 'predicate': Predicates.DEFAULT_PLUS_V8, |
| 1337 'run_on_v8': True, | |
| 1338 }, | 1377 }, |
| 1339 ], | 1378 ], |
| 1340 'asan_args': ['--is-asan'], | 1379 'asan_args': ['--is-asan'], |
| 1341 }, | 1380 }, |
| 1342 'webgl_conformance_d3d9_tests': { | 1381 'webgl_conformance_d3d9_tests': { |
| 1343 'tester_configs': [ | 1382 'tester_configs': [ |
| 1344 { | 1383 { |
| 1345 'fyi_only': True, | 1384 # Run this on the FYI waterfall and optional tryservers. |
| 1385 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1346 'os_types': ['win'], | 1386 'os_types': ['win'], |
| 1347 'run_on_optional': True, | |
| 1348 } | 1387 } |
| 1349 ], | 1388 ], |
| 1350 'target_name': 'webgl_conformance', | 1389 'target_name': 'webgl_conformance', |
| 1351 'extra_browser_args': [ | 1390 'extra_browser_args': [ |
| 1352 '--use-angle=d3d9', | 1391 '--use-angle=d3d9', |
| 1353 ], | 1392 ], |
| 1354 'asan_args': ['--is-asan'], | 1393 'asan_args': ['--is-asan'], |
| 1355 }, | 1394 }, |
| 1356 'webgl_conformance_gl_tests': { | 1395 'webgl_conformance_gl_tests': { |
| 1357 'tester_configs': [ | 1396 'tester_configs': [ |
| 1358 { | 1397 { |
| 1359 'fyi_only': True, | 1398 # Run this on the FYI waterfall and optional tryservers. |
| 1399 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1360 'os_types': ['win'], | 1400 'os_types': ['win'], |
| 1361 'run_on_optional': True, | |
| 1362 } | 1401 } |
| 1363 ], | 1402 ], |
| 1364 'disabled_tester_configs': [ | 1403 'disabled_tester_configs': [ |
| 1365 { | 1404 { |
| 1366 'swarming_dimension_sets': [ | 1405 'swarming_dimension_sets': [ |
| 1367 # crbug.com/555545 and crbug.com/649824: | 1406 # crbug.com/555545 and crbug.com/649824: |
| 1368 # Disable webgl_conformance_gl_tests on some Win/AMD cards. | 1407 # Disable webgl_conformance_gl_tests on some Win/AMD cards. |
| 1369 # Always fails on older cards, flaky on newer cards. | 1408 # Always fails on older cards, flaky on newer cards. |
| 1370 # Note that these must match the GPUs exactly; wildcard | 1409 # Note that these must match the GPUs exactly; wildcard |
| 1371 # matches (i.e., only device ID) aren't supported! | 1410 # matches (i.e., only device ID) aren't supported! |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1391 ], | 1430 ], |
| 1392 'target_name': 'webgl_conformance', | 1431 'target_name': 'webgl_conformance', |
| 1393 'extra_browser_args': [ | 1432 'extra_browser_args': [ |
| 1394 '--use-angle=gl', | 1433 '--use-angle=gl', |
| 1395 ], | 1434 ], |
| 1396 'asan_args': ['--is-asan'], | 1435 'asan_args': ['--is-asan'], |
| 1397 }, | 1436 }, |
| 1398 'webgl_conformance_angle_tests': { | 1437 'webgl_conformance_angle_tests': { |
| 1399 'tester_configs': [ | 1438 'tester_configs': [ |
| 1400 { | 1439 { |
| 1401 'fyi_only': True, | 1440 # Run this on the FYI waterfall and optional tryservers. |
| 1441 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1402 'os_types': ['linux'], | 1442 'os_types': ['linux'], |
| 1403 'run_on_optional': True, | |
| 1404 } | 1443 } |
| 1405 ], | 1444 ], |
| 1406 'target_name': 'webgl_conformance', | 1445 'target_name': 'webgl_conformance', |
| 1407 'extra_browser_args': [ | 1446 'extra_browser_args': [ |
| 1408 '--use-gl=angle', | 1447 '--use-gl=angle', |
| 1409 ], | 1448 ], |
| 1410 'asan_args': ['--is-asan'], | 1449 'asan_args': ['--is-asan'], |
| 1411 }, | 1450 }, |
| 1412 'webgl_conformance_d3d11_passthrough': { | 1451 'webgl_conformance_d3d11_passthrough': { |
| 1413 'tester_configs': [ | 1452 'tester_configs': [ |
| 1414 { | 1453 { |
| 1415 'fyi_only': True, | 1454 # Run this on the FYI waterfall and optional tryservers. |
| 1455 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1416 'os_types': ['win'], | 1456 'os_types': ['win'], |
| 1417 'run_on_optional': True, | |
| 1418 } | 1457 } |
| 1419 ], | 1458 ], |
| 1420 'target_name': 'webgl_conformance', | 1459 'target_name': 'webgl_conformance', |
| 1421 'extra_browser_args': [ | 1460 'extra_browser_args': [ |
| 1422 '--use-angle=d3d11', | 1461 '--use-angle=d3d11', |
| 1423 '--use-passthrough-cmd-decoder', | 1462 '--use-passthrough-cmd-decoder', |
| 1424 # TODO(geofflang): Remove --disable-es3-apis once crbug.com/671217 is | 1463 # TODO(geofflang): Remove --disable-es3-apis once crbug.com/671217 is |
| 1425 # complete. | 1464 # complete. |
| 1426 '--disable-es3-apis', | 1465 '--disable-es3-apis', |
| 1427 # TODO(geofflang): --disable-es3-gl-context is required because of | 1466 # TODO(geofflang): --disable-es3-gl-context is required because of |
| 1428 # crbug.com/680522 | 1467 # crbug.com/680522 |
| 1429 '--disable-es3-gl-context', | 1468 '--disable-es3-gl-context', |
| 1430 ], | 1469 ], |
| 1431 'asan_args': ['--is-asan'], | 1470 'asan_args': ['--is-asan'], |
| 1432 }, | 1471 }, |
| 1433 'webgl2_conformance_tests': { | 1472 'webgl2_conformance_tests': { |
| 1434 'tester_configs': [ | 1473 'tester_configs': [ |
| 1435 { | 1474 { |
| 1436 # The WebGL 2.0 conformance tests take over an hour to run on | 1475 # The WebGL 2.0 conformance tests take over an hour to run on |
| 1437 # the Debug bots, which is too long. | 1476 # the Debug bots, which is too long. |
| 1438 'build_configs': ['Release', 'Release_x64'], | 1477 'build_configs': ['Release', 'Release_x64'], |
| 1439 'fyi_only': True, | 1478 'predicate': Predicates.FYI_OPTIONAL_AND_V8, |
| 1440 'run_on_optional': True, | |
| 1441 'run_on_v8': True, | |
| 1442 }, | 1479 }, |
| 1443 ], | 1480 ], |
| 1444 'disabled_tester_configs': [ | 1481 'disabled_tester_configs': [ |
| 1445 { | 1482 { |
| 1446 'names': [ | 1483 'names': [ |
| 1447 # http://crbug.com/599451: this test is currently too slow | 1484 # http://crbug.com/599451: this test is currently too slow |
| 1448 # to run on x64 in Debug mode. Need to shard the tests. | 1485 # to run on x64 in Debug mode. Need to shard the tests. |
| 1449 'Win7 x64 Debug (NVIDIA)', | 1486 'Win7 x64 Debug (NVIDIA)', |
| 1450 ], | 1487 ], |
| 1488 # Don't run these tests on Android yet. |
| 1489 'os_types': ['android'], |
| 1451 }, | 1490 }, |
| 1452 ], | 1491 ], |
| 1453 'target_name': 'webgl_conformance', | 1492 'target_name': 'webgl_conformance', |
| 1454 'args': [ | 1493 'args': [ |
| 1455 '--webgl-conformance-version=2.0.1', | 1494 '--webgl-conformance-version=2.0.1', |
| 1456 # The current working directory when run via isolate is | 1495 # The current working directory when run via isolate is |
| 1457 # out/Debug or out/Release. Reference this file relatively to | 1496 # out/Debug or out/Release. Reference this file relatively to |
| 1458 # it. | 1497 # it. |
| 1459 '--read-abbreviated-json-results-from=' + \ | 1498 '--read-abbreviated-json-results-from=' + \ |
| 1460 '../../content/test/data/gpu/webgl2_conformance_tests_output.json', | 1499 '../../content/test/data/gpu/webgl2_conformance_tests_output.json', |
| 1461 ], | 1500 ], |
| 1462 'asan_args': ['--is-asan'], | 1501 'asan_args': ['--is-asan'], |
| 1463 'swarming': { | 1502 'swarming': { |
| 1464 # These tests currently take about an hour and fifteen minutes | 1503 # These tests currently take about an hour and fifteen minutes |
| 1465 # to run. Split them into roughly 5-minute shards. | 1504 # to run. Split them into roughly 5-minute shards. |
| 1466 'shards': 15, | 1505 'shards': 15, |
| 1467 }, | 1506 }, |
| 1468 }, | 1507 }, |
| 1469 'webgl2_conformance_angle_tests': { | 1508 'webgl2_conformance_angle_tests': { |
| 1470 'tester_configs': [ | 1509 'tester_configs': [ |
| 1471 { | 1510 { |
| 1472 # The WebGL 2.0 conformance tests take over an hour to run on | 1511 # The WebGL 2.0 conformance tests take over an hour to run on |
| 1473 # the Debug bots, which is too long. | 1512 # the Debug bots, which is too long. |
| 1474 'build_configs': ['Release'], | 1513 'build_configs': ['Release'], |
| 1475 'fyi_only': True, | 1514 'predicate': Predicates.FYI_ONLY, |
| 1476 'run_on_optional': False, | 1515 # Only run on the NVIDIA Release and Intel Release Linux bots. |
| 1477 # Only run on the NVIDIA Release and Intel Release Linux bots | |
| 1478 'swarming_dimension_sets': [ | 1516 'swarming_dimension_sets': [ |
| 1479 { | 1517 { |
| 1480 'gpu': '10de:104a', | 1518 'gpu': '10de:104a', |
| 1481 'os': 'Ubuntu' | 1519 'os': 'Ubuntu' |
| 1482 }, | 1520 }, |
| 1483 { | 1521 { |
| 1484 'gpu': '8086:0412', | 1522 'gpu': '8086:0412', |
| 1485 'os': 'Ubuntu' | 1523 'os': 'Ubuntu' |
| 1486 }, | 1524 }, |
| 1487 { | 1525 { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1512 }, | 1550 }, |
| 1513 } | 1551 } |
| 1514 | 1552 |
| 1515 # These isolated tests don't use telemetry. They need to be placed in the | 1553 # These isolated tests don't use telemetry. They need to be placed in the |
| 1516 # isolated_scripts section of the generated json. | 1554 # isolated_scripts section of the generated json. |
| 1517 NON_TELEMETRY_ISOLATED_SCRIPT_TESTS = { | 1555 NON_TELEMETRY_ISOLATED_SCRIPT_TESTS = { |
| 1518 # We run angle_perftests on the ANGLE CQ to ensure the tests don't crash. | 1556 # We run angle_perftests on the ANGLE CQ to ensure the tests don't crash. |
| 1519 'angle_perftests': { | 1557 'angle_perftests': { |
| 1520 'tester_configs': [ | 1558 'tester_configs': [ |
| 1521 { | 1559 { |
| 1522 'fyi_only': True, | 1560 'predicate': Predicates.FYI_AND_OPTIONAL, |
| 1523 'run_on_optional': True, | |
| 1524 # Run on the Win/Linux Release NVIDIA bots. | 1561 # Run on the Win/Linux Release NVIDIA bots. |
| 1525 'build_configs': ['Release'], | 1562 'build_configs': ['Release'], |
| 1526 'swarming_dimension_sets': [ | 1563 'swarming_dimension_sets': [ |
| 1527 { | 1564 { |
| 1528 'gpu': '10de:104a', | 1565 'gpu': '10de:104a', |
| 1529 'os': 'Windows-2008ServerR2-SP1' | 1566 'os': 'Windows-2008ServerR2-SP1' |
| 1530 }, | 1567 }, |
| 1531 { | 1568 { |
| 1532 'gpu': '10de:104a', | 1569 'gpu': '10de:104a', |
| 1533 'os': 'Ubuntu' | 1570 'os': 'Ubuntu' |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1553 if set(dimensions.items()).issubset(cur_dims.items()): | 1590 if set(dimensions.items()).issubset(cur_dims.items()): |
| 1554 return True | 1591 return True |
| 1555 return False | 1592 return False |
| 1556 | 1593 |
| 1557 def is_android(tester_config): | 1594 def is_android(tester_config): |
| 1558 return tester_config['os_type'] == 'android' | 1595 return tester_config['os_type'] == 'android' |
| 1559 | 1596 |
| 1560 def is_asan(tester_config): | 1597 def is_asan(tester_config): |
| 1561 return tester_config.get('is_asan', False) | 1598 return tester_config.get('is_asan', False) |
| 1562 | 1599 |
| 1563 def tester_config_matches_tester(tester_name, tester_config, tc, is_fyi, is_v8, | 1600 |
| 1601 # Returns a list describing the type of this tester. It may include |
| 1602 # both the type of the bot as well as the waterfall. |
| 1603 def get_tester_type(tester_config): |
| 1604 result = [] |
| 1605 if 'type' in tester_config: |
| 1606 result.append(tester_config['type']) |
| 1607 result.append(tester_config['parent']['type']) |
| 1608 return result |
| 1609 |
| 1610 def tester_config_matches_tester(tester_name, tester_config, tc, |
| 1564 check_waterfall): | 1611 check_waterfall): |
| 1565 if check_waterfall: | 1612 if check_waterfall: |
| 1566 if tc.get('fyi_only', False) and not is_fyi: | 1613 if not tc.get('predicate', Predicates.DEFAULT)( |
| 1567 return False | 1614 get_tester_type(tester_config)): |
| 1568 | |
| 1569 # Handle the optional tryservers with the 'run_on_optional' flag. | |
| 1570 # Only a subset of the tests run on these tryservers. | |
| 1571 if tester_name.startswith('Optional') and not tc.get( | |
| 1572 'run_on_optional', False): | |
| 1573 return False | |
| 1574 | |
| 1575 # Handle the client.v8.fyi GPU bots with the 'run_on_v8' flag. | |
| 1576 if (is_v8 and not tc.get('run_on_v8', False)): | |
| 1577 return False | 1615 return False |
| 1578 | 1616 |
| 1579 if 'names' in tc: | 1617 if 'names' in tc: |
| 1580 # Give priority to matching the tester_name. | 1618 # Give priority to matching the tester_name. |
| 1581 if tester_name in tc['names']: | 1619 if tester_name in tc['names']: |
| 1582 return True | 1620 return True |
| 1583 if not tester_name in tc['names']: | 1621 if not tester_name in tc['names']: |
| 1584 return False | 1622 return False |
| 1585 if 'os_types' in tc: | 1623 if 'os_types' in tc: |
| 1586 if not tester_config['os_type'] in tc['os_types']: | 1624 if not tester_config['os_type'] in tc['os_types']: |
| 1587 return False | 1625 return False |
| 1588 if 'build_configs' in tc: | 1626 if 'build_configs' in tc: |
| 1589 if not tester_config['build_config'] in tc['build_configs']: | 1627 if not tester_config['build_config'] in tc['build_configs']: |
| 1590 return False | 1628 return False |
| 1591 if 'swarming_dimension_sets' in tc: | 1629 if 'swarming_dimension_sets' in tc: |
| 1592 if not matches_swarming_dimensions(tester_config, | 1630 if not matches_swarming_dimensions(tester_config, |
| 1593 tc['swarming_dimension_sets']): | 1631 tc['swarming_dimension_sets']): |
| 1594 return False | 1632 return False |
| 1595 if is_android(tester_config): | |
| 1596 if not tc.get('allow_on_android', False): | |
| 1597 return False | |
| 1598 return True | 1633 return True |
| 1599 | 1634 |
| 1600 def should_run_on_tester(tester_name, tester_config, test_config, | 1635 def should_run_on_tester(tester_name, tester_config, test_config): |
| 1601 is_fyi, is_v8): | |
| 1602 # Check if this config is disabled on this tester | 1636 # Check if this config is disabled on this tester |
| 1603 if 'disabled_tester_configs' in test_config: | 1637 if 'disabled_tester_configs' in test_config: |
| 1604 for dtc in test_config['disabled_tester_configs']: | 1638 for dtc in test_config['disabled_tester_configs']: |
| 1605 if tester_config_matches_tester(tester_name, tester_config, dtc, | 1639 if tester_config_matches_tester(tester_name, tester_config, dtc, False): |
| 1606 is_fyi, is_v8, False): | |
| 1607 return False | 1640 return False |
| 1608 if 'tester_configs' in test_config: | 1641 if 'tester_configs' in test_config: |
| 1609 for tc in test_config['tester_configs']: | 1642 for tc in test_config['tester_configs']: |
| 1610 if tester_config_matches_tester(tester_name, tester_config, tc, | 1643 if tester_config_matches_tester(tester_name, tester_config, tc, True): |
| 1611 is_fyi, is_v8, True): | |
| 1612 return True | 1644 return True |
| 1613 return False | 1645 return False |
| 1614 else: | 1646 else: |
| 1615 # If tester_configs is unspecified, run nearly all tests by default, | 1647 # If tester_configs is unspecified, run nearly all tests by default, |
| 1616 # but let tester_config_matches_tester filter out any undesired | 1648 # but let tester_config_matches_tester filter out any undesired |
| 1617 # tests, such as ones that should only run on the Optional bots. | 1649 # tests, such as ones that should only run on the Optional bots. |
| 1618 return tester_config_matches_tester(tester_name, tester_config, {}, | 1650 return tester_config_matches_tester(tester_name, tester_config, {}, True) |
| 1619 is_fyi, is_v8, True) | |
| 1620 | 1651 |
| 1621 def generate_gtest(tester_name, tester_config, test, test_config, | 1652 def remove_tester_configs_from_result(result): |
| 1622 is_fyi, is_v8): | |
| 1623 if not should_run_on_tester(tester_name, tester_config, test_config, | |
| 1624 is_fyi, is_v8): | |
| 1625 return None | |
| 1626 result = copy.deepcopy(test_config) | |
| 1627 if 'tester_configs' in result: | 1653 if 'tester_configs' in result: |
| 1628 # Don't print the tester_configs in the JSON. | 1654 # Don't print the tester_configs in the JSON. |
| 1629 result.pop('tester_configs') | 1655 result.pop('tester_configs') |
| 1630 if 'disabled_tester_configs' in result: | 1656 if 'disabled_tester_configs' in result: |
| 1631 # Don't print the disabled_tester_configs in the JSON. | 1657 # Don't print the disabled_tester_configs in the JSON. |
| 1632 result.pop('disabled_tester_configs') | 1658 result.pop('disabled_tester_configs') |
| 1659 |
| 1660 def generate_gtest(tester_name, tester_config, test, test_config): |
| 1661 if not should_run_on_tester(tester_name, tester_config, test_config): |
| 1662 return None |
| 1663 result = copy.deepcopy(test_config) |
| 1633 if 'test' in result: | 1664 if 'test' in result: |
| 1634 result['name'] = test | 1665 result['name'] = test |
| 1635 else: | 1666 else: |
| 1636 result['test'] = test | 1667 result['test'] = test |
| 1637 if (not tester_config['swarming']) and test in NON_SWARMED_GTESTS: | 1668 if (not tester_config['swarming']) and test in NON_SWARMED_GTESTS: |
| 1638 # Need to override this result. | 1669 # Need to override this result. |
| 1639 result = copy.deepcopy(NON_SWARMED_GTESTS[test]) | 1670 result = copy.deepcopy(NON_SWARMED_GTESTS[test]) |
| 1640 result['name'] = test | 1671 result['name'] = test |
| 1641 else: | 1672 else: |
| 1642 if not 'swarming' in result: | 1673 if not 'swarming' in result: |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1684 if not 'args' in result: | 1715 if not 'args' in result: |
| 1685 result['args'] = [] | 1716 result['args'] = [] |
| 1686 result['args'] += result['android_args'] | 1717 result['args'] += result['android_args'] |
| 1687 # Don't put the android args in the JSON. | 1718 # Don't put the android args in the JSON. |
| 1688 result.pop('android_args') | 1719 result.pop('android_args') |
| 1689 if 'desktop_swarming' in result: | 1720 if 'desktop_swarming' in result: |
| 1690 if not is_android(tester_config): | 1721 if not is_android(tester_config): |
| 1691 result['swarming'].update(result['desktop_swarming']) | 1722 result['swarming'].update(result['desktop_swarming']) |
| 1692 # Don't put the desktop_swarming in the JSON. | 1723 # Don't put the desktop_swarming in the JSON. |
| 1693 result.pop('desktop_swarming') | 1724 result.pop('desktop_swarming') |
| 1725 # Remove the tester_configs and disabled_tester_configs, if present, |
| 1726 # from the result. |
| 1727 remove_tester_configs_from_result(result) |
| 1694 | 1728 |
| 1695 # This flag only has an effect on the Linux bots that run tests | 1729 # This flag only has an effect on the Linux bots that run tests |
| 1696 # locally (as opposed to via Swarming), which are only those couple | 1730 # locally (as opposed to via Swarming), which are only those couple |
| 1697 # on the chromium.gpu.fyi waterfall. Still, there is no harm in | 1731 # on the chromium.gpu.fyi waterfall. Still, there is no harm in |
| 1698 # specifying it everywhere. | 1732 # specifying it everywhere. |
| 1699 result['use_xvfb'] = False | 1733 result['use_xvfb'] = False |
| 1700 return result | 1734 return result |
| 1701 | 1735 |
| 1702 def generate_gtests(tester_name, tester_config, test_dictionary, is_fyi, is_v8): | 1736 def generate_gtests(tester_name, tester_config, test_dictionary): |
| 1703 # The relative ordering of some of the tests is important to | 1737 # The relative ordering of some of the tests is important to |
| 1704 # minimize differences compared to the handwritten JSON files, since | 1738 # minimize differences compared to the handwritten JSON files, since |
| 1705 # Python's sorts are stable and there are some tests with the same | 1739 # Python's sorts are stable and there are some tests with the same |
| 1706 # key (see gles2_conform_d3d9_test and similar variants). Avoid | 1740 # key (see gles2_conform_d3d9_test and similar variants). Avoid |
| 1707 # losing the order by avoiding coalescing the dictionaries into one. | 1741 # losing the order by avoiding coalescing the dictionaries into one. |
| 1708 gtests = [] | 1742 gtests = [] |
| 1709 for test_name, test_config in sorted(test_dictionary.iteritems()): | 1743 for test_name, test_config in sorted(test_dictionary.iteritems()): |
| 1710 test = generate_gtest(tester_name, tester_config, | 1744 test = generate_gtest(tester_name, tester_config, |
| 1711 test_name, test_config, is_fyi, is_v8) | 1745 test_name, test_config) |
| 1712 if test: | 1746 if test: |
| 1713 # generate_gtest may veto the test generation on this platform. | 1747 # generate_gtest may veto the test generation on this platform. |
| 1714 gtests.append(test) | 1748 gtests.append(test) |
| 1715 return gtests | 1749 return gtests |
| 1716 | 1750 |
| 1717 def generate_isolated_test(tester_name, tester_config, test, test_config, | 1751 def generate_isolated_test(tester_name, tester_config, test, test_config, |
| 1718 is_fyi, is_v8, extra_browser_args, isolate_name, | 1752 extra_browser_args, isolate_name, |
| 1719 override_compile_targets, prefix_args): | 1753 override_compile_targets, prefix_args): |
| 1720 if not should_run_on_tester(tester_name, tester_config, test_config, | 1754 if not should_run_on_tester(tester_name, tester_config, test_config): |
| 1721 is_fyi, is_v8): | |
| 1722 return None | 1755 return None |
| 1723 test_args = ['-v'] | 1756 test_args = ['-v'] |
| 1724 extra_browser_args_string = "" | 1757 extra_browser_args_string = "" |
| 1725 if extra_browser_args != None: | 1758 if extra_browser_args != None: |
| 1726 extra_browser_args_string += ' '.join(extra_browser_args) | 1759 extra_browser_args_string += ' '.join(extra_browser_args) |
| 1727 if 'extra_browser_args' in test_config: | 1760 if 'extra_browser_args' in test_config: |
| 1728 extra_browser_args_string += ' ' + ' '.join( | 1761 extra_browser_args_string += ' ' + ' '.join( |
| 1729 test_config['extra_browser_args']) | 1762 test_config['extra_browser_args']) |
| 1730 if extra_browser_args_string != "": | 1763 if extra_browser_args_string != "": |
| 1731 test_args.append('--extra-browser-args=' + extra_browser_args_string) | 1764 test_args.append('--extra-browser-args=' + extra_browser_args_string) |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1762 } | 1795 } |
| 1763 if override_compile_targets != None: | 1796 if override_compile_targets != None: |
| 1764 result['override_compile_targets'] = override_compile_targets | 1797 result['override_compile_targets'] = override_compile_targets |
| 1765 if 'non_precommit_args' in test_config: | 1798 if 'non_precommit_args' in test_config: |
| 1766 result['non_precommit_args'] = test_config['non_precommit_args'] | 1799 result['non_precommit_args'] = test_config['non_precommit_args'] |
| 1767 if 'precommit_args' in test_config: | 1800 if 'precommit_args' in test_config: |
| 1768 result['precommit_args'] = test_config['precommit_args'] | 1801 result['precommit_args'] = test_config['precommit_args'] |
| 1769 return result | 1802 return result |
| 1770 | 1803 |
| 1771 def generate_telemetry_test(tester_name, tester_config, | 1804 def generate_telemetry_test(tester_name, tester_config, |
| 1772 test, test_config, is_fyi, is_v8): | 1805 test, test_config): |
| 1773 extra_browser_args = ['--enable-logging=stderr', '--js-flags=--expose-gc'] | 1806 extra_browser_args = ['--enable-logging=stderr', '--js-flags=--expose-gc'] |
| 1774 benchmark_name = test_config.get('target_name') or test | 1807 benchmark_name = test_config.get('target_name') or test |
| 1775 prefix_args = [ | 1808 prefix_args = [ |
| 1776 benchmark_name, | 1809 benchmark_name, |
| 1777 '--show-stdout', | 1810 '--show-stdout', |
| 1778 '--browser=%s' % tester_config['build_config'].lower() | 1811 '--browser=%s' % tester_config['build_config'].lower() |
| 1779 ] | 1812 ] |
| 1780 return generate_isolated_test(tester_name, tester_config, test, | 1813 return generate_isolated_test(tester_name, tester_config, test, |
| 1781 test_config, is_fyi, is_v8, extra_browser_args, | 1814 test_config, extra_browser_args, |
| 1782 'telemetry_gpu_integration_test', | 1815 'telemetry_gpu_integration_test', |
| 1783 ['telemetry_gpu_integration_test_run'], | 1816 ['telemetry_gpu_integration_test_run'], |
| 1784 prefix_args) | 1817 prefix_args) |
| 1785 | 1818 |
| 1786 def generate_telemetry_tests(tester_name, tester_config, | 1819 def generate_telemetry_tests(tester_name, tester_config, |
| 1787 test_dictionary, is_fyi, is_v8): | 1820 test_dictionary): |
| 1788 isolated_scripts = [] | 1821 isolated_scripts = [] |
| 1789 for test_name, test_config in sorted(test_dictionary.iteritems()): | 1822 for test_name, test_config in sorted(test_dictionary.iteritems()): |
| 1790 test = generate_telemetry_test( | 1823 test = generate_telemetry_test( |
| 1791 tester_name, tester_config, test_name, test_config, is_fyi, is_v8) | 1824 tester_name, tester_config, test_name, test_config) |
| 1792 if test: | 1825 if test: |
| 1793 isolated_scripts.append(test) | 1826 isolated_scripts.append(test) |
| 1794 return isolated_scripts | 1827 return isolated_scripts |
| 1795 | 1828 |
| 1796 def generate_non_telemetry_isolated_test(tester_name, tester_config, | 1829 def generate_non_telemetry_isolated_test(tester_name, tester_config, |
| 1797 test, test_config, is_fyi, is_v8): | 1830 test, test_config): |
| 1798 return generate_isolated_test(tester_name, tester_config, test, | 1831 return generate_isolated_test(tester_name, tester_config, test, |
| 1799 test_config, is_fyi, is_v8, | 1832 test_config, |
| 1800 None, test, None, []) | 1833 None, test, None, []) |
| 1801 | 1834 |
| 1802 def generate_non_telemetry_isolated_tests(tester_name, tester_config, | 1835 def generate_non_telemetry_isolated_tests(tester_name, tester_config, |
| 1803 test_dictionary, is_fyi, is_v8): | 1836 test_dictionary): |
| 1804 isolated_scripts = [] | 1837 isolated_scripts = [] |
| 1805 for test_name, test_config in sorted(test_dictionary.iteritems()): | 1838 for test_name, test_config in sorted(test_dictionary.iteritems()): |
| 1806 test = generate_non_telemetry_isolated_test( | 1839 test = generate_non_telemetry_isolated_test( |
| 1807 tester_name, tester_config, test_name, test_config, is_fyi, is_v8) | 1840 tester_name, tester_config, test_name, test_config) |
| 1808 if test: | 1841 if test: |
| 1809 isolated_scripts.append(test) | 1842 isolated_scripts.append(test) |
| 1810 return isolated_scripts | 1843 return isolated_scripts |
| 1811 | 1844 |
| 1812 def generate_all_tests(waterfall, filename, is_fyi, is_v8): | 1845 def install_parent_links(waterfall): |
| 1846 # Make the testers point back to the top-level waterfall so that we |
| 1847 # can ask about its properties when determining whether a given test |
| 1848 # should run on a given waterfall. |
| 1849 for name, config in waterfall.get('testers', {}).iteritems(): |
| 1850 config['parent'] = waterfall |
| 1851 |
| 1852 def generate_all_tests(waterfall, filename): |
| 1813 tests = {} | 1853 tests = {} |
| 1814 for builder, config in waterfall.get('prologue', {}).iteritems(): | 1854 for builder, config in waterfall.get('prologue', {}).iteritems(): |
| 1815 tests[builder] = config | 1855 tests[builder] = config |
| 1816 for builder, config in waterfall.get('builders', {}).iteritems(): | 1856 for builder, config in waterfall.get('builders', {}).iteritems(): |
| 1817 tests[builder] = config | 1857 tests[builder] = config |
| 1818 for name, config in waterfall['testers'].iteritems(): | 1858 for name, config in waterfall['testers'].iteritems(): |
| 1819 gtests = generate_gtests(name, config, COMMON_GTESTS, is_fyi, is_v8) | 1859 gtests = generate_gtests(name, config, COMMON_GTESTS) |
| 1820 isolated_scripts = \ | 1860 isolated_scripts = \ |
| 1821 generate_telemetry_tests( | 1861 generate_telemetry_tests( |
| 1822 name, config, TELEMETRY_GPU_INTEGRATION_TESTS, is_fyi, is_v8) + \ | 1862 name, config, TELEMETRY_GPU_INTEGRATION_TESTS) + \ |
| 1823 generate_non_telemetry_isolated_tests(name, config, | 1863 generate_non_telemetry_isolated_tests(name, config, |
| 1824 NON_TELEMETRY_ISOLATED_SCRIPT_TESTS, is_fyi, is_v8) | 1864 NON_TELEMETRY_ISOLATED_SCRIPT_TESTS) |
| 1825 tests[name] = { | 1865 tests[name] = { |
| 1826 'gtest_tests': sorted(gtests, key=lambda x: x['test']), | 1866 'gtest_tests': sorted(gtests, key=lambda x: x['test']), |
| 1827 'isolated_scripts': sorted(isolated_scripts, key=lambda x: x['name']) | 1867 'isolated_scripts': sorted(isolated_scripts, key=lambda x: x['name']) |
| 1828 } | 1868 } |
| 1829 tests['AAAAA1 AUTOGENERATED FILE DO NOT EDIT'] = {} | 1869 tests['AAAAA1 AUTOGENERATED FILE DO NOT EDIT'] = {} |
| 1830 tests['AAAAA2 See generate_buildbot_json.py to make changes'] = {} | 1870 tests['AAAAA2 See generate_buildbot_json.py to make changes'] = {} |
| 1831 with open(os.path.join(SRC_DIR, 'testing', 'buildbot', filename), 'wb') as fp: | 1871 with open(os.path.join(SRC_DIR, 'testing', 'buildbot', filename), 'wb') as fp: |
| 1832 json.dump(tests, fp, indent=2, separators=(',', ': '), sort_keys=True) | 1872 json.dump(tests, fp, indent=2, separators=(',', ': '), sort_keys=True) |
| 1833 fp.write('\n') | 1873 fp.write('\n') |
| 1834 | 1874 |
| 1835 def main(): | 1875 def main(): |
| 1836 generate_all_tests(FYI_WATERFALL, 'chromium.gpu.fyi.json', True, False) | 1876 install_parent_links(FYI_WATERFALL) |
| 1837 generate_all_tests(WATERFALL, 'chromium.gpu.json', False, False) | 1877 install_parent_links(WATERFALL) |
| 1838 generate_all_tests(V8_FYI_WATERFALL, 'client.v8.fyi.json', True, True) | 1878 install_parent_links(V8_FYI_WATERFALL) |
| 1879 |
| 1880 generate_all_tests(FYI_WATERFALL, 'chromium.gpu.fyi.json') |
| 1881 generate_all_tests(WATERFALL, 'chromium.gpu.json') |
| 1882 generate_all_tests(V8_FYI_WATERFALL, 'client.v8.fyi.json') |
| 1839 return 0 | 1883 return 0 |
| 1840 | 1884 |
| 1841 if __name__ == "__main__": | 1885 if __name__ == "__main__": |
| 1842 sys.exit(main()) | 1886 sys.exit(main()) |
| OLD | NEW |