# Copyright 2021 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.cellular-ota-multisim-unstable'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:cellular_ota_flaky'
MAX_RESULT_SIZE_KB = 1024 * 1024
DEPENDENCIES = "carrier:multisim"

DOC = '''
Run the unstable Tast tests which verify Cellular multi-sim functionality.

"group:cellular_multisim" indicates that the test runs on DUTs with a Cellular
modem and multiple provisioned SIM slots.
  * "cellular_multisim_unstable": Unstable tests that will be discluded from
    this suite.

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:cellular_multisim" && "cellular_multisim_unstable")'],
                 ignore_test_failures=True, max_run_sec=10800,
                 command_args=args)

parallel_simple(run, machines)
