@@ -555,6 +555,17 @@ def force_delete_contents(dirname):
555
555
utils .delete_contents (dirname )
556
556
557
557
558
+ def find_browser_test_file (filename ):
559
+ """Looks for files in test/browser and then in test/
560
+ """
561
+ if not os .path .exists (filename ):
562
+ fullname = test_file ('browser' , filename )
563
+ if not os .path .exists (fullname ):
564
+ fullname = test_file (filename )
565
+ filename = fullname
566
+ return filename
567
+
568
+
558
569
def parameterized (parameters ):
559
570
"""
560
571
Mark a test as parameterized.
@@ -2010,7 +2021,7 @@ def run_browser(self, html_file, expected=None, message=None, timeout=None, extr
2010
2021
2011
2022
# @manually_trigger If set, we do not assume we should run the reftest when main() is done.
2012
2023
# Instead, call doReftest() in JS yourself at the right time.
2013
- def reftest (self , expected , manually_trigger = False ):
2024
+ def make_reftest (self , expected , manually_trigger = False ):
2014
2025
# make sure the pngs used here have no color correction, using e.g.
2015
2026
# pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile outfile
2016
2027
basename = os .path .basename (expected )
@@ -2141,8 +2152,15 @@ def compile_btest(self, filename, args, reporting=Reporting.FULL):
2141
2152
filename = test_file (filename )
2142
2153
self .run_process ([compiler_for (filename ), filename ] + self .get_emcc_args () + args )
2143
2154
2155
+ def reftest (self , filename , reference , * args , ** kwargs ):
2156
+ """Special case of `btest` that uses reference image
2157
+ """
2158
+ assert 'reference' not in kwargs
2159
+ kwargs ['reference' ] = reference
2160
+ return self .btest (filename , * args , ** kwargs )
2161
+
2144
2162
def btest_exit (self , filename , assert_returncode = 0 , * args , ** kwargs ):
2145
- """Special case of btest that reports its result solely via exiting
2163
+ """Special case of ` btest` that reports its result solely via exiting
2146
2164
with a given result code.
2147
2165
2148
2166
In this case we set EXIT_RUNTIME and we don't need to provide the
@@ -2167,15 +2185,11 @@ def btest(self, filename, expected=None, reference=None,
2167
2185
args = []
2168
2186
original_args = args
2169
2187
args = args .copy ()
2170
- if not os .path .exists (filename ):
2171
- fullname = test_file ('browser' , filename )
2172
- if not os .path .exists (fullname ):
2173
- fullname = test_file (filename )
2174
- filename = fullname
2188
+ filename = find_browser_test_file (filename )
2175
2189
if reference :
2176
- self . reference = reference
2190
+ reference = find_browser_test_file ( reference )
2177
2191
expected = [str (i ) for i in range (0 , reference_slack + 1 )]
2178
- self .reftest ( test_file ( reference ) , manually_trigger = manually_trigger_reftest )
2192
+ self .make_reftest ( reference , manually_trigger = manually_trigger_reftest )
2179
2193
if not manual_reference :
2180
2194
args += ['--pre-js' , 'reftest.js' , '-sGL_TESTING' ]
2181
2195
else :
0 commit comments