| # Copyright (c) 2010,2013 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.bin import test, utils |
| from autotest_lib.client.common_lib import error |
| |
| class kernel_TPMPing(test.test): |
| """See control file for doc""" |
| version = 2 |
| |
| def run_once(self): |
| tpm_version = utils.system_output("tpm_version") |
| if tpm_version.find("Version Info") == -1: |
| raise error.TestFail("Invalid tpm_version output:\n%s\n" % tpm_version) |
| else: |
| logging.info(tpm_version) |
| |
| # This autotest is not compatible with kernel version < 3.8 |
| version = utils.system_output('/bin/uname -r').strip() |
| logging.info(version) |
| |
| # If the "[gentle shutdown]" string followed by 'Linux Version' |
| # is missing from the /var/log/messages, |
| # we forgot to carry over an important patch. |
| if version >= '3.8': |
| result = utils.system_output('awk \'/Linux version [0-9]+\./ ' |
| '{gentle=0;} /\[gentle shutdown\]/ ' |
| '{gentle=1;} END {print gentle}\' ' |
| '$(ls -t /var/log/messages* | tac)', |
| ignore_status=True) |
| |
| # We only care about the most recent instance of the TPM driver message. |
| if result == '0': |
| raise error.TestFail('no \'gentle shutdown\' TPM driver init message') |
| else: |
| logging.info('Bypassing the test as kernel version is < 3.8') |