| OLD | NEW |
| 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import logging, os, re, sys, shutil | 5 import logging, os, re, sys, shutil |
| 6 from autotest_lib.client.bin import test, utils | 6 from autotest_lib.client.bin import test, utils |
| 7 | 7 |
| 8 class hardware_TPMFirmware(test.test): | 8 class hardware_TPMFirmware(test.test): |
| 9 """ | 9 """ |
| 10 Test of TPM functionality needed in firmware (client side of the test). | 10 Test of TPM functionality needed in firmware (client side of the test). |
| 11 See also server/site_tests/hardware_TPMFirmwareServer. | 11 See also server/site_tests/hardware_TPMFirmwareServer. |
| 12 """ | 12 """ |
| 13 version = 1 | 13 version = 1 |
| 14 preserve_srcdir = True | 14 preserve_srcdir = True |
| 15 | 15 |
| 16 # Cross-compiles TLCL test suite and other needed code. | 16 # Cross-compiles TLCL test suite and other needed code. |
| 17 # TODO(semenzato): tpm_takeownership is currently available by making | 17 # TODO(semenzato): tpm_takeownership is currently available by making |
| 18 # tpm-tools an RDEPEND in the autotest ebuild. See that file for a | 18 # tpm-tools an RDEPEND in the autotest ebuild. See that file for a |
| 19 # better way. | 19 # better way. |
| 20 def setup(self): | 20 def setup(self): |
| 21 sysroot = os.environ['SYSROOT'] | 21 sysroot = os.environ['SYSROOT'] |
| 22 bin_path = os.path.join(sysroot, 'usr/sbin/tpm_takeownership') | 22 bin_path = os.path.join(sysroot, 'usr/sbin/tpm_takeownership') |
| 23 shutil.copy(bin_path, self.bindir) | 23 shutil.copy(bin_path, self.bindir) |
| 24 utils.system('make -C %s' % self.srcdir) | 24 utils.make('-C %s' % self.srcdir) |
| 25 | 25 |
| 26 | 26 |
| 27 # Runs a command, logs the output, and returns the exit status. | 27 # Runs a command, logs the output, and returns the exit status. |
| 28 def tpm_run(self, cmd, ignore_status=False): | 28 def tpm_run(self, cmd, ignore_status=False): |
| 29 output = utils.run(cmd, ignore_status=ignore_status) | 29 output = utils.run(cmd, ignore_status=ignore_status) |
| 30 logging.info(output) | 30 logging.info(output) |
| 31 self.job.set_state("client_status", output.exit_status) | 31 self.job.set_state("client_status", output.exit_status) |
| 32 | 32 |
| 33 | 33 |
| 34 # Sets up the system (if it isn't already) to run the tpm binaries. This | 34 # Sets up the system (if it isn't already) to run the tpm binaries. This |
| (...skipping 17 matching lines...) Expand all Loading... |
| 52 self.tpm_setup() | 52 self.tpm_setup() |
| 53 self.tpm_write_status(0) | 53 self.tpm_write_status(0) |
| 54 elif (subtest == 'takeownership'): | 54 elif (subtest == 'takeownership'): |
| 55 self.tpm_setup(with_tcsd=True) | 55 self.tpm_setup(with_tcsd=True) |
| 56 own_cmd = os.path.join(self.bindir, "tpm_takeownership -y -z") | 56 own_cmd = os.path.join(self.bindir, "tpm_takeownership -y -z") |
| 57 self.tpm_run(own_cmd) | 57 self.tpm_run(own_cmd) |
| 58 else: | 58 else: |
| 59 self.tpm_setup() | 59 self.tpm_setup() |
| 60 cmd = os.path.join(self.srcdir, subtest) | 60 cmd = os.path.join(self.srcdir, subtest) |
| 61 self.tpm_run(cmd, ignore_status=True) | 61 self.tpm_run(cmd, ignore_status=True) |
| OLD | NEW |