-class TestCase:
+class AppDriver(Driver):
cmd = None
cwd = None
threshold_precision = 12.0
def __init__(self):
+ Driver.__init__(self)
self.stateCache = {}
def runApp(self):
cmd += [self.trace_file]
return popen(cmd, stdout=stdout)
- def run(self):
- self.runApp()
- self.traceApp()
- self.checkTrace()
- self.retrace()
-
- pass_()
-
-
-class AppMain(Main):
-
def createOptParser(self):
- optparser = Main.createOptParser(self)
+ optparser = Driver.createOptParser(self)
optparser.add_option(
'-a', '--api', metavar='API',
return optparser
- def main(self):
+ def run(self):
global options
(options, args) = self.parseOptions()
if not os.path.exists(options.results):
os.makedirs(options.results)
- test = TestCase()
- test.verbose = options.verbose
+ self.verbose = options.verbose
- test.cmd = args
- test.cwd = options.cwd
- test.api = options.api
- test.ref_dump = options.ref_dump
- test.results = options.results
+ self.cmd = args
+ self.cwd = options.cwd
+ self.api = options.api
+ self.ref_dump = options.ref_dump
+ self.results = options.results
- test.run()
+ self.runApp()
+ self.traceApp()
+ self.checkTrace()
+ self.retrace()
+ pass_()
if __name__ == '__main__':
- AppMain().main()
+ AppDriver().run()
sys.exit(1)
-class Main:
- global options
+class Driver:
+
+ def __init__(self):
+ pass
def createOptParser(self):
default_apitrace = 'apitrace'
sys.path.insert(0, get_scripts_path())
+ self.options = options
+ self.args = args
+
return options, args
- def main(self):
+ def run(self):
raise NotImplementedError
-class TestCase:
+class ToolDriver(Driver):
- cmd = None
- cwd = None
- ref_dump = None
-
- verbose = False
-
- def __init__(self):
- pass
-
def runTool(self):
'''Run the application standalone, skipping this test if it fails by
some reason.'''
- if not self.cmd:
- return
-
- if self.ref_dump:
+ if self.options.ref_dump:
stdout = subprocess.PIPE
else:
stdout = None
- cmd = [options.apitrace] + self.cmd
- p = popen(cmd, cwd=self.cwd, stdout=stdout)
+ cmd = [self.options.apitrace] + self.args
+ p = popen(cmd, cwd=options.cwd, stdout=stdout)
- if self.ref_dump:
- comparer = AsciiComparer(p.stdout, self.ref_dump, self.verbose)
+ if self.options.ref_dump:
+ comparer = AsciiComparer(p.stdout, self.options.ref_dump, self.options.verbose)
comparer.compare()
p.wait()
if p.returncode != 0:
fail('tool returned code %i' % p.returncode)
-
- def run(self):
- self.runTool()
-
- pass_()
-
-
-class ToolMain(Main):
-
+
def createOptParser(self):
- optparser = Main.createOptParser(self)
+ optparser = Driver.createOptParser(self)
optparser.add_option(
'--ref-dump', metavar='PATH',
return optparser
- def main(self):
+ def run(self):
global options
(options, args) = self.parseOptions()
- test = TestCase()
- test.verbose = options.verbose
-
- test.cmd = args
- test.cwd = options.cwd
- test.ref_dump = options.ref_dump
+ self.runTool()
- test.run()
+ pass_()
if __name__ == '__main__':
- ToolMain().main()
+ ToolDriver().run()