]> git.cworth.org Git - apitrace-tests/blobdiff - tool_driver.py
cli: Don't rely on image generation for diff-image tests.
[apitrace-tests] / tool_driver.py
index 4cbcc374f5c59ec0be4ab224d4a61b82965d8c76..60ad5d9903052a4ae5b137a8360e223db2e8006b 100755 (executable)
@@ -58,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]
@@ -77,18 +77,28 @@ class ToolDriver(Driver):
         some reason.'''
 
         refStream = open(refScript, 'rt')
-
-        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)
+
+        while True:
+            args = refStream.readline().split()
+            cmd = [self.options.apitrace] + args
+
+            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 run(self):
         self.parseOptions()