Skip to content

Commit b9a0186

Browse files
authored
[test] Cleanup make_reftest part 2. NFC (#22627)
Avoid including/inlining browser_reporting.js in the middle of reftest.js.
1 parent 7df48f6 commit b9a0186

File tree

2 files changed

+31
-29
lines changed

2 files changed

+31
-29
lines changed

test/common.py

+10-24
Original file line numberDiff line numberDiff line change
@@ -2207,7 +2207,6 @@ def run_browser(self, html_file, expected=None, message=None, timeout=None, extr
22072207
def make_reftest(self, expected):
22082208
# make sure the pngs used here have no color correction, using e.g.
22092209
# pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile outfile
2210-
reporting = read_file(test_file('browser_reporting.js'))
22112210
shutil.copy(expected, 'expected.png')
22122211
create_file('reftest.js', '''
22132212
function doReftest() {
@@ -2256,30 +2255,16 @@ def make_reftest(self, expected):
22562255
}
22572256
// floor, to allow some margin of error for antialiasing
22582257
var wrong = Math.floor(total / (img.width*img.height*3));
2259-
2260-
function reportResult(result) {
2261-
// If the main JS file is in a worker, or modularize, then we need to supply our own
2262-
// reporting logic.
2263-
if (typeof reportResultToServer === 'undefined') {
2264-
(() => {
2265-
%s
2266-
reportResultToServer(result);
2267-
})();
2268-
} else {
2269-
reportResultToServer(result);
2270-
}
2271-
}
2272-
22732258
var rebaseline = %s;
22742259
if (wrong || rebaseline) {
22752260
// Generate a png of the actual rendered image and send it back
22762261
// to the server.
22772262
Module.canvas.toBlob((blob) => {
22782263
sendFileToServer('actual.png', blob);
2279-
reportResult(wrong);
2264+
reportResultToServer(wrong);
22802265
})
22812266
} else {
2282-
reportResult(wrong);
2267+
reportResultToServer(wrong);
22832268
}
22842269
};
22852270
actualImage.src = actualUrl;
@@ -2314,7 +2299,7 @@ def make_reftest(self, expected):
23142299
}
23152300
23162301
setupRefTest();
2317-
''' % (reporting, EMTEST_REBASELINE))
2302+
''' % EMTEST_REBASELINE)
23182303

23192304
def compile_btest(self, filename, args, reporting=Reporting.FULL):
23202305
# Inject support code for reporting results. This adds an include a header so testcases can
@@ -2340,16 +2325,17 @@ def compile_btest(self, filename, args, reporting=Reporting.FULL):
23402325
def reftest(self, filename, reference, reference_slack=0, *args, **kwargs):
23412326
"""Special case of `btest` that uses reference image
23422327
"""
2343-
if self.proxied:
2344-
assert 'post_build' not in kwargs
2345-
kwargs['post_build'] = self.post_manual_reftest
2346-
23472328
reference = find_browser_test_file(reference)
23482329
assert 'expected' not in kwargs
23492330
expected = [str(i) for i in range(0, reference_slack + 1)]
23502331
self.make_reftest(reference)
2351-
kwargs.setdefault('args', [])
2352-
kwargs['args'] += ['--pre-js', 'reftest.js', '-sGL_TESTING']
2332+
if self.proxied:
2333+
print("XXXX")
2334+
assert 'post_build' not in kwargs
2335+
kwargs['post_build'] = self.post_manual_reftest
2336+
else:
2337+
kwargs.setdefault('args', [])
2338+
kwargs['args'] += ['--pre-js', 'reftest.js', '-sGL_TESTING']
23532339

23542340
try:
23552341
return self.btest(filename, expected=expected, *args, **kwargs)

test/test_browser.py

+21-5
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,17 @@ def metafunc(self, proxied, *args, **kwargs):
112112
return metafunc
113113

114114

115+
def proxied(f):
116+
assert callable(f)
117+
118+
@wraps(f)
119+
def decorated(self, *args, **kwargs):
120+
self.proxied = True
121+
return f(self, *args, **kwargs)
122+
123+
return decorated
124+
125+
115126
# This is similar to @core.no_wasmfs, but it disable WasmFS and runs the test
116127
# normally. That is, in core we skip the test if we are in the wasmfs.* mode,
117128
# while in browser we don't have such modes, so we force the test to run without
@@ -856,9 +867,11 @@ def test_sdl_canvas(self, args):
856867

857868
def post_manual_reftest(self):
858869
assert os.path.exists('reftest.js')
870+
shutil.copy(test_file('browser_reporting.js'), '.')
859871
html = read_file('test.html')
860872
html = html.replace('</body>', '''
861-
<script src="reftest.js"/>
873+
<script src="browser_reporting.js"></script>
874+
<script src="reftest.js"></script>
862875
<script>
863876
var windowClose = window.close;
864877
window.close = () => {
@@ -872,9 +885,10 @@ def post_manual_reftest(self):
872885
</body>''')
873886
create_file('test.html', html)
874887

888+
@proxied
875889
def test_sdl_canvas_proxy(self):
876890
create_file('data.txt', 'datum')
877-
self.reftest('test_sdl_canvas_proxy.c', 'test_sdl_canvas_proxy.png', args=['--proxy-to-worker', '--preload-file', 'data.txt', '-lSDL', '-lGL'], post_build=self.post_manual_reftest)
891+
self.reftest('test_sdl_canvas_proxy.c', 'test_sdl_canvas_proxy.png', args=['--proxy-to-worker', '--preload-file', 'data.txt', '-lSDL', '-lGL'])
878892

879893
@requires_graphics_hardware
880894
def test_glgears_proxy_jstarget(self):
@@ -2934,7 +2948,7 @@ def test_sdl2_glshader(self):
29342948
if not self.proxied:
29352949
# closure build current fails on proxying
29362950
self.emcc_args += ['--closure=1', '-g1']
2937-
self.reftest('test_sdl2_glshader.c', 'test_sdl_glshader.png', args=['-sUSE_SDL=2', '-O2', '-sLEGACY_GL_EMULATION'])
2951+
self.reftest('test_sdl2_glshader.c', 'test_sdl_glshader.png', args=['-sUSE_SDL=2', '-sLEGACY_GL_EMULATION'])
29382952

29392953
@requires_graphics_hardware
29402954
def test_sdl2_canvas_blank(self):
@@ -2986,9 +3000,10 @@ def test_sdl2_image_prepare_data(self):
29863000
self.reftest('test_sdl2_image_prepare_data.c', 'screenshot.jpg', args=['--preload-file', 'screenshot.not', '-sUSE_SDL=2', '-sUSE_SDL_IMAGE=2'])
29873001

29883002
@requires_graphics_hardware
3003+
@proxied
29893004
def test_sdl2_canvas_proxy(self):
29903005
create_file('data.txt', 'datum')
2991-
self.reftest('test_sdl2_canvas_proxy.c', 'test_sdl2_canvas.png', args=['-sUSE_SDL=2', '--proxy-to-worker', '--preload-file', 'data.txt'], post_build=self.post_manual_reftest)
3006+
self.reftest('test_sdl2_canvas_proxy.c', 'test_sdl2_canvas.png', args=['-sUSE_SDL=2', '--proxy-to-worker', '--preload-file', 'data.txt'])
29923007

29933008
def test_sdl2_pumpevents(self):
29943009
# key events should be detected using SDL_PumpEvents
@@ -3066,8 +3081,9 @@ def test_sdl2_canvas_write(self):
30663081
self.btest_exit('test_sdl2_canvas_write.c', args=['-sUSE_SDL=2'])
30673082

30683083
@requires_graphics_hardware
3084+
@proxied
30693085
def test_sdl2_gl_frames_swap(self):
3070-
self.reftest('test_sdl2_gl_frames_swap.c', 'test_sdl2_gl_frames_swap.png', args=['--proxy-to-worker', '-sUSE_SDL=2'], post_build=self.post_manual_reftest)
3086+
self.reftest('test_sdl2_gl_frames_swap.c', 'test_sdl2_gl_frames_swap.png', args=['--proxy-to-worker', '-sUSE_SDL=2'])
30713087

30723088
@requires_graphics_hardware
30733089
def test_sdl2_ttf(self):

0 commit comments

Comments
 (0)