# Copyright (c) 2013 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.

NAME = "platform_BootPerfServer.bootperf"
AUTHOR = "Chrome OS Team"
TIME = "MEDIUM"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "platform"
TEST_TYPE = "server"

DOC = """
This control file is meant for use by the "bootperf" script, in
order to measure Chrome OS boot performance from a developer's
desktop.
"""

# By design, the "site_utils/bootperf-bin/bootperf" script depends
# on some key features of this control file:
#   NAME must be "platform_BootPerfServer.bootperf".
#   args[0] is expected to be an integer representing the number of
#     iterations to perform.

def run_bootperf(machine):
    host = hosts.create_host(machine)
    job.run_test("platform_BootPerfServer", host=host,
                 iterations=int(args[0]))

parallel_simple(run_bootperf, machines)
