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