@@ -105,7 +105,8 @@ def also_with_proxying(f):
105
105
def metafunc (self , proxied , * args , ** kwargs ):
106
106
if DEBUG :
107
107
print ('parameterize:proxied=%d' % proxied )
108
- self .proxied = proxied
108
+ if proxied :
109
+ self .proxy_to_worker ()
109
110
f (self , * args , ** kwargs )
110
111
111
112
parameterize (metafunc , {'' : (False ,),
@@ -118,7 +119,7 @@ def proxied(f):
118
119
119
120
@wraps (f )
120
121
def decorated (self , * args , ** kwargs ):
121
- self .proxied = True
122
+ self .proxy_to_worker ()
122
123
return f (self , * args , ** kwargs )
123
124
124
125
return decorated
@@ -243,6 +244,9 @@ def setUp(self):
243
244
'-Wno-int-conversion' ,
244
245
]
245
246
247
+ def proxy_to_worker (self ):
248
+ self .emcc_args += ['--proxy-to-worker' , '-sGL_TESTING' ]
249
+
246
250
def require_jspi (self ):
247
251
if not is_chrome ():
248
252
self .skipTest (f'Current browser ({ EMTEST_BROWSER } ) does not support JSPI. Only chromium-based browsers ({ CHROMIUM_BASED_BROWSERS } ) support JSPI today.' )
@@ -283,7 +287,7 @@ def reftest(self, filename, reference, reference_slack=0, *args, **kwargs):
283
287
assert 'expected' not in kwargs
284
288
expected = [str (i ) for i in range (0 , reference_slack + 1 )]
285
289
self .make_reftest (reference )
286
- if self .proxied :
290
+ if '--proxy-to-worker' in self .emcc_args :
287
291
assert 'post_build' not in kwargs
288
292
kwargs ['post_build' ] = self .post_manual_reftest
289
293
create_file ('fakereftest.js' , 'var reftestUnblock = () => {}; var reftestBlock = () => {};' )
@@ -2032,7 +2036,7 @@ def test_cubegeom_pre3(self):
2032
2036
})
2033
2037
@requires_graphics_hardware
2034
2038
def test_cubegeom (self , args ):
2035
- if self .proxied and args :
2039
+ if '--proxy-to-worker' in self .emcc_args and args :
2036
2040
# proxy only in the simple, normal case (we can't trace GL calls when proxied)
2037
2041
self .skipTest ('tracing + proxying not supported' )
2038
2042
self .reftest ('third_party/cubegeom/cubegeom.c' , 'third_party/cubegeom/cubegeom.png' , args = ['-O2' , '-g' , '-sLEGACY_GL_EMULATION' , '-lGL' , '-lSDL' ] + args )
@@ -3003,7 +3007,7 @@ def test_sdl2_threads(self):
3003
3007
@requires_graphics_hardware
3004
3008
@also_with_proxying
3005
3009
def test_sdl2_glshader (self ):
3006
- if not self .proxied :
3010
+ if '--proxy-to-worker' not in self .emcc_args :
3007
3011
# closure build current fails on proxying
3008
3012
self .emcc_args += ['--closure=1' , '-g1' ]
3009
3013
self .reftest ('test_sdl2_glshader.c' , 'test_sdl_glshader.png' , args = ['-sUSE_SDL=2' , '-sLEGACY_GL_EMULATION' ])
@@ -3443,11 +3447,8 @@ def test_webidl(self, args):
3443
3447
self .btest ('webidl/test.cpp' , '1' , args = ['--post-js' , 'glue.js' , '-I.' , '-DBROWSER' ] + args )
3444
3448
3445
3449
@no_wasm64 ('https://github.com/llvm/llvm-project/issues/98778' )
3446
- @parameterized ({
3447
- '' : ([],),
3448
- 'proxy_to_worker' : (['--proxy-to-worker' ],),
3449
- })
3450
- def test_dylink (self , args ):
3450
+ @also_with_proxying
3451
+ def test_dylink (self ):
3451
3452
create_file ('main.c' , r'''
3452
3453
#include <assert.h>
3453
3454
#include <stdio.h>
@@ -3468,7 +3469,7 @@ def test_dylink(self, args):
3468
3469
}
3469
3470
''' )
3470
3471
self .emcc ('side.c' , ['-sSIDE_MODULE' , '-O2' , '-o' , 'side.wasm' ])
3471
- self .btest_exit ('main.c' , args = ['-sMAIN_MODULE=2' , '-O2' , 'side.wasm' ] + args )
3472
+ self .btest_exit ('main.c' , args = ['-sMAIN_MODULE=2' , '-O2' , 'side.wasm' ])
3472
3473
3473
3474
def test_dlopen_async (self ):
3474
3475
create_file ('side.c' , 'int foo = 42;\n ' )
0 commit comments