From d37eafa398867526b0e96171dca2ec7a40f6e580 Mon Sep 17 00:00:00 2001 From: Zdenek Behan Date: Mon, 13 Sep 2010 21:49:55 -0700 Subject: [PATCH] vboot_reference: move tests into client/ and also put the server test in here * Adjusted the path in VbootCrypto Makefile Change-Id: I2485c3940f4d3894694c3e834ed79b1b3f58d4bc BUG= TEST= Review URL: http://codereview.chromium.org/3335018 --- .../{ => client}/firmware_VbootCrypto/control | 0 .../firmware_VbootCrypto.py | 0 .../firmware_VbootCrypto/src/Makefile | 2 +- .../{ => client}/hardware_TPMFirmware/control | 0 .../hardware_TPMFirmware.py | 0 .../hardware_TPMFirmware/src/Makefile | 0 .../server/hardware_TPMFirmwareServer/control | 18 +++++ .../hardware_TPMFirmwareServer.py | 71 +++++++++++++++++++ 8 files changed, 90 insertions(+), 1 deletion(-) rename autotest/{ => client}/firmware_VbootCrypto/control (100%) rename autotest/{ => client}/firmware_VbootCrypto/firmware_VbootCrypto.py (100%) rename autotest/{ => client}/firmware_VbootCrypto/src/Makefile (98%) rename autotest/{ => client}/hardware_TPMFirmware/control (100%) rename autotest/{ => client}/hardware_TPMFirmware/hardware_TPMFirmware.py (100%) rename autotest/{ => client}/hardware_TPMFirmware/src/Makefile (100%) create mode 100644 autotest/server/hardware_TPMFirmwareServer/control create mode 100644 autotest/server/hardware_TPMFirmwareServer/hardware_TPMFirmwareServer.py diff --git a/autotest/firmware_VbootCrypto/control b/autotest/client/firmware_VbootCrypto/control similarity index 100% rename from autotest/firmware_VbootCrypto/control rename to autotest/client/firmware_VbootCrypto/control diff --git a/autotest/firmware_VbootCrypto/firmware_VbootCrypto.py b/autotest/client/firmware_VbootCrypto/firmware_VbootCrypto.py similarity index 100% rename from autotest/firmware_VbootCrypto/firmware_VbootCrypto.py rename to autotest/client/firmware_VbootCrypto/firmware_VbootCrypto.py diff --git a/autotest/firmware_VbootCrypto/src/Makefile b/autotest/client/firmware_VbootCrypto/src/Makefile similarity index 98% rename from autotest/firmware_VbootCrypto/src/Makefile rename to autotest/client/firmware_VbootCrypto/src/Makefile index 7c770a5004..e608b9830b 100644 --- a/autotest/firmware_VbootCrypto/src/Makefile +++ b/autotest/client/firmware_VbootCrypto/src/Makefile @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -VBOOT_SRC_DIR ?= ../../.. +VBOOT_SRC_DIR ?= ../../../.. BUILD_TEST_DIR = vboot_tests # Test Binaries. TEST_BINS = \ diff --git a/autotest/hardware_TPMFirmware/control b/autotest/client/hardware_TPMFirmware/control similarity index 100% rename from autotest/hardware_TPMFirmware/control rename to autotest/client/hardware_TPMFirmware/control diff --git a/autotest/hardware_TPMFirmware/hardware_TPMFirmware.py b/autotest/client/hardware_TPMFirmware/hardware_TPMFirmware.py similarity index 100% rename from autotest/hardware_TPMFirmware/hardware_TPMFirmware.py rename to autotest/client/hardware_TPMFirmware/hardware_TPMFirmware.py diff --git a/autotest/hardware_TPMFirmware/src/Makefile b/autotest/client/hardware_TPMFirmware/src/Makefile similarity index 100% rename from autotest/hardware_TPMFirmware/src/Makefile rename to autotest/client/hardware_TPMFirmware/src/Makefile diff --git a/autotest/server/hardware_TPMFirmwareServer/control b/autotest/server/hardware_TPMFirmwareServer/control new file mode 100644 index 0000000000..e5df8da372 --- /dev/null +++ b/autotest/server/hardware_TPMFirmwareServer/control @@ -0,0 +1,18 @@ +# Copyright (c) 2009 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. + +AUTHOR = "Chrome OS Team" +NAME = "TPMFirmwareServer" +TIME = "SHORT" +TEST_CATEGORY = "Functional" +TEST_CLASS = "hardware" +TEST_TYPE = "server" + +DOC = """ +This test covers the required TPM functionality in the firmware (mostly +NVRAM related). +""" + +job.run_test("hardware_TPMFirmwareServer", + host=hosts.create_host(machines[0])) diff --git a/autotest/server/hardware_TPMFirmwareServer/hardware_TPMFirmwareServer.py b/autotest/server/hardware_TPMFirmwareServer/hardware_TPMFirmwareServer.py new file mode 100644 index 0000000000..ad8b28ab12 --- /dev/null +++ b/autotest/server/hardware_TPMFirmwareServer/hardware_TPMFirmwareServer.py @@ -0,0 +1,71 @@ +# Copyright (c) 2010 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 +import os +import shutil +import sys +from autotest_lib.server import test, autotest +from autotest_lib.client.bin import utils +from autotest_lib.client.common_lib import error + +class hardware_TPMFirmwareServer(test.test): + """ + Test of TPM functionality needed in firmware (server side of the test). + See also client/site_tests/hardware_TPMFirmware. The server side of the + test is used to coordinate the multiple reboots needed to bring the TPM to + a new state (for instance between owned and unowned). + """ + version = 1 + n_client_reboots = 0 + client_at = None + + # Run the client subtest named [subtest]. + def tpm_run(self, subtest, ignore_status=False): + self.client_at.run_test(self.client_test, subtest=subtest) + cstatus = self.job.get_state("client_status") + logging.info("server: client status = %s", cstatus) + self.job.set_state("client_status", None) + if not ignore_status and cstatus != 0: + error.TestFail("client subtest %s failed with status %s" % + (subtest, cstatus)) + return cstatus + + + def reboot_client(self): + # Reboot the client + logging.info('TPMFirmwareServer: rebooting %s number %d' % + (self.client.hostname, self.n_client_reboots)) + self.client.reboot() + self.n_client_reboots += 1 + + + def run_once(self, host=None): + self.client = host + self.client_at = autotest.Autotest(self.client) + self.client_test = 'hardware_TPMFirmware' + + self.job.set_state("client_status", None) + + # Set up the client in the unowned state. + self.reboot_client() + self.tpm_run("tpmtest_clear", ignore_status=True) + + self.reboot_client() + self.tpm_run("tpmtest_enable", ignore_status=True) + + self.reboot_client() + self.tpm_run("tpmtest_readonly") + + self.reboot_client() + self.tpm_run("tpmtest_globallock") + + self.reboot_client() + self.tpm_run("takeownership") + + self.reboot_client() + self.tpm_run("tpmtest_readonly") + + self.reboot_client() + self.tpm_run("tpmtest_globallock")