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

AUTHOR = "The Chromium OS Authors"
NAME = "platform_InitLoginPerfServer"
PURPOSE = "Measures first boot initialization and login performance"
TIME = "MEDIUM"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "platform"
TEST_TYPE = "server"
ATTRIBUTES = "suite:crosbolt_perf_weekly"

DOC = """
This test clears the tpm owner, then goes through OOBE and verifies that the
user logs in, the tpm is initialized, and the device is prepared for enrollment.
It captures the performance data for tpm initialization, as well as first-boot
and normal logins.
"""

NUM_ITERATIONS = 7
PRE_INIT_DELAY = 10

def run(machine):
    host = hosts.create_host(machine)
    job.run_test("platform_InitLoginPerfServer", host=host,
                 iterations=NUM_ITERATIONS,
                 pre_init_delay=PRE_INIT_DELAY,
                 upload_perf=True)

parallel_simple(run, machines)
