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

from autotest_lib.client.common_lib import utils

AUTHOR = "llozano@chromium.org c-compiler-chrome@google.com"
NAME = "telemetry_AFDOGenerate"
PURPOSE = "Produce profile (AFDO format) of normal browsing for optimization."
ATTRIBUTES = "suite:AFDO_record"
TIME = "LONG"
MAX_RESULT_SIZE_KB = 512000
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "telemetry"
TEST_TYPE = "server"

DOC = """
Run a pre-defined set of benchmarks on the DUT and create a sampled profile
of the chrome execution. The profile is generated in AFDO format.
See go/chromeos-toolchain and search for AFDO for more information about AFDO.
For now, this test can only run on devices that support LBR PMU events and
that have at lest 2GB of space in /tmp (autotest limitation).

Example invocation:
/usr/bin/test_that --debug --board=lumpy <DUT IP>
  --args="ignore_failures=True local=True gs_test_location=True"
  telemetry_AFDOGenerate
"""

args_dict = utils.args_to_dict(args)


def run_telemetry_AFDOGenerate(machine):
    run_host = hosts.create_host(machine)

    # TODO (llozano):
    # Pass "disable_sysinfo=True" to run_test since it would be nice
    # to avoid copying all the logs back to the server. However, we
    # cannot do this because of crosbug 308646
    job.run_test('telemetry_AFDOGenerate', host=run_host, args=args_dict)


job.parallel_simple(run_telemetry_AFDOGenerate, machines)
