X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=blobdiff_plain;f=tool_driver.py;h=962db1e09b32baf3cfa106e4bfd96e2b85acff62;hp=4cc36c65bab78bf7584a947dd6c656bd03675861;hb=e3171a80329d21614fb50990c56621b968ece117;hpb=1017d793714f4d3d2fe2b4d29e1eaf564d5db855 diff --git a/tool_driver.py b/tool_driver.py index 4cc36c6..962db1e 100755 --- a/tool_driver.py +++ b/tool_driver.py @@ -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 = [] @@ -76,42 +72,29 @@ 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') - cmd = [self.options.apitrace] + self.args - p = popen(cmd, cwd=options.cwd, stdout=stdout) + 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) - if self.options.ref_dump: - comparer = AsciiComparer(p.stdout, self.options.ref_dump, self.options.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 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_()