# 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.
from autotest_lib.client.common_lib import error
from autotest_lib.server import autotest, test
class power_BrightnessResetAfterReboot(test.test):
"""Tests for default brightness level after rebooting the device.
"""
version = 1
GET_BRIGHTNESS_FLAG = '--get_brightness_percent'
SET_BRIGHTNESS_FLAG = '--set_brightness_percent'
def run_once(self, host, client_autotest):
"""This test verify that user should get default brightness
after rebooting the device with maximum brigntness level.
"""
if host.has_internal_display() is None:
raise error.TestNAError('Test can not processed on '
'devices without internal display')
self.is_freon_build(host)
autotest_client = autotest.Autotest(host)
host.reboot()
autotest_client.run_test(client_autotest,
exit_without_logout=True)
initial_bright = self.backlight_control(self.GET_BRIGHTNESS_FLAG,
host)
if initial_bright < 10.0 or initial_bright > 90.0:
raise error.TestFail('Default brightness level is out '
'of scope(10% - 90%): %f'
%(initial_bright))
self.backlight_control('%s=0' % (self.SET_BRIGHTNESS_FLAG), host)
if not self.backlight_control(self.GET_BRIGHTNESS_FLAG, host) == 0:
raise error.TestFail('Not able to change the brightness '
'to minum(0%) level')
self.backlight_control('%s=100' % (self.SET_BRIGHTNESS_FLAG), host)
if not self.backlight_control(self.GET_BRIGHTNESS_FLAG, host) == 100:
raise error.TestFail('Not able to change the brightness '
'to maximum(100%) level')
host.reboot()
autotest_client.run_test(client_autotest,
exit_without_logout=True)
bright_after_reboot = self.backlight_control(self.GET_BRIGHTNESS_FLAG,
host)
if not initial_bright == bright_after_reboot:
raise error.TestFail('Not able to reset default brightness\n'
'Previous boot default brightness: %f\n'
'Current boot default brightness: %f'
% (initial_bright, bright_after_reboot))
def backlight_control(self, arg_str, host):
"""Executes backlight_tool with arguments passed through arg_str.
Two functions are used:
- sets the brightness percentage to a given level
- gets the brightness percentage and returns a float value
@param arg_str: Command argument to set/get the backlight.
@param host: host object representing the DUT.
"""
cmd = 'backlight_tool %s' % (arg_str)
try:
result = host.run(cmd).stdout.rstrip()
except error.CmdError:
raise error.TestFail(cmd)
if result:
return float(result)
def is_freon_build(self, host):
""" Checks for the freon builds.
@param host: host object representing the DUT
"""
if not host.run('modetest', ignore_status=True ).exit_status == 0:
raise error.TestNAError('Test can not processed on non-freon build')