Skip to content

Commit b98926d

Browse files
committed
[test] Add reftest helper method for browser tests. NFC
This makes it easy distinguish reference tests from other btests.
1 parent 34c83d8 commit b98926d

File tree

2 files changed

+197
-187
lines changed

2 files changed

+197
-187
lines changed

test/common.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,17 @@ def force_delete_contents(dirname):
555555
utils.delete_contents(dirname)
556556

557557

558+
def find_browser_test_file(filename):
559+
"""Looks for files in test/browser and then in test/
560+
"""
561+
if not os.path.exists(filename):
562+
fullname = test_file('browser', filename)
563+
if not os.path.exists(fullname):
564+
fullname = test_file(filename)
565+
filename = fullname
566+
return filename
567+
568+
558569
def parameterized(parameters):
559570
"""
560571
Mark a test as parameterized.
@@ -2010,7 +2021,7 @@ def run_browser(self, html_file, expected=None, message=None, timeout=None, extr
20102021

20112022
# @manually_trigger If set, we do not assume we should run the reftest when main() is done.
20122023
# Instead, call doReftest() in JS yourself at the right time.
2013-
def reftest(self, expected, manually_trigger=False):
2024+
def make_reftest(self, expected, manually_trigger=False):
20142025
# make sure the pngs used here have no color correction, using e.g.
20152026
# pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile outfile
20162027
basename = os.path.basename(expected)
@@ -2141,8 +2152,15 @@ def compile_btest(self, filename, args, reporting=Reporting.FULL):
21412152
filename = test_file(filename)
21422153
self.run_process([compiler_for(filename), filename] + self.get_emcc_args() + args)
21432154

2155+
def reftest(self, filename, reference, *args, **kwargs):
2156+
"""Special case of `btest` that uses reference image
2157+
"""
2158+
assert 'reference' not in kwargs
2159+
kwargs['reference'] = reference
2160+
return self.btest(filename, *args, **kwargs)
2161+
21442162
def btest_exit(self, filename, assert_returncode=0, *args, **kwargs):
2145-
"""Special case of btest that reports its result solely via exiting
2163+
"""Special case of `btest` that reports its result solely via exiting
21462164
with a given result code.
21472165
21482166
In this case we set EXIT_RUNTIME and we don't need to provide the
@@ -2167,15 +2185,11 @@ def btest(self, filename, expected=None, reference=None,
21672185
args = []
21682186
original_args = args
21692187
args = args.copy()
2170-
if not os.path.exists(filename):
2171-
fullname = test_file('browser', filename)
2172-
if not os.path.exists(fullname):
2173-
fullname = test_file(filename)
2174-
filename = fullname
2188+
filename = find_browser_test_file(filename)
21752189
if reference:
2176-
self.reference = reference
2190+
reference = find_browser_test_file(reference)
21772191
expected = [str(i) for i in range(0, reference_slack + 1)]
2178-
self.reftest(test_file(reference), manually_trigger=manually_trigger_reftest)
2192+
self.make_reftest(reference, manually_trigger=manually_trigger_reftest)
21792193
if not manual_reference:
21802194
args += ['--pre-js', 'reftest.js', '-sGL_TESTING']
21812195
else:

0 commit comments

Comments
 (0)