blob: 7533e822f2da551630e9be50b96eec2e5a5ca70c [file] [log] [blame]
# 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 tpm_utils
from autotest_lib.server.cros.update_engine import update_engine_test
class policy_AUServer(update_engine_test.UpdateEngineTest):
"""
This server test is used just to get the URL of the payload to use. It
will then call into a client side test to test different things in
the Omaha response.
"""
version = 1
def cleanup(self):
"""Cleanup for this test."""
super(policy_AUServer, self).cleanup()
tpm_utils.ClearTPMIfOwned(self._host)
self._host.reboot()
def run_once(self, client_test, case, full_payload=True,
job_repo_url=None, running_at_desk=False):
"""
Starting point of this test.
Note: base class sets host as self._host.
@param client_test: the name of the Client test to run.
@param case: the case to run for the given Client test.
@param full_payload: whether the update should be full or incremental.
@param job_repo_url: url provided at runtime (or passed in locally
when running at workstation).
@param running_at_desk: indicates test is run from a workstation.
"""
self._job_repo_url = job_repo_url
# Clear TPM to ensure that client test can enroll device.
tpm_utils.ClearTPMIfOwned(self._host)
# Figure out the payload to use for the current build.
payload = self._get_payload_url(full_payload=full_payload)
image_url, _ = self._stage_payload_by_uri(payload)
if running_at_desk:
image_url = self._copy_payload_to_public_bucket(payload)
logging.info('We are running from a workstation. Putting URL on a '
'public location: %s', image_url)
logging.info('url: %s', image_url)
self._run_client_test_and_check_result(client_test,
case=case,
image_url=image_url)