# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = "n/a"
NAME = "platform_PerfCujFetchCloudConfig"
METADATA = {
    "contacts": ["chromeos-perf-reliability-eng@google.com", "abergman@google.com"],
    "bug_component": "b:1025042",
    "criteria": "Not an actual test, but rather loads a fresh copy of the performance CUJ config from the cloud.",
    "hw_agnostic": True
}
ATTRIBUTES = "suite:performance_cuj, suite:performance_cuj_quick, suite:performance_cuj_experimental, suite:performance_cuj_lacros, suite:performance_cuj_v2, suite:performance_cuj_quick_v2, suite:performance_cuj_experimental_v2"
TIME = "SHORT"
TEST_TYPE = "server"
PRIORITY = 6000

DOC = """
This test file doesn't run any actual stress, but rather loads a fresh copy of
the performance CUJ config from the cloud.

This test has higher priority than any test of the suite, to ensure it's running
first and always overrides cached configuration with the cloud one.
"""

def run(machine):
    host = hosts.create_host(machine)
    job.run_test('platform_FetchCloudConfig', host=host, disable_sysinfo=True)

parallel_simple(run, machines)
