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

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

job.run_test('desktopui_PyAutoEnduranceTests',
             test_name=('perf_endure.IndexedDBOfflineTest.'
                        'testOfflineOnline'),
             args=args,
             tag='indexeddb_offline_online')
