Increase WebGL conformance CQ sharding

Increases the sharding on several CI builders that are mirrored to the
CQ in order to get the total step time under 10 minutes, which is a
project-wide goal this quarter.

Affected CQ builders:
1. android-marshmallow-arm64-rel, currently taking 15 minutes
2. chromeos-amd64-generic-rel, currently taking 13 minutes
3. fuchsia_x64, currently taking 28 minutes

Sharding modifications are made in test_suites.pyl instead of
test_suite_exceptions.pyl to avoid adding any more exceptions, so a
few additional builders have their shards increased as well.

Bug: 1201278
Change-Id: I67821cc424e4cc9ee8df23b8683648362a6d1396
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2844338
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#874928}
GitOrigin-RevId: bc984e245f8b925421690db3e00fef7107432bf9
diff --git a/buildbot/chromium.chromiumos.json b/buildbot/chromium.chromiumos.json
index ca2017f..86e5860 100644
--- a/buildbot/chromium.chromiumos.json
+++ b/buildbot/chromium.chromiumos.json
@@ -1153,7 +1153,7 @@
             ]
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 12
+          "shards": 18
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
diff --git a/buildbot/chromium.clang.json b/buildbot/chromium.clang.json
index a3ef6ed..3a1bc82 100644
--- a/buildbot/chromium.clang.json
+++ b/buildbot/chromium.clang.json
@@ -13420,7 +13420,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 18
         },
         "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/"
       }
diff --git a/buildbot/chromium.fyi.json b/buildbot/chromium.fyi.json
index 104d005..b48603c 100644
--- a/buildbot/chromium.fyi.json
+++ b/buildbot/chromium.fyi.json
@@ -14420,7 +14420,7 @@
             ]
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 2
+          "shards": 18
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
diff --git a/buildbot/chromium.gpu.fyi.json b/buildbot/chromium.gpu.fyi.json
index b752907..7a84e12 100644
--- a/buildbot/chromium.gpu.fyi.json
+++ b/buildbot/chromium.gpu.fyi.json
@@ -2581,7 +2581,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 12
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
@@ -3219,7 +3219,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 12
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
@@ -4568,7 +4568,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 12
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
@@ -5251,7 +5251,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 12
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
diff --git a/buildbot/chromium.gpu.json b/buildbot/chromium.gpu.json
index a4d531a..fcfa019 100644
--- a/buildbot/chromium.gpu.json
+++ b/buildbot/chromium.gpu.json
@@ -479,7 +479,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 12
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
diff --git a/buildbot/chromium.linux.json b/buildbot/chromium.linux.json
index 6335abb..93c30b2 100644
--- a/buildbot/chromium.linux.json
+++ b/buildbot/chromium.linux.json
@@ -4668,7 +4668,7 @@
           ],
           "idempotent": false,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 6
+          "shards": 18
         },
         "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/"
       }
diff --git a/buildbot/generate_buildbot_json.py b/buildbot/generate_buildbot_json.py
index 492af24..e08711e 100755
--- a/buildbot/generate_buildbot_json.py
+++ b/buildbot/generate_buildbot_json.py
@@ -610,13 +610,19 @@
           tester_config['swarming']['dimension_sets'])
       self.dictionary_merge(generated_test['swarming'],
                             tester_config['swarming'])
-    # Apply any Android-specific Swarming dimensions after the generic ones.
+    # Apply any platform-specific Swarming dimensions after the generic ones.
     if 'android_swarming' in generated_test:
       if self.is_android(tester_config): # pragma: no cover
         self.dictionary_merge(
           generated_test['swarming'],
           generated_test['android_swarming']) # pragma: no cover
       del generated_test['android_swarming'] # pragma: no cover
+    if 'chromeos_swarming' in generated_test:
+      if self.is_chromeos(tester_config):  # pragma: no cover
+        self.dictionary_merge(
+            generated_test['swarming'],
+            generated_test['chromeos_swarming'])  # pragma: no cover
+      del generated_test['chromeos_swarming']  # pragma: no cover
 
   def clean_swarming_dictionary(self, swarming_dict):
     # Clean out redundant entries from a test's "swarming" dictionary.
diff --git a/buildbot/test_suite_exceptions.pyl b/buildbot/test_suite_exceptions.pyl
index 3e5fc41..05578bc 100644
--- a/buildbot/test_suite_exceptions.pyl
+++ b/buildbot/test_suite_exceptions.pyl
@@ -2941,21 +2941,6 @@
     ],
   },
   'webgl_conformance_tests': {
-    'modifications': {
-      # On desktop platforms these don't take very long (~7 minutes),
-      # but on Android they take ~30 minutes and we want to use more
-      # shards than on desktop.
-      'Android Release (Nexus 5X)': {
-        'swarming': {
-          'shards': 6,
-        },
-      },
-      'chromeos-amd64-generic-rel': {
-        'swarming': {
-          'shards': 12,
-        },
-      },
-    },
     'remove_from': [
       # Too slow on this configuration, which is severely hardware
       # constrained. crbug.com/950690
diff --git a/buildbot/test_suites.pyl b/buildbot/test_suites.pyl
index a2ea34c..2b0d744 100644
--- a/buildbot/test_suites.pyl
+++ b/buildbot/test_suites.pyl
@@ -1720,7 +1720,7 @@
           'enable_resultdb',
         ],
         'swarming': {
-          'shards': 6,
+          'shards': 18,
         },
       }
     },
@@ -3879,7 +3879,10 @@
           'shards': 2,
         },
         'android_swarming': {
-          'shards': 6,
+          'shards': 12,
+        },
+        'chromeos_swarming': {
+          'shards': 18,
         },
       },
     },