# Copyright (c) 2012 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 = "Chrome OS Team"
NAME = "Benchmarks"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "suite"
TEST_TYPE = "server"

DOC = """
This test suite runs automated benchmark tests that should all pass. 1 machine
should complete this suite in ~3:00, 3 machine in ~1:00.  3+ machines won't
speed up the completion time as the longest test is 1:00.
"""

"""List of client tests with parameters.

Note: In this case it is important to list the tests with the longest runtime
first. This helps the suite complete as quickly as possible by enabling as much
parallelization as possible.  If the long running tests were last in the list
they would be last to run.  By having them first other machines are able to
work on quicker tests while the longest running tests are running.
"""
TESTS = [
  ('unixbench', {}),            # Runtime 1:00
  ('hardware_StorageFio', {}),  # Runtime 1:00
  ('compilebench', {}),         # Runtime 0:35
  ('dbench', {}),               # Runtime 0:15
  ('disktest', {}),             # Runtime 0:05
  ('graphics_Sanity', {}),      # Runtime 0:02
  ('graphics_GLBench', {}),                        # Runtime 0:05
  ('graphics_SanAngeles', {'creds': '$backdoor'}), # Runtime 0:03
  ('graphics_WebGLConformance', {}),               # Runtime 0:05
  ('graphics_WebGLPerformance', {}),               # Runtime 0:03
  ('graphics_GLMark2', {}),                        # Runtime 0:05
  ('graphics_GpuReset', {}),                       # Runtime 0:03
  #-----------------------------------------------------------------------------
  # Tests which leave the system in a strange state below. Don't add anything to
  # this section unless you know what you're doing.
  #-----------------------------------------------------------------------------
  # graphics_Piglit can crash many of the UI processes, so schedule it last and
  # make sure the machine is in a fresh state before starting.
  ('graphics_Piglit', {}, [], [], ['reboot_before']),  # Runtime 0:21
]

job.distribute_across_machines(TESTS, machines, continuous_parsing=True)