]> git.cworth.org Git - apitrace-tests/blobdiff - tool_driver.py
Only invoke pkg_check_modules when PKG_CONFIG_FOUND is true.
[apitrace-tests] / tool_driver.py
index 4cc36c65bab78bf7584a947dd6c656bd03675861..60ad5d9903052a4ae5b137a8360e223db2e8006b 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 = []
@@ -62,7 +58,7 @@ class AsciiComparer:
             try:
                 refLine = refLines[lineNo]
             except IndexError:
-                fail('unexpected junk: %r' % self.srcLines[lineNo])
+                fail('unexpected junk: %r' % srcLines[lineNo])
 
             try:
                 srcLine = srcLines[lineNo]
@@ -76,42 +72,39 @@ class AsciiComparer:
 
 class ToolDriver(Driver):
 
-    def runTool(self):
+    def runScript(self, refScript):
         '''Run the application standalone, skipping this test if it fails by
         some reason.'''
 
-        if self.options.ref_dump:
-            stdout = subprocess.PIPE
-        else:
-            stdout = None
+        refStream = open(refScript, 'rt')
+        cwd = os.path.dirname(os.path.abspath(refScript))
 
-        cmd = [self.options.apitrace] + self.args
-        p = popen(cmd, cwd=options.cwd, stdout=stdout)
+        while True:
+            args = refStream.readline().split()
+            cmd = [self.options.apitrace] + args
 
-        if self.options.ref_dump:
-            comparer = AsciiComparer(p.stdout, self.options.ref_dump, self.options.verbose)
-            comparer.compare()
+            if args[0] == 'dump':
+                break
+
+            p = popen(cmd, cwd=cwd, universal_newlines=True)
+            p.wait()
+            if p.returncode != 0:
+                fail('`apitrace %s` returned code %i' % (args[0], p.returncode))
+            
+        p = popen(cmd, cwd=cwd, stdout=subprocess.PIPE, universal_newlines=True)
+
+        comparer = AsciiComparer(p.stdout, refStream, self.options.verbose)
+        comparer.compare()
 
         p.wait()
         if p.returncode != 0:
-            fail('tool returned code %i' % p.returncode)
+            fail('`apitrace %s` returned code %i' % (args[0], p.returncode))
     
-    def createOptParser(self):
-        optparser = Driver.createOptParser(self)
-
-        optparser.add_option(
-            '--ref-dump', metavar='PATH',
-            type='string', dest='ref_dump', default=None,
-            help='reference dump')
-
-        return optparser
-
     def run(self):
-        global options
-
-        (options, args) = self.parseOptions()
+        self.parseOptions()
 
-        self.runTool()
+        for arg in self.args:
+            self.runScript(arg)
 
         pass_()