# 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-func-stable'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:wifi_matfunc'
MAX_RESULT_SIZE_KB = 1024 * 1024

DOC = '''
Run the stable Tast tests for basic WiFi functions on suite:wifi_matfunc.

"group:wificell" indicates that the test runs on a wificell fixture. Its
sub-attributes:
  * "wificell_func": the test is used to verify basic WiFi functionality.
  * "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_func && '
                             '!wificell_unstable)'],
                 ignore_test_failures=True, max_run_sec=10800,
                 command_args=args)

parallel_simple(run, machines)
