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

AUTHOR = "Chrome OS Team"
NAME = "AFDO_record"
PURPOSE = "Exercise Chrome, record profiling data using AFDO."

TIME = "LONG"
TEST_CATEGORY = "General"
TEST_CLASS = "suite"
TEST_TYPE = "Server"

DOC = """
Exercise Chrome, record profiling data using AFDO.

The profile is collected using branch and program counter sampling with
the 'perf' tool instead of creating an instrumented binary as it is done
with traditional PGO.

The image should have been built with default optimization turned on for chrome.
We do this to make branch prediction etc. data driven in future optimizations
of chrome builds, so realism and source control are important.

Mostly we are just wrapping the labelled tests here.

@param build: The name of the image to test.
              Ex: x86-mario-release/R17-1412.33.0-a1-b29
@param board: The board to test on. Ex: x86-mario
@param pool: The pool of machines to utilize for scheduling. If pool=None
             board is used.
@param check_hosts: require appropriate live hosts to exist in the lab.
"""

import common
from autotest_lib.server.cros.dynamic_suite import dynamic_suite


# Values specified in this bug template will override default values when
# filing bugs on tests that are a part of this suite. If left unspecified
# the bug filer will fallback to it's defaults.
_BUG_TEMPLATE = {
    'labels': ['Build-Toolchain'],
    'owner': 'llozano@chromium.org',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['laszio@chromium.org',
           'chromeos-toolchain-sheriff@grotations.appspotmail.com']
}

args_dict['job'] = job
args_dict['file_bugs'] = True
args_dict['name'] = 'AFDO_record'
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
