47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
# Copyright (c) 2014 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.
|
|
|
|
import logging, time
|
|
|
|
from autotest_lib.client.bin import test, utils
|
|
from autotest_lib.client.common_lib import error
|
|
from autotest_lib.client.cros import perf
|
|
from autotest_lib.client.cros import service_stopper
|
|
from autotest_lib.client.cros.graphics import graphics_utils
|
|
|
|
|
|
class graphics_PerfControl(graphics_utils.GraphicsTest):
|
|
version = 1
|
|
|
|
# None-init vars used by cleanup() here, in case setup() fails
|
|
_services = None
|
|
|
|
def initialize(self):
|
|
super(graphics_PerfControl, self).initialize()
|
|
self._services = service_stopper.ServiceStopper(['ui'])
|
|
|
|
def cleanup(self):
|
|
if self._services:
|
|
self._services.restore_services()
|
|
super(graphics_PerfControl, self).cleanup()
|
|
|
|
@graphics_utils.GraphicsTest.failure_report_decorator('graphics_PerfControl')
|
|
def run_once(self):
|
|
logging.info(utils.get_board_with_frequency_and_memory())
|
|
|
|
# If UI is running, we must stop it and restore later.
|
|
self._services.stop_services()
|
|
|
|
# Wrap the test run inside of a PerfControl instance to make machine
|
|
# behavior more consistent.
|
|
with perf.PerfControl() as pc:
|
|
if not pc.verify_is_valid():
|
|
raise error.TestFail('Failed: %s' % pc.get_error_reason())
|
|
# Do nothing for a short while so the PerfControl thread is collecting
|
|
# real data.
|
|
time.sleep(10)
|
|
|
|
if not pc.verify_is_valid():
|
|
raise error.TestFail('Failed: %s' % pc.get_error_reason())
|