@@ -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