普通文本  |  53行  |  1.33 KB

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)