78 lines
2.5 KiB
Plaintext
78 lines
2.5 KiB
Plaintext
# Copyright (c) 2011 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 = "Power per-build tests"
|
|
TIME = "MEDIUM"
|
|
TEST_CATEGORY = "Functional"
|
|
TEST_CLASS = "suite"
|
|
ATTRIBUTES = "suite:power_build"
|
|
TEST_TYPE = "server"
|
|
DEPENDENCIES = "rpm"
|
|
|
|
DOC = """
|
|
This test suite runs automated power tests that should all pass. These
|
|
tests are run on every build and thefore each test should be short
|
|
and not take more than 5 minutes to run.
|
|
|
|
This suite runs the test list on systems with AC off (on battery)
|
|
since they require use of the rpm.
|
|
|
|
The tests that run with AC on are run through their normal control
|
|
files since they do not need to interact with the RPM.
|
|
"""
|
|
|
|
import logging
|
|
|
|
from autotest_lib.client.common_lib import error
|
|
from autotest_lib.server import site_host_attributes
|
|
|
|
|
|
def _iterate_tests(client, machine):
|
|
client_at = autotest.Autotest(client)
|
|
|
|
tag = 'AC_OFFLINE'
|
|
|
|
# Tests that are also run on AC from their control file.
|
|
client_at.run_test('power_CPUFreq', tag=tag)
|
|
client_at.run_test('power_CPUIdle', tag=tag)
|
|
client_at.run_test('power_ProbeDriver', tag=tag, test_which='Battery')
|
|
client_at.run_test('power_StatsCPUFreq', tag=tag)
|
|
client_at.run_test('power_StatsUSB', tag=tag)
|
|
client_at.run_test('power_Resume', tag=tag)
|
|
client_at.run_test('power_UiResume', tag=tag)
|
|
|
|
# Tests that are only run on battery power here.
|
|
client_at.run_test('power_Display', tag=tag)
|
|
client_at.run_test('power_Draw', tag=tag)
|
|
client_at.run_test('power_Idle',tag=tag)
|
|
|
|
# Run the short version of power_Consumption
|
|
client_at.run_test('power_Consumption', short=True)
|
|
|
|
client_attributes = site_host_attributes.HostAttributes(client.hostname)
|
|
if not client_attributes.has_resume_bug:
|
|
client_at.run_test('power_Resume', tag=tag)
|
|
client_at.run_test('power_UiResume', tag=tag)
|
|
|
|
|
|
def _run_client_test(machine):
|
|
"""Runs client tests - all with battery actively discharging."""
|
|
client = hosts.create_host(machine)
|
|
if not client.has_power():
|
|
# Because this is a control file these test errors do not
|
|
# get printed...logging ensures test_that users can see it.
|
|
msg = 'This test requires RPM support.'
|
|
logging.info('********************%s', msg)
|
|
raise error.TestError(msg)
|
|
|
|
try:
|
|
client.power_off()
|
|
_iterate_tests(client, machine)
|
|
finally:
|
|
client.power_on()
|
|
|
|
|
|
job.parallel_on_machines(_run_client_test, machines)
|