diff options
Diffstat (limited to 'autotest')
-rw-r--r-- | autotest/client/hardware_TPMCheck/control | 18 | ||||
-rw-r--r-- | autotest/client/hardware_TPMCheck/hardware_TPMCheck.py | 47 |
2 files changed, 65 insertions, 0 deletions
diff --git a/autotest/client/hardware_TPMCheck/control b/autotest/client/hardware_TPMCheck/control new file mode 100644 index 00000000..8e22a7fd --- /dev/null +++ b/autotest/client/hardware_TPMCheck/control @@ -0,0 +1,18 @@ +# 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. + +NAME = "hardware_TPMCheck" +AUTHOR = "The Chromium OS Authors" +PURPOSE = "Basic check of the TPM state" +CRITERIA = "Check that the TPM is in the expected state for use in Chrome OS." +TIME = "SHORT" +TEST_CATEGORY = "Functional" +TEST_CLASS = "Hardware" +TEST_TYPE = "Client" + +DOC = """ + A basic sanity check of the state of the TPM (Trusted Platform Module) +""" + +job.run_test('hardware_TPMCheck') diff --git a/autotest/client/hardware_TPMCheck/hardware_TPMCheck.py b/autotest/client/hardware_TPMCheck/hardware_TPMCheck.py new file mode 100644 index 00000000..f2fae7e9 --- /dev/null +++ b/autotest/client/hardware_TPMCheck/hardware_TPMCheck.py @@ -0,0 +1,47 @@ +# 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 os, re +from autotest_lib.client.bin import test, utils +from autotest_lib.client.common_lib import error + +def dict_from_command(command): + dict = {} + out = os.popen(command) + for linecr in out.readlines(): + line = linecr.strip() + match = re.match("([^ ]+) (.*)", line) + k = match.group(1) + v = match.group(2) + dict[k] = v + return dict + +def expect(d, key, value): + if (d[key] != value): + utils.system("start tcsd", ignore_status=True) + raise error.TestError("expecting %s = %s, receiving %s = %s" % + (key, value, key, d[key])) + +class hardware_TPMCheck(test.test): + version = 1 + + def run_once(self): + utils.system("stop tcsd", ignore_status=True) + + d = dict_from_command("tpmc getvf"); + expect(d, "deactivated", "0") + expect(d, "physicalPresence", "0") + expect(d, "physicalPresenceLock", "1") + expect(d, "bGlobalLock", "1") + + d = dict_from_command("tpmc getpf"); + expect(d, "disable", "0") + expect(d, "ownership", "1") + expect(d, "deactivated", "0") + expect(d, "physicalPresenceHWEnable", "0") + expect(d, "physicalPresenceCMDEnable", "1") + expect(d, "physicalPresenceLifetimeLock", "1") + expect(d, "nvLocked", "1") + + utils.system("start tcsd", ignore_status=True) |