# Copyright 2018 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.cros.cfm.configurable_test.dsl import *
from autotest_lib.server import utils

AUTHOR = "malmnas@google.com, chromeos-meetings@google.com"
NAME = "enterprise_CFM_MeetingRoomScenario.idle_on_landing_page"
PURPOSE = "Tests what happens when CfM stays idle on landing page."
CRITERIA = "No unexpected resource leakes."
ATTRIBUTES = "suite:hotrod-remora"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_TYPE = "server"

DOC = """
Stay idle on the landing page for a long time.
"""

cfm_test = CfmTest(
    scenario=Scenario(
        RebootDut(restart_chrome_for_cfm=True),
        WaitForMeetingsLandingPage(),
        StartPerfMetricsCollection(),
        Sleep(15 * 60),
        StopPerfMetricsCollection(),
        UploadPerfMetrics(),
    ),
)

def run_test(machine):
    job.run_test("enterprise_CFM_MeetingRoomScenario",
                 cfm_test = cfm_test,
                 tag = 'idle_on_landing_page',
                 host = hosts.create_host(machine))

parallel_simple(run_test, machines)
