# 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 *

AUTHOR = "dtosic@google.com, chromeos-meetings@google.com"
NAME = "enterprise_CFM_MeetingRoomScenario.idle_in_meeting_with_bots"
PURPOSE = "Tests what happens when CfM stays idle in a meeting."
CRITERIA = "No unexpected resource leaks."
ATTRIBUTES = "suite:hotrod-remora"
TIME = "LONG"
TEST_CATEGORY = "Performance"
TEST_CLASS = "enterprise"
TEST_TYPE = "server"

DOC = """
Stay idle in a meeting for a long time.
"""

DURATION_MIN = 20
BOT_COUNT = 7

cfm_test = CfmTest(
    scenario=Scenario(
        WaitForMeetingsLandingPage(),
        CreateMeetingWithBots(BOT_COUNT, DURATION_MIN, muted=True),
        JoinMeetingWithBots(),
        StartPerfMetricsCollection(),
        Sleep(DURATION_MIN * 60),
        StopPerfMetricsCollection(),
        UploadPerfMetrics(),
    ),
)

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

parallel_simple(run_test, machines)
