@@ -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,11 +2021,12 @@ 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 )
2017
- shutil .copyfile (expected , self .in_dir (basename ))
2028
+ if os .path .abspath (os .path .dirname (expected )) != self .get_dir ():
2029
+ shutil .copyfile (expected , self .in_dir (basename ))
2018
2030
reporting = read_file (test_file ('browser_reporting.js' ))
2019
2031
create_file ('reftest.js' , '''
2020
2032
function doReftest() {
@@ -2141,8 +2153,15 @@ def compile_btest(self, filename, args, reporting=Reporting.FULL):
2141
2153
filename = test_file (filename )
2142
2154
self .run_process ([compiler_for (filename ), filename ] + self .get_emcc_args () + args )
2143
2155
2156
+ def reftest (self , filename , reference , * args , ** kwargs ):
2157
+ """Special case of `btest` that uses reference image
2158
+ """
2159
+ assert 'reference' not in kwargs
2160
+ kwargs ['reference' ] = reference
2161
+ return self .btest (filename , * args , ** kwargs )
2162
+
2144
2163
def btest_exit (self , filename , assert_returncode = 0 , * args , ** kwargs ):
2145
- """Special case of btest that reports its result solely via exiting
2164
+ """Special case of ` btest` that reports its result solely via exiting
2146
2165
with a given result code.
2147
2166
2148
2167
In this case we set EXIT_RUNTIME and we don't need to provide the
@@ -2167,15 +2186,11 @@ def btest(self, filename, expected=None, reference=None,
2167
2186
args = []
2168
2187
original_args = args
2169
2188
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
2189
+ filename = find_browser_test_file (filename )
2175
2190
if reference :
2176
- self . reference = reference
2191
+ reference = find_browser_test_file ( reference )
2177
2192
expected = [str (i ) for i in range (0 , reference_slack + 1 )]
2178
- self .reftest ( test_file ( reference ) , manually_trigger = manually_trigger_reftest )
2193
+ self .make_reftest ( reference , manually_trigger = manually_trigger_reftest )
2179
2194
if not manual_reference :
2180
2195
args += ['--pre-js' , 'reftest.js' , '-sGL_TESTING' ]
2181
2196
else :
0 commit comments