# Copyright (c) 2012 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 = "cellular_mbim_compliance"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "suite"
TEST_TYPE = "server"

DOC = """
Run the MBIM compliance test suite on a given modem device
@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 import provision
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': ['Cr-OS-Systems-Mobile'],
    'owner': '',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['benchan@chromium.org', 'pprabhu@chromium.org',
           'rpius@chromium.org', 'thieule@chromium.org']
}

args_dict['suite_dependencies'] = 'modem_repair'
args_dict['max_runtime_mins'] = 20
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['name'] = 'cellular_mbim_compliance'
args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
