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')
|