blob: 09a813436d62023fd773031cf2a3b0a4c0530dee [file] [log] [blame]
import time
from autotest_lib.client.common_lib import error
from autotest_lib.server import test
class platform_ActivateDate(test.test):
"""
Tests that activate date is run correctly from a clean system state.
For context, activate date is an upstart script located in:
chromeos-base/chromeos-activate-date
It attempts to set the initial date when a new chromebook is first used
by the customer, which drives things like battery warranty issues.
"""
version = 1
def run_once(self, host):
host.run('truncate -s 0 /var/log/messages')
host.run('activate_date --clean')
# Since the activate_date value was cleaned, this reboot will cause it
# to execute the activation sequence.
host.reboot()
# The activation sequence polls with a 200 second sleep, which seems
# pretty high, but we'll wait for at least one of those sleep cycles.
poll_interval = 10
max_num_attempts = 21
current_attempt = 1
success = False
while current_attempt <= max_num_attempts and not success:
# Autotest logs the grep command to the system log, so we're just
# going to search for it locally.
get_log_cmd = 'cat /var/log/messages'
success = 'Activation date set' in host.run(get_log_cmd).stdout
if not success:
current_attempt = current_attempt + 1
time.sleep(poll_interval)
if not success:
error.TestFail('Failed to set activation date')
# After this reboot, vpd_get_value ActivateDate should be set already
# because this is what prevents the init script from executing again.
host.reboot()
if not host.run('vpd_get_value ActivateDate').stdout:
error.TestFail('ActivateDate should be set correctly after reboot')