# 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_PyAutoPerfTests"
PURPOSE = "PyAuto-based Chrome performance tests."
CRITERIA = "This test will fail if any of the invoked pyauto perf tests fails."
TIME = "LONG"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "desktopui"
TEST_TYPE = "client"

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

Sample usage:

  # Run all performance tests with the default set of arguments.
  ./run_remote_tests.sh --remote=<DEVICE_IP> desktopui_PyAutoPerfTests

  # Run a single performance test.
  ./run_remote_tests.sh --remote=<DEVICE_IP> desktopui_PyAutoPerfTests \
      -a 'perf.ScrollTest.testTextScroll'

  # Run a single performance test for 2 iterations, rather than the default
  # number of iterations (only applies to perf tests that run iteratively).
  ./run_remote_tests.sh --remote=<DEVICE_IP> desktopui_PyAutoPerfTests \
      -a 'perf.ScrollTest.testTextScroll --iterations=2'

  # Run a different pyauto suite rather than the default "PERFORMANCE"
  # (see the file "PYAUTO_TESTS" in the Chrome tree).
  ./run_remote_tests.sh --remote=<DEVICE_IP> desktopui_PyAutoPerfTests \
      -a '--suite=OTHER_SUITE_NAME'

  # Pass arguments to the autotest via an autotest suite control file
  # (use "args" for the key, and the argument string as the value).
  ('desktopui_PyAutoPerfTests', \
   {'args': 'perf.ScrollTest.testTextScroll --iterations=10'})

  # Run the PGO testsuite under PGO mode (--no-sandbox, --renderer-clean-exit,
  # etc.)
  ./run_remote_tests.sh --remote=<DEVICE_IP> desktopui_PyAutoPerfTests \
      -a '--pgo --suite=PGO'
"""

job.run_test('desktopui_PyAutoPerfTests', args=args)
