blob: 1baecf9a12e9ca6cea87ca4d4339ff88807be24f [file] [log] [blame]
mbligh9f857922008-06-05 16:19:07 +00001import os
2from 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):
apw3a4968d2006-04-25 10:10:49 +00007 version = 1
8
apw6e551622006-04-04 08:50:53 +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()
15
apw2f571232006-04-22 10:30:17 +000016 def __mark(self, checkpoint):
apw6e551622006-04-04 08:50:53 +000017 name = self.job.resultdir + '/sequence'
18 fd = file(name, 'r')
19 current = int(fd.readline())
20 fd.close()
21
22 current += 1
23 fd = file(name + '.new', 'w')
24 fd.write('%d' % current)
25 fd.close()
26
27 os.rename(name + '.new', name)
28
29 print "checkpoint %d %d" % (current, checkpoint)
30
31 if (current != checkpoint):
mbligh9f857922008-06-05 16:19:07 +000032 raise error.JobError("selftest: sequence was " +
apw6e551622006-04-04 08:50:53 +000033 "%d when %d expected" % (current, checkpoint))
apw2f571232006-04-22 10:30:17 +000034
35 def __throw(self):
36 __does_not_exist = __does_not_exist_either
37
apw1d993602006-04-25 14:26:55 +000038 def __print(self, msg):
39 sys.stdout.write(msg)
40
41 def __warn(self, msg):
42 sys.stderr.write(msg)
43
apw2f571232006-04-22 10:30:17 +000044 def execute(self, cmd, *args):
45 if cmd == 'mark':
46 self.__mark(*args)
47 elif cmd == 'throw':
48 self.__throw(*args)
apw1d993602006-04-25 14:26:55 +000049 elif cmd == 'print':
50 self.__print(*args)
51 elif cmd == 'warn':
52 self.__warn(*args)