# Copyright 2017 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.

from autotest_lib.server import utils

AUTHOR = "denniswu@chromium.org"
NAME = "enterprise_CFM_MeetAppSanity.partners"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "enterprise"
TEST_TYPE = "server"
ATTRIBUTES = "suite:bluestreak-partners"
JOB_RETRIES = 3

DOC = """
This test clears the TPM if necessary, enrolls the device into CFM and runs a
series of sanity test actions in the meet app.
It clears the TPM at the end of the test run. Every time the TPM is cleared,
the system is rebooted.
This test bypasses servo check and is used by third party vendor PAL Acoustics.
"""

args_dict = utils.args_to_dict(args)


def run_test(machine):
    host = hosts.create_host(machine, servo_args=None)
    job.run_test('enterprise_CFM_MeetAppSanity', host=host, tag='partners')


parallel_simple(run_test, machines)
