blob: 7770181c3df4045c4d65317bf2897b5c8e327d58 [file] [log] [blame]
lmr4c607f22009-06-02 11:50:38 +00001import os, sys, logging
mbligh9f857922008-06-05 16:19:07 +00002from autotest_lib.client.bin import test
3from autotest_lib.client.common_lib import error
4
apw6e551622006-04-04 08:50:53 +00005
6class selftest(test.test):
jadmanski0afbb632008-06-06 21:10:57 +00007 version = 1
apw3a4968d2006-04-25 10:10:49 +00008
jadmanski0afbb632008-06-06 21:10:57 +00009 def setup(self):
10 name = self.job.resultdir + '/sequence'
11 if (not os.path.exists(name)):
12 fd = file(name, 'w')
13 fd.write('0')
14 fd.close()
apw6e551622006-04-04 08:50:53 +000015
jadmanski0afbb632008-06-06 21:10:57 +000016 def __mark(self, checkpoint):
17 name = self.job.resultdir + '/sequence'
18 fd = file(name, 'r')
19 current = int(fd.readline())
20 fd.close()
apw6e551622006-04-04 08:50:53 +000021
jadmanski0afbb632008-06-06 21:10:57 +000022 current += 1
23 fd = file(name + '.new', 'w')
24 fd.write('%d' % current)
25 fd.close()
apw6e551622006-04-04 08:50:53 +000026
jadmanski0afbb632008-06-06 21:10:57 +000027 os.rename(name + '.new', name)
apw6e551622006-04-04 08:50:53 +000028
lmr4c607f22009-06-02 11:50:38 +000029 logging.debug("checkpoint %d %d", current, checkpoint)
apw2f571232006-04-22 10:30:17 +000030
jadmanski0afbb632008-06-06 21:10:57 +000031 if (current != checkpoint):
32 raise error.JobError("selftest: sequence was " +
33 "%d when %d expected" % (current, checkpoint))
apw2f571232006-04-22 10:30:17 +000034
jadmanski0afbb632008-06-06 21:10:57 +000035 def __throw(self):
36 __does_not_exist = __does_not_exist_either
apw1d993602006-04-25 14:26:55 +000037
jadmanski0afbb632008-06-06 21:10:57 +000038 def __print(self, msg):
39 sys.stdout.write(msg)
apw1d993602006-04-25 14:26:55 +000040
jadmanski0afbb632008-06-06 21:10:57 +000041 def __warn(self, msg):
42 sys.stderr.write(msg)
43
44 def execute(self, cmd, *args):
45 if cmd == 'mark':
46 self.__mark(*args)
47 elif cmd == 'throw':
48 self.__throw(*args)
49 elif cmd == 'print':
50 self.__print(*args)
51 elif cmd == 'warn':
52 self.__warn(*args)