60 lines
2.5 KiB
Python
60 lines
2.5 KiB
Python
# Copyright 2018 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
|
|
|
|
from autotest_lib.client.common_lib.cros import kernel_utils
|
|
from autotest_lib.server.cros.update_engine import update_engine_test
|
|
|
|
class autoupdate_Cellular(update_engine_test.UpdateEngineTest):
|
|
"""
|
|
Tests auto updating over cellular.
|
|
|
|
Usually with AU tests we use a lab devserver to hold the payload, and to be
|
|
the omaha instance that DUTs ping. However, over cellular they will not be
|
|
able to reach the devserver. So we will need to put the payload on a
|
|
public google storage location. We will setup an omaha instance on the DUT
|
|
(via autoupdate_CannedOmahaUpdate) that points to the payload on GStorage.
|
|
|
|
"""
|
|
version = 1
|
|
|
|
def _check_for_cellular_entries_in_update_log(self):
|
|
"""Check update_engine.log for log entries about cellular."""
|
|
logging.info('Making sure we have cellular entries in update_engine '
|
|
'log.')
|
|
line1 = ('Allowing updates over cellular as permission preference is '
|
|
'set to true.')
|
|
line2 = 'We are connected via cellular, Updates allowed: Yes'
|
|
self._check_update_engine_log_for_entry([line1, line2],
|
|
raise_error=True)
|
|
|
|
|
|
def cleanup(self):
|
|
"""Clean up the test state."""
|
|
self._set_update_over_cellular_setting(False)
|
|
super(autoupdate_Cellular, self).cleanup()
|
|
|
|
|
|
def run_once(self, job_repo_url=None, full_payload=True):
|
|
"""
|
|
Runs the autoupdate test over cellular once.
|
|
|
|
@param job_repo_url: The URL of the current build.
|
|
@param full_payload: Whether the payload should be full or delta.
|
|
|
|
"""
|
|
payload_url = self.get_payload_for_nebraska(
|
|
job_repo_url, full_payload=full_payload, public_bucket=True)
|
|
active, inactive = kernel_utils.get_kernel_state(self._host)
|
|
self._set_update_over_cellular_setting(True)
|
|
self._run_client_test_and_check_result('autoupdate_CannedOmahaUpdate',
|
|
payload_url=payload_url,
|
|
use_cellular=True)
|
|
self._check_for_cellular_entries_in_update_log()
|
|
self._host.reboot()
|
|
rootfs_hostlog, _ = self._create_hostlog_files()
|
|
self.verify_update_events(self._FORCED_UPDATE, rootfs_hostlog)
|
|
kernel_utils.verify_boot_expectations(inactive, host=self._host)
|