# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = 'Chromium OS team'
NAME = 'tast.wificell-perf-unstable'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:wifi_func_tast'
MAX_RESULT_SIZE_KB = 1024 * 1024

DOC = '''
Run the unstable Tast tests which measure WiFi performance.

"group:wificell" indicates that the test runs on a wificell fixture. Its
sub-attributes:
  * "wificell_perf": the test is used to measure WiFi performance.
  * "wificell_unstable": the test is unstable or yet to be verified as stable.

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_perf && '
                             'wificell_unstable)'],
                 ignore_test_failures=True, max_run_sec=10800,
                 command_args=args)

parallel_simple(run, machines)
