# Copyright 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 = "ARC Team"
# Do not remove any of these suites without wider discussion as it will cause
# instability in the testing lab.
# TODO(ihf): make blocking again once crbug.com/850272 is fixed.
#ATTRIBUTES = "suite:bvt-arc, suite:bvt-cq, suite:bvt-inline"
ATTRIBUTES = "suite:bvt-perbuild"
NAME = "cheets_StartAndroid_P.stress.0"
TIME = "LONG"
TEST_CATEGORY = "Stress"
TEST_CLASS = "login"
TEST_TYPE = "client"
DEPENDENCIES = "arc"

DOC = """
This sharded test verifies reliable and repeated login to Chrome and start of
the Android container. If this test is flaky every Android based test will be
flaky as well.
"""

job.run_test('cheets_StartAndroid_P', count=10, tag='stress')
