Commit 5e0e8dd9 authored by Emily Hanley's avatar Emily Hanley Committed by Commit Bot

Adding shard as a tag to perf swarming devices.

This is needed for soft device affinity so we have a way to know
which bot each shard ran on last.

Bug: 831252
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Idfde1b5f85816fdc9f496de2e9bbac4ef8298693
Reviewed-on: https://chromium-review.googlesource.com/1005721
Commit-Queue: Emily Hanley <eyaich@chromium.org>
Reviewed-by: default avatarKenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549929}
parent a8aac34e
......@@ -91,12 +91,13 @@ class BaseTestTriggerer(object):
additional_args = all_args[:dash_ind] + bot_args + all_args[dash_ind:]
else:
additional_args = all_args + bot_args
return self.append_additional_args(additional_args)
return self.append_additional_args(additional_args, shard_index)
def append_additional_args(self, args):
def append_additional_args(self, args, shard_index):
""" Gives subclasses ability to append additional args if necessary
Base class just returns given get."""
Base class just returns given args."""
del shard_index # unused
return args
def parse_bot_configs(self, args):
......
......@@ -40,8 +40,18 @@ class PerfDeviceTriggerer(base_test_triggerer.BaseTestTriggerer):
def __init__(self):
super(PerfDeviceTriggerer, self).__init__()
def append_additional_args(self, args):
return args
def append_additional_args(self, args, shard_index):
# Append a tag to the swarming task with the shard number
# so we can query for the last bot that ran a specific shard.
tag = 'shard:%d' % shard_index
shard_tag = ['--tag', tag]
# Need to append this before the dash if present so it gets fed to
# the swarming task itself.
if '--' in args:
dash_ind = args.index('--')
return args[:dash_ind] + shard_tag + args[dash_ind:]
else:
return args + shard_tag
def select_config_indices(self, args, verbose):
# For perf we want to trigger a job for every valid config since
......
......@@ -120,9 +120,13 @@ class UnitTest(unittest.TestCase):
def test_shard_env_vars_and_bot_id(self):
triggerer = self.basic_setup()
self.assertTrue(self.list_contains_sublist(
triggerer._swarming_runs[0], ['--bot', 'build1']))
triggerer._swarming_runs[0], ['id', 'build1']))
self.assertTrue(self.list_contains_sublist(
triggerer._swarming_runs[1], ['--bot', 'build2']))
triggerer._swarming_runs[1], ['id', 'build2']))
self.assertTrue(self.list_contains_sublist(
triggerer._swarming_runs[0], ['--tag', 'shard:0']))
self.assertTrue(self.list_contains_sublist(
triggerer._swarming_runs[1], ['--tag', 'shard:1']))
self.assertTrue(self.list_contains_sublist(
triggerer._swarming_runs[0], ['--env', 'GTEST_SHARD_INDEX', '0']))
self.assertTrue(self.list_contains_sublist(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment