# Copyright (c) 2016 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 = "Krishna Gavini <krishnargv@chromium.org>"
NAME = "longevity_two"
PURPOSE = "Suite for automated longevity tests."

TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "suite"
TEST_TYPE = "server"

DOC = """
This suite runs the set of kiosk longevity tests on various devices 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': ['longevity', 'longevity-auto-bug'],
    'owner': '',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['kiosk-autotest-alerts@google.com']
}

args_dict['name'] = NAME
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE
args_dict['job'] = job

dynamic_suite.reimage_and_run(**args_dict)
