import os, sys, logging
from autotest_lib.client.bin import test
from autotest_lib.client.common_lib import error
class selftest(test.test):
version = 1
def setup(self):
name = self.job.resultdir + '/sequence'
if (not os.path.exists(name)):
fd = file(name, 'w')
fd.write('0')
fd.close()
def __mark(self, checkpoint):
name = self.job.resultdir + '/sequence'
fd = file(name, 'r')
current = int(fd.readline())
fd.close()
current += 1
fd = file(name + '.new', 'w')
fd.write('%d' % current)
fd.close()
os.rename(name + '.new', name)
logging.debug("checkpoint %d %d", current, checkpoint)
if (current != checkpoint):
raise error.JobError("selftest: sequence was " +
"%d when %d expected" % (current, checkpoint))
def __throw(self):
__does_not_exist = __does_not_exist_either
def __print(self, msg):
sys.stdout.write(msg)
def __warn(self, msg):
sys.stderr.write(msg)
def execute(self, cmd, *args):
if cmd == 'mark':
self.__mark(*args)
elif cmd == 'throw':
self.__throw(*args)
elif cmd == 'print':
self.__print(*args)
elif cmd == 'warn':
self.__warn(*args)