@@ -2316,12 +2316,25 @@ def compile_btest(self, filename, args, reporting=Reporting.FULL):
2316
2316
filename = test_file (filename )
2317
2317
self .run_process ([compiler_for (filename ), filename ] + self .get_emcc_args () + args )
2318
2318
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 ):
2320
2320
"""Special case of `btest` that uses reference image
2321
2321
"""
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 )
2325
2338
2326
2339
def btest_exit (self , filename , assert_returncode = 0 , * args , ** kwargs ):
2327
2340
"""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):
2337
2350
kwargs ['expected' ] = 'exit:%d' % assert_returncode
2338
2351
return self .btest (filename , * args , ** kwargs )
2339
2352
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 ,
2342
2355
args = None , url_suffix = '' , timeout = None ,
2343
- manually_trigger_reftest = False , extra_tries = 1 ,
2356
+ extra_tries = 1 ,
2344
2357
reporting = Reporting .FULL ,
2345
2358
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 '
2347
2360
if args is None :
2348
2361
args = []
2349
2362
args = args .copy ()
2350
2363
filename = find_browser_test_file (filename )
2351
2364
2352
2365
# Run via --proxy-to-worker. This gets set by the @also_with_proxying.
2353
2366
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
2360
2367
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
+
2370
2369
outfile = output_basename + '.html'
2371
2370
args += ['-o' , outfile ]
2372
2371
# print('all args:', args)
0 commit comments