Skip to content

Commit 8996d44

Browse files
authored
[test] Refactor btest so it doesn't need to know about reftesting. NFC (#22597)
The `reftest` function was added added back in #21392 and is now used exclusively, so there is no need for the lower level `best` function to o take these extra augments.
1 parent 203bc12 commit 8996d44

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

test/common.py

+22-23
Original file line numberDiff line numberDiff line change
@@ -2316,12 +2316,25 @@ def compile_btest(self, filename, args, reporting=Reporting.FULL):
23162316
filename = test_file(filename)
23172317
self.run_process([compiler_for(filename), filename] + self.get_emcc_args() + args)
23182318

2319-
def reftest(self, filename, reference, *args, **kwargs):
2319+
def reftest(self, filename, reference, reference_slack=0, manual_reference=False, manually_trigger_reftest=False, *args, **kwargs):
23202320
"""Special case of `btest` that uses reference image
23212321
"""
2322-
assert 'reference' not in kwargs
2323-
kwargs['reference'] = reference
2324-
return self.btest(filename, *args, **kwargs)
2322+
if self.proxied:
2323+
assert not manual_reference
2324+
manual_reference = True
2325+
manually_trigger_reftest = False
2326+
assert 'post_build' not in kwargs
2327+
kwargs['post_build'] = self.post_manual_reftest
2328+
2329+
reference = find_browser_test_file(reference)
2330+
assert 'expected' not in kwargs
2331+
expected = [str(i) for i in range(0, reference_slack + 1)]
2332+
self.make_reftest(reference, manually_trigger=manually_trigger_reftest)
2333+
if not manual_reference:
2334+
kwargs.setdefault('args', [])
2335+
kwargs['args'] += ['--pre-js', 'reftest.js', '-sGL_TESTING']
2336+
2337+
return self.btest(filename, expected=expected, *args, **kwargs)
23252338

23262339
def btest_exit(self, filename, assert_returncode=0, *args, **kwargs):
23272340
"""Special case of `btest` that reports its result solely via exiting
@@ -2337,36 +2350,22 @@ def btest_exit(self, filename, assert_returncode=0, *args, **kwargs):
23372350
kwargs['expected'] = 'exit:%d' % assert_returncode
23382351
return self.btest(filename, *args, **kwargs)
23392352

2340-
def btest(self, filename, expected=None, reference=None,
2341-
reference_slack=0, manual_reference=None, post_build=None,
2353+
def btest(self, filename, expected=None,
2354+
post_build=None,
23422355
args=None, url_suffix='', timeout=None,
2343-
manually_trigger_reftest=False, extra_tries=1,
2356+
extra_tries=1,
23442357
reporting=Reporting.FULL,
23452358
output_basename='test'):
2346-
assert expected or reference, 'a btest must either expect an output, or have a reference image'
2359+
assert expected, 'a btest must have an expected output'
23472360
if args is None:
23482361
args = []
23492362
args = args.copy()
23502363
filename = find_browser_test_file(filename)
23512364

23522365
# Run via --proxy-to-worker. This gets set by the @also_with_proxying.
23532366
if self.proxied:
2354-
if reference:
2355-
assert not manual_reference
2356-
manual_reference = True
2357-
manually_trigger_reftest = False
2358-
assert not post_build
2359-
post_build = self.post_manual_reftest
23602367
args += ['--proxy-to-worker', '-sGL_TESTING']
2361-
if reference:
2362-
reference = find_browser_test_file(reference)
2363-
expected = [str(i) for i in range(0, reference_slack + 1)]
2364-
self.make_reftest(reference, manually_trigger=manually_trigger_reftest)
2365-
if not manual_reference:
2366-
args += ['--pre-js', 'reftest.js', '-sGL_TESTING']
2367-
else:
2368-
# manual_reference only makes sense for reference tests
2369-
assert manual_reference is None
2368+
23702369
outfile = output_basename + '.html'
23712370
args += ['-o', outfile]
23722371
# print('all args:', args)

0 commit comments

Comments
 (0)