]> git.cworth.org Git - apitrace-tests/blobdiff - tool_driver.py
Ensure feature level 10.0 at minimum.
[apitrace-tests] / tool_driver.py
index 63c10af72bcd1f22a9b02510425e53053a8ad7ed..962db1e09b32baf3cfa106e4bfd96e2b85acff62 100755 (executable)
@@ -37,13 +37,9 @@ from base_driver import *
 
 class AsciiComparer:
 
-    def __init__(self, srcStream, refFileName, verbose=False):
+    def __init__(self, srcStream, refStream, verbose=False):
         self.srcStream = srcStream
-        self.refFileName = refFileName
-        if refFileName:
-            self.refStream = open(refFileName, 'rt')
-        else:
-            self.refStream = None
+        self.refStream = refStream
     
     def readLines(self, stream):
         lines = []
@@ -74,72 +70,34 @@ class AsciiComparer:
 
 
 
-class TestCase:
+class ToolDriver(Driver):
 
-    cmd = None
-    cwd = None
-    ref_dump = None
-
-    verbose = False
-
-    def __init__(self):
-        pass
-    
-    def runTool(self):
+    def runScript(self, refScript):
         '''Run the application standalone, skipping this test if it fails by
         some reason.'''
 
-        if not self.cmd:
-            return
+        refStream = open(refScript, 'rt')
 
-        if self.ref_dump:
-            stdout = subprocess.PIPE
-        else:
-            stdout = None
+        args = refStream.readline().split()
+        cmd = [self.options.apitrace] + args
+        cwd = os.path.dirname(os.path.abspath(refScript))
+        p = popen(cmd, cwd=cwd, stdout=subprocess.PIPE, universal_newlines=True)
 
-        cmd = [options.apitrace] + self.cmd
-        p = popen(cmd, cwd=self.cwd, stdout=stdout)
-
-        if self.ref_dump:
-            comparer = AsciiComparer(p.stdout, self.ref_dump, self.verbose)
-            comparer.compare()
+        comparer = AsciiComparer(p.stdout, refStream, self.options.verbose)
+        comparer.compare()
 
         p.wait()
         if p.returncode != 0:
             fail('tool returned code %i' % p.returncode)
-
+    
     def run(self):
-        self.runTool()
-
-        pass_()
-
+        self.parseOptions()
 
-class ToolMain(Main):
+        for arg in self.args:
+            self.runScript(arg)
 
-    def createOptParser(self):
-        optparser = Main.createOptParser(self)
-
-        optparser.add_option(
-            '--ref-dump', metavar='PATH',
-            type='string', dest='ref_dump', default=None,
-            help='reference dump')
-
-        return optparser
-
-    def main(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
-
-        test.run()
+        pass_()
 
 
 if __name__ == '__main__':
-    ToolMain().main()
+    ToolDriver().run()