# 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 = "dtosic@chromium.org"
NAME = "enterprise_CFM_Perf.meet_app"
TIME = "MEDIUM"
TEST_CATEGORY = "Performance"
TEST_CLASS = "enterprise"
ATTRIBUTES = "suite:hotrod"
DEPENDENCIES = "meet_app"
TEST_TYPE = "server"
JOB_RETRIES = 3

DOC = """
This test enrolls a ChromeOS device in to hotrod mode running the meet app
and captures device usage data including cpu, memory, temperature and JMI
logs and uploads it to Google Cloud Storage as part of the test logs.
"""

def run_test(machine):
    host = hosts.create_host(machine)
    job.run_test('enterprise_CFM_Perf', host=host, tag='meet_app')

parallel_simple(run_test, machines)
