X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=blobdiff_plain;f=app_driver.py;h=8dd7b5e782dbff73b96d163ecb9ba44789799f47;hp=a44badea1566d4248e80ed28374359dd22710fe7;hb=e3171a80329d21614fb50990c56621b968ece117;hpb=b8296ac85e510854e7ad57b02ddba25114b92775 diff --git a/app_driver.py b/app_driver.py index a44bade..8dd7b5e 100755 --- a/app_driver.py +++ b/app_driver.py @@ -137,7 +137,7 @@ class TraceChecker: -class TestCase: +class AppDriver(Driver): cmd = None cwd = None @@ -155,6 +155,7 @@ class TestCase: threshold_precision = 12.0 def __init__(self): + Driver.__init__(self) self.stateCache = {} def runApp(self): @@ -169,11 +170,23 @@ class TestCase: if p.returncode: skip('application returned code %i' % p.returncode) - api_map = { + api_trace_map = { 'gl': 'gl', 'egl_gl': 'egl', 'egl_gles1': 'egl', 'egl_gles2': 'egl', + 'd3d7': 'd3d7', + 'd3d8': 'd3d8', + 'd3d9': 'd3d9', + 'd3d10': 'd3d10', + } + + api_retrace_map = { + 'gl': 'glretrace', + 'egl_gl': 'eglretrace', + 'egl_gles1': 'eglretrace', + 'egl_gles2': 'eglretrace', + 'd3d9': 'd3dretrace', } def traceApp(self): @@ -201,7 +214,7 @@ class TestCase: cmd = [ options.apitrace, 'trace', - '--api', self.api_map[self.api], + '--api', self.api_trace_map[self.api], '--output', self.trace_file, '--' ] + cmd @@ -226,6 +239,9 @@ class TestCase: self.doubleBuffer = checker.doubleBuffer + if self.api not in self.api_retrace_map: + return + for callNo, refImageFileName in checker.images: self.checkImage(callNo, refImageFileName) for callNo, refStateFileName in checker.states: @@ -292,6 +308,9 @@ class TestCase: open(filename, 'wt').write(s) def retrace(self): + if self.api not in self.api_retrace_map: + return + p = self._retrace() p.wait() if p.returncode != 0: @@ -394,7 +413,7 @@ class TestCase: pass def _retrace(self, args = None, stdout=subprocess.PIPE): - retrace = self.api_map[self.api] + 'retrace' + retrace = self.api_retrace_map[self.api] cmd = [get_build_program(retrace)] if self.doubleBuffer: cmd += ['-db'] @@ -405,19 +424,8 @@ class TestCase: 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', @@ -434,7 +442,7 @@ class AppMain(Main): return optparser - def main(self): + def run(self): global options (options, args) = self.parseOptions() @@ -442,17 +450,20 @@ class AppMain(Main): 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()