72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
| # 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.
 | |
| 
 | |
| import datetime
 | |
| from autotest_lib.client.bin import test
 | |
| from autotest_lib.client.common_lib import error, smogcheck_tpm, smogcheck_util
 | |
| 
 | |
| 
 | |
| class hardware_TPMtspi(test.test):
 | |
|     version = 1
 | |
| 
 | |
|     def setup(self):
 | |
|         smogcheck_util.enableI2C()
 | |
| 
 | |
|     def _prepareTpmController(self):
 | |
|         """Prepare a TpmController instance for use.
 | |
| 
 | |
|         Returns:
 | |
|           an operational TpmControler instance, ready to use.
 | |
|         """
 | |
|         try:
 | |
|             return smogcheck_tpm.TpmController()
 | |
|         except smogcheck_tpm.SmogcheckError, e:
 | |
|             raise error.TestFail('Error creating a TpmController: %s', e)
 | |
| 
 | |
|     def run_once(self):
 | |
|         self.tpm_obj = self._prepareTpmController()
 | |
| 
 | |
|         start_time = datetime.datetime.now()
 | |
|         try:
 | |
|             self.tpm_obj.setupContext()
 | |
|             self.tpm_obj.getTpmVersion()
 | |
|             self.tpm_obj.runTpmSelfTest()
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.takeTpmOwnership()
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.clearTpm()
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmActive('status')
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmActive('deactivate')
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmActive('activate')
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmActive('temp')
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmClearable('status')
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmClearable('owner')
 | |
| 
 | |
|             # TODO(tgao): uncomment to enable.
 | |
|             #self.tpm_obj.setTpmClearable('force')
 | |
| 
 | |
|         except smogcheck_tpm.SmogcheckError, e:
 | |
|             raise error.TestFail('Error: %r' % e)
 | |
|         finally:
 | |
|             # Close TPM context
 | |
|             if self.tpm_obj.closeContext():
 | |
|                 raise error.TestFail('Error closing tspi context')
 | |
| 
 | |
|         end_time = datetime.datetime.now()
 | |
|         smogcheck_util.computeTimeElapsed(end_time, start_time)
 |