def __init__(self, **kwargs): """Constructor Initialize object's private data. id: Test script ID [default: ''] This is used to have options targeted for a given ID without including these options in any other test script. usage: Usage string [default: ''] testnames: List of testnames [default: []] When this list is not empty, the --runtest option is enabled and test scripts should use the run_tests() method to run all the tests. Test script should have methods named as <testname>_test. Example: x = TestUtil(testnames=['basic', 'lock']) # The following methods should exist: x.basic_test() x.lock_test() """ self.id = kwargs.pop('id', "") self.usage = kwargs.pop('usage', '') self.testnames = kwargs.pop('testnames', []) self.progname = os.path.basename(sys.argv[0]) self.testname = "" if self.progname[-3:] == '.py': # Remove extension self.progname = self.progname[:-3] self._name = None self.tverbose = 1 self._bugmsgs = [] self.ignore = False self.bugmsgs = None self.nocleanup = True self.test_time = [time.time()] self._fileopt = True self.remove_list = [] self.fileidx = 1 self.diridx = 1 self.logidx = 1 self.files = [] self.dirs = [] self.abshash = {} self.test_msgs = [] self._msg_count = {} self._reset_files() for tid in _test_map: self._msg_count[tid] = 0 self.dindent(4) self.optfiles = [] self.testopts = {} NFSUtil.__init__(self) self._init_options()