summaryrefslogtreecommitdiff
path: root/autotest
diff options
context:
space:
mode:
authorLuigi Semenzato <semenzato@google.com>2010-10-08 11:33:07 -0700
committerLuigi Semenzato <semenzato@google.com>2010-10-08 11:33:07 -0700
commit2845b97df68da9387c400fb1eca5f6dbce1ddefa (patch)
tree13e290215dff403eb8c62582fd53885f077fbd31 /autotest
parentb6fafe323ed288c345d818be441b4c98253e6ffb (diff)
downloadvboot-2845b97df68da9387c400fb1eca5f6dbce1ddefa.tar.gz
Autotest that the TPM is in a sane state.
Change-Id: I2b0a692e9b6a6ef4df59f3555fc20f3abef28cd8 BUG=6061 TEST=ran on latest dogfood Review URL: http://codereview.chromium.org/3530018
Diffstat (limited to 'autotest')
-rw-r--r--autotest/client/hardware_TPMCheck/control18
-rw-r--r--autotest/client/hardware_TPMCheck/hardware_TPMCheck.py47
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)