# Copyright 2016 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_Sanity.partners"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "enterprise"
TEST_TYPE = "server"
JOB_RETRIES = 3

DOC = """
This test clears the TPM if necessary, enrolls the device as a remora device
and runs a series of test actions and performs verifications to make sure CFM
enrolled devices behave as expected. 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_Sanity', host=host, tag='partners')


parallel_simple(run_test, machines)
