# Copyright (c) 2011 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. from autotest_lib.client.bin import test, utils from autotest_lib.client.common_lib import error from autotest_lib.client.cros import service_stopper class kernel_TPMStress(test.test): "TPM communication stress test" version = 1 def initialize(self): self._services = service_stopper.ServiceStopper(['cryptohomed', 'chapsd', 'attestationd', 'tpm_managerd', 'tcsd', 'trunksd']) self._services.stop_services() def run_once(self): # On a Mario, running the test with 1000 iterations takes 89 seconds, # and with 2000 iterations 163 seconds, i.e. the incremental time for 1 # iteration is 74ms. n_iterations = 3000 try: for iteration in range(n_iterations): utils.system("tpmc getpf") except Exception: raise error.TestError(("TPM communication error at " + "iteration %d of %d") % (iteration, n_iterations)) def cleanup(self): self._services.restore_services()