# 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 = 'ChromeOS SW Engprod Team (chromeos-sw-engprod@google.com)'
NAME = 'tast.cross-device'
METADATA = {
    'contacts': ['chromeos-sw-engprod@google.com', 'chromeos-cross-device-eng@google.com'],
    'bug_component': 'b:1131837',
    'criteria': 'Tauto wrapper for specified tast tests',
}
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:cross-device'
MAX_RESULT_SIZE_KB = 1024 * 1024
PY_VERSION = 3

# tast.py uses binaries installed from autotest_server_package.tar.bz2.
REQUIRE_SSP = True

DOC = '''Run the Tast Cross Device test suite.'''

from autotest_lib.server.cros.crossdevice import cross_device_util

def run(machine):
    # Get host objects for each device.
    host = hosts.create_host(machine)
    companions = hosts.create_companion_hosts(companion_hosts)
    phone = companions[0]

    androidcomp = "android.companions=%s:%s:model" % (phone.associated_hostname, phone.serial_number)

    job.run_test('tast',
                 host=host,
                 test_exprs=['("group:cross-device" && ("cross-device_crossdevice" || "cross-device_phonehub" || "cross-device_smartlock") && !"cross-device_floss")'],
                 ignore_test_failures=True, max_run_sec=10800,
                 command_args=args,
                 varslist=[androidcomp])
parallel_simple(run, machines)
