# Copyright (c) 2012 The Chromium 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 = "desktopui_PyAutoEnduranceTests"
PURPOSE = "PyAuto-based Chrome endurance tests."
CRITERIA = "Fails if any of the invoked pyauto endurance tests fail."
SUITE = "pyauto_endurance"
TIME = "LONG"
TEST_CATEGORY = "Stress"
TEST_CLASS = "desktopui"
TEST_TYPE = "client"

DOC = """
This is a wrapper test for Chrome pyauto-based endurance tests.
http://www.chromium.org/developers/testing/pyauto/perf/

Sample usage:

  # Run all pyauto-based endurance tests.
  ./run_remote_tests.sh --remote=<DEVICE_IP> suite:pyauto_endurance

  # Run this test for the default length of time and with the default interval
  # in-between each perf stats measurement.
  ./run_remote_tests.sh --remote=<DEVICE_IP> \
      desktopui_PyAutoEnduranceTests/control.gmail_threadlist_conversation

  # Run this test for 1 minute and measure perf stats every 15 seconds.
  ./run_remote_tests.sh --remote=<DEVICE_IP>
      desktopui_PyAutoEnduranceTests/control.gmail_threadlist_conversation \
      -a '--length=60 --interval=15'
"""

job.run_test('desktopui_PyAutoEnduranceTests',
             test_name=('perf_endure.ChromeEndureGmailTest.'
                        'testGmailAlternateThreadlistConversation'),
             args=args,
             tag='gmail_threadlist_conversation')
