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

AUTHOR = 'The ChromiumOS Authors'
NAME = 'tast.wificell-stress'
METADATA = {
    "contacts": ["chromeos-wifi-champs@google.com"], # WiFi oncall rotation
    "bug_component": "b:893827", # ChromeOS > Platform > Connectivity > WiFi
    'criteria': 'Tauto wrapper for specified tast tests',
}
TIME = 'LONG'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:wifi_stress'
MAX_RESULT_SIZE_KB = 1024 * 1024
PY_VERSION = 3
DEPENDENCIES = 'peripheral_wifi_state:WORKING'

DOC = '''
Run stress tests for WiFi functionalities using Wificell fixture.

"group:wificell" indicates that the test runs on a wificell fixture. Its
sub-attributes:
  * "wificell_stress": Stress tests WiFi functionalities using Wificell fixture.

Tast is an integration-testing framework analagous to the test-running portion
of Autotest. See https://chromium.googlesource.com/chromiumos/platform/tast/ for
more information.

See http://go/tast-failures for information about investigating failures.
'''

def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['("group:wificell" && wificell_stress)'],
                 ignore_test_failures=False, max_run_sec=28800,
                 command_args=args)

parallel_simple(run, machines)
