X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=blobdiff_plain;f=driver.py;h=2eab23ca2de18e60d7d6369c9890f3999f9c7adc;hp=e488e13ddfaa910565a0b5572fbf2809222d7a9f;hb=c8ad030bbae8d6a7e76f819af88222d90c4c8dc7;hpb=2a5b8c481348e3c6818612dfe71a34397604cdba diff --git a/driver.py b/driver.py index e488e13..2eab23c 100755 --- a/driver.py +++ b/driver.py @@ -216,6 +216,8 @@ class TestCase: verbose = False + threshold_precision = 12.0 + def __init__(self): self.stateCache = {} @@ -243,7 +245,13 @@ class TestCase: return if self.trace_file is None: - name, ext = os.path.splitext(os.path.basename(self.cmd[0])) + if self.ref_dump is not None: + name = self.ref_dump + else: + name = self.cmd[0] + name, ext = os.path.splitext(os.path.basename(name)) + while ext: + name, ext = os.path.splitext(os.path.basename(name)) self.trace_file = os.path.abspath(os.path.join(self.results, name + '.trace')) if os.path.exists(self.trace_file): os.remove(self.trace_file) @@ -306,8 +314,9 @@ class TestCase: from snapdiff import Comparer comparer = Comparer(refImage, srcImage) - match = comparer.ae() - if not match: + precision = comparer.precision(filter=True) + sys.stdout.write('precision of %f bits against %s\n' % (precision, refImageFileName)) + if precision < self.threshold_precision: prefix = '%s.%u' % (self.getNamePrefix(), callNo) srcImageFileName = prefix + '.src.png' srcImage.save(srcImageFileName) @@ -333,13 +342,10 @@ class TestCase: differ.visit(refState, srcState) fail('state from call %u does not match %s' % (callNo, refStateFileName)) - # Allo non-standard JS comments in JSON - json_comment_re = re.compile(r'//.*$', re.MULTILINE) - def getRefState(self, refStateFileName): - data = open(refStateFileName, 'rt').read() - data = self.json_comment_re.sub('', data) - state = json.loads(data, strict=False) + stream = open(refStateFileName, 'rt') + from jsondiff import load + state = load(stream) self.adjustRefState(state) return state @@ -438,7 +444,7 @@ class TestCase: except KeyError: return - if platform.system() == 'Darwin' or True: + if platform.system() == 'Darwin': # Mac OS X drivers fail on GL_COLOR_SUM # XXX: investigate this self.removeState(parameters, 'GL_COLOR_SUM')