Skip to content

Commit 5018699

Browse files
committed
Improve browser reftest reporting. NFC
Report `match` or `mismatch` rather than just a number.
1 parent 50532ec commit 5018699

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

Diff for: test/reftest.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,18 @@ function doReftest() {
6565
}
6666
}
6767
// floor, to allow some margin of error for antialiasing
68-
var wrong = Math.floor(total / (img.width*img.height*3));
68+
var delta = Math.floor(total / (img.width*img.height*3));
69+
console.log(`image delta = ${delta}`);
70+
var wrong = delta > reftestSlack;
6971
if (wrong || reftestRebaseline) {
7072
// Generate a png of the actual rendered image and send it back
7173
// to the server.
7274
Module['canvas'].toBlob((blob) => {
7375
sendFileToServer('actual.png', blob);
74-
reportResultToServer(wrong);
76+
reportResultToServer(wrong ? `mismatch:${delta}` : 'match');
7577
})
7678
} else {
77-
reportResultToServer(wrong);
79+
reportResultToServer('match');
7880
}
7981
};
8082
actualImage.src = actualUrl;

Diff for: test/test_browser.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -264,11 +264,12 @@ def post_manual_reftest(self):
264264
</body>''')
265265
create_file('test.html', html)
266266

267-
def make_reftest(self, expected):
267+
def make_reftest(self, expected, reference_slack):
268268
# make sure the pngs used here have no color correction, using e.g.
269269
# pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile outfile
270270
shutil.copy(expected, 'expected.png')
271271
create_file('reftest.js', f'''
272+
const reftestSlack = {reference_slack};
272273
const reftestRebaseline = {common.EMTEST_REBASELINE};
273274
''' + read_file(test_file('reftest.js')))
274275

@@ -277,8 +278,7 @@ def reftest(self, filename, reference, reference_slack=0, *args, **kwargs):
277278
"""
278279
reference = find_browser_test_file(reference)
279280
assert 'expected' not in kwargs
280-
expected = [str(i) for i in range(reference_slack + 1)]
281-
self.make_reftest(reference)
281+
self.make_reftest(reference, reference_slack)
282282
if '--proxy-to-worker' in self.emcc_args:
283283
assert 'post_build' not in kwargs
284284
kwargs['post_build'] = self.post_manual_reftest
@@ -289,7 +289,7 @@ def reftest(self, filename, reference, reference_slack=0, *args, **kwargs):
289289
kwargs['emcc_args'] += ['--pre-js', 'reftest.js', '-sGL_TESTING']
290290

291291
try:
292-
return self.btest(filename, expected=expected, *args, **kwargs)
292+
return self.btest(filename, expected='match', *args, **kwargs)
293293
finally:
294294
if common.EMTEST_REBASELINE and os.path.exists('actual.png'):
295295
print(f'overwriting expected image: {reference}')

0 commit comments

Comments
 (0)