Lines Matching refs:self

71     def __init__(self, name, ref_dir, test_dir, skip=False):
72 self.name = name
73 self.ref_dir = ref_dir
74 self.test_dir = test_dir
75 self.force_skip = skip
76 self.start_time = None
77 self.stop_time = None
79 def result(self, state, **kwargs):
80 if self.start_time is not None and "runtime" not in kwargs:
81 self.stop_time = datetime.utcnow()
82 delta = self.stop_time - self.start_time
85 return UnitResult(self.name, state, **kwargs)
87 def ok(self, **kwargs):
88 return self.result(UnitResult.STATE_OK, **kwargs)
90 def skip(self, **kwargs):
91 return self.result(UnitResult.STATE_SKIPPED, **kwargs)
93 def error(self, message, **kwargs):
94 return self.result(UnitResult.STATE_ERROR, message=message, **kwargs)
96 def failure(self, message, **kwargs):
97 return self.result(UnitResult.STATE_FAILURE, message=message, **kwargs)
99 def ref_file(self, fname):
100 return os.path.join(self.ref_dir, fname)
102 def out_file(self, fname):
103 return os.path.join(self.test_dir, fname)
105 def _read_output(self, fname, default=""):
107 with open(self.out_file(fname), "r") as f:
112 def run(self):
113 self.start_time = datetime.utcnow()
115 if self.force_skip:
116 return self.skip()
118 return self._run()
120 return self.error("Python exception:\n%s" % traceback.format_exc())
123 def _run(self):
139 def __init__(self, gem5, gem5_args, timeout=0, **kwargs):
140 super(RunGem5, self).__init__("gem5", **kwargs)
141 self.gem5 = gem5
142 self.args = gem5_args
143 self.timeout = timeout
145 def _run(self):
147 self.gem5,
148 "-d", self.test_dir,
151 ] + self.args
156 status, gem5_stdout, gem5_stderr = p.call(timeout=self.timeout)
158 return self.error("Timeout", stdout=te.stdout, stderr=te.stderr)
160 return self.error("Failed to launch gem5: %s" % ose)
167 self._read_output("simerr"),
175 self._read_output("simout"),
180 return self.error("gem5 terminated by signal %i" % (-status, ),
183 return self.skip(stdout=stdout, stderr=stderr)
185 return self.error("gem5 exited with non-zero status: %i" % status,
188 return self.ok(stdout=stdout, stderr=stderr)
219 def __init__(self, fname, **kwargs):
220 super(DiffOutFile, self).__init__("diff[%s]" % fname,
223 self.fname = fname
224 self.line_filters = DiffOutFile.diff_ignore_regexes.get(fname, tuple())
226 def _filter_file(self, fname):
228 for r in self.line_filters:
239 def _run(self):
240 fname = self.fname
241 ref = self.ref_file(fname)
242 out = self.out_file(fname)
245 return self.error("%s doesn't exist in reference directory" \
249 return self.error("%s doesn't exist in output directory" % fname)
252 tuple(self._filter_file(ref)),
253 tuple(self._filter_file(out)),
258 return self.error("ref/%s and out/%s differ" % (fname, fname),
261 return self.ok(stdout="-- ref/%s and out/%s are identical --" \
267 def __init__(self, **kwargs):
268 super(DiffStatFile, self).__init__("stat_diff", **kwargs)
270 self.stat_diff = os.path.join(_test_base, "diff-out")
272 def _run(self):
280 self.stat_diff,
281 self.ref_file(stats), self.out_file(stats),
289 return self.ok(stdout=stdout, stderr=stderr)
291 return self.failure("Statistics mismatch",
294 return self.error("diff-out returned an error: %i" % status,