X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=blobdiff_plain;f=tool_driver.py;h=962db1e09b32baf3cfa106e4bfd96e2b85acff62;hp=63c10af72bcd1f22a9b02510425e53053a8ad7ed;hb=eda15ce2928c7ea9560d078581b7321b37b763cc;hpb=b8296ac85e510854e7ad57b02ddba25114b92775 diff --git a/tool_driver.py b/tool_driver.py index 63c10af..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 = [] @@ -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()