37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
| # 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 logging
 | |
| from autotest_lib.client.bin import test
 | |
| from autotest_lib.client.common_lib import error
 | |
| 
 | |
| # A global variable to track how many times the test has been run.
 | |
| global retry_count
 | |
| retry_count = 0
 | |
| 
 | |
| class dummy_Fail(test.test):
 | |
|     """The test fails by raising given exception, or succeeds at given retry."""
 | |
|     version = 1
 | |
| 
 | |
|     def run_once(self, to_throw=None, retry_success_count=0):
 | |
|         """Run test with argument to_throw, retry_count and retry_success_count.
 | |
| 
 | |
|         @param to_throw: Exception to throw in the test.
 | |
|         @param retry_success_count: The number of times to fail before test is
 | |
|                     completed successfully. 0 means the test will never complete
 | |
|                     successfully with reties.
 | |
| 
 | |
|         """
 | |
|         global retry_count
 | |
|         retry_count += 1
 | |
|         if retry_count == retry_success_count:
 | |
|             return
 | |
|         if to_throw:
 | |
|             if to_throw == 'TestFail': logging.error('It is an error!')
 | |
|             raise getattr(error, to_throw)('always fail')
 | |
|         else:  # Generate a crash to test that behavior.
 | |
|             self.write_perf_keyval({'perf_key': 102.7})
 | |
|             self.job.record('INFO', self.tagged_testname,
 | |
|                             'Received crash notification for sleep[273] sig 6')
 |