blob: f3e5dc82847b00d9787d9eb41ff8d8639d09c807 [file] [log] [blame]
apw6e551622006-04-04 08:50:53 +00001import test
2from autotest_utils import *
3from error import *
4
5class selftest(test.test):
apw3a4968d2006-04-25 10:10:49 +00006 version = 1
7
apw6e551622006-04-04 08:50:53 +00008 def setup(self):
9 name = self.job.resultdir + '/sequence'
10 if (not os.path.exists(name)):
11 fd = file(name, 'w')
12 fd.write('0')
13 fd.close()
14
apw2f571232006-04-22 10:30:17 +000015 def __mark(self, checkpoint):
apw6e551622006-04-04 08:50:53 +000016 name = self.job.resultdir + '/sequence'
17 fd = file(name, 'r')
18 current = int(fd.readline())
19 fd.close()
20
21 current += 1
22 fd = file(name + '.new', 'w')
23 fd.write('%d' % current)
24 fd.close()
25
26 os.rename(name + '.new', name)
27
28 print "checkpoint %d %d" % (current, checkpoint)
29
30 if (current != checkpoint):
31 raise JobError("selftest: sequence was " +
32 "%d when %d expected" % (current, checkpoint))
apw2f571232006-04-22 10:30:17 +000033
34 def __throw(self):
35 __does_not_exist = __does_not_exist_either
36
apw1d993602006-04-25 14:26:55 +000037 def __print(self, msg):
38 sys.stdout.write(msg)
39
40 def __warn(self, msg):
41 sys.stderr.write(msg)
42
apw2f571232006-04-22 10:30:17 +000043 def execute(self, cmd, *args):
44 if cmd == 'mark':
45 self.__mark(*args)
46 elif cmd == 'throw':
47 self.__throw(*args)
apw1d993602006-04-25 14:26:55 +000048 elif cmd == 'print':
49 self.__print(*args)
50 elif cmd == 'warn':
51 self.__warn(*args)