@@ -40,7 +40,12 @@ def sendheaders(s, extra=None, length=None):
40
40
s .send_header ("Content-Length" , str (length ))
41
41
s .send_header ("Access-Control-Allow-Origin" , "http://localhost:%s" % port )
42
42
s .send_header ('Cross-Origin-Resource-Policy' , 'cross-origin' )
43
- s .send_header ('Cache-Control' , 'no-cache, no-store, must-revalidate' )
43
+
44
+ s .send_header ('Cache-Control' , 'no-cache, no-store, must-revalidate, private, max-age=0' )
45
+ s .send_header ('Expires' , '0' )
46
+ s .send_header ('Pragma' , 'no-cache' )
47
+ s .send_header ('Vary' , '*' ) # Safari insists on caching if this header is not present in addition to the above
48
+
44
49
s .send_header ("Access-Control-Expose-Headers" , "Content-Length, Accept-Ranges" )
45
50
s .send_header ("Content-type" , "application/octet-stream" )
46
51
if support_byte_ranges :
@@ -2799,6 +2804,7 @@ def test_webgl2_pbo(self):
2799
2804
self .btest_exit ('webgl2_pbo.c' , cflags = ['-sMAX_WEBGL_VERSION=2' , '-lGL' ])
2800
2805
2801
2806
@no_firefox ('fails on CI likely due to GPU drivers there' )
2807
+ @no_safari ('TODO: Fails with report_result?5' ) # Safari 17.6 (17618.3.11.11.7, 17618)
2802
2808
@requires_graphics_hardware
2803
2809
def test_webgl2_sokol_mipmap (self ):
2804
2810
self .reftest ('third_party/sokol/mipmap-emsc.c' , 'third_party/sokol/mipmap-emsc.png' ,
@@ -2957,6 +2963,7 @@ def test_sdl2_image_jpeg(self):
2957
2963
@also_with_wasmfs
2958
2964
@requires_graphics_hardware
2959
2965
@with_all_sjlj
2966
+ @no_safari ('Test enables Wasm exceptions, so will not run in Safari 17.6 (17618.3.11.11.7, 17618)' ) # Safari 17.6 (17618.3.11.11.7, 17618)
2960
2967
def test_sdl2_image_formats (self ):
2961
2968
shutil .copy (test_file ('screenshot.png' ), '.' )
2962
2969
shutil .copy (test_file ('screenshot.jpg' ), '.' )
@@ -3358,7 +3365,7 @@ def test_async_returnvalue(self, args):
3358
3365
create_file ('filey.txt' , 'sync_tunnel\n sync_tunnel_bool\n ' )
3359
3366
self .btest ('test_async_returnvalue.c' , '0' , cflags = ['-sASSERTIONS' , '-sASYNCIFY' , '-sASYNCIFY_IGNORE_INDIRECT' , '--js-library' , test_file ('browser/test_async_returnvalue.js' )] + args )
3360
3367
3361
- @no_safari ('TODO: Fails in Safari Version 17.6 (17618.3.11.11.7, 17618)' )
3368
+ @no_safari ('TODO: Never reports a result, so times out' ) # Safari 17.6 (17618.3.11.11.7, 17618)
3362
3369
def test_async_bad_list (self ):
3363
3370
self .btest ('test_async_bad_list.c' , '0' , cflags = ['-sASYNCIFY' , '-sASYNCIFY_ONLY=waka' , '--profiling' ])
3364
3371
@@ -3411,6 +3418,7 @@ def test_modularize(self, args, code, opts):
3411
3418
self .run_browser ('a.html' , '/report_result?0' )
3412
3419
3413
3420
@no_firefox ('source phase imports not implemented yet in firefox' )
3421
+ @no_safari ('croaks on line "import source wasmModule from \' ./out.wasm\' ;"' ) # Safari 17.6 (17618.3.11.11.7, 17618)
3414
3422
def test_source_phase_imports (self ):
3415
3423
self .compile_btest ('browser_test_hello_world.c' , ['-sEXPORT_ES6' , '-sSOURCE_PHASE_IMPORTS' , '-Wno-experimental' , '-o' , 'out.mjs' ])
3416
3424
create_file ('a.html' , '''
@@ -3797,6 +3805,7 @@ def test_pthread_gcc_64bit_atomic_fetch_and_op(self):
3797
3805
3798
3806
# Test the old GCC atomic __sync_op_and_fetch builtin operations.
3799
3807
@also_with_wasm2js
3808
+ @no_safari ('TODO: browser.test_pthread_gcc_atomic_op_and_fetch_wasm2js fails with "abort:Assertion failed: nand_and_fetch_data == -1"' ) # Safari 17.6 (17618.3.11.11.7, 17618)
3800
3809
def test_pthread_gcc_atomic_op_and_fetch (self ):
3801
3810
self .cflags += ['-Wno-sync-fetch-and-nand-semantics-changed' ]
3802
3811
self .btest_exit ('pthread/test_pthread_gcc_atomic_op_and_fetch.c' , cflags = ['-O3' , '-pthread' , '-sPTHREAD_POOL_SIZE=8' ])
@@ -3894,6 +3903,7 @@ def test_pthread_cleanup(self):
3894
3903
'' : ([],),
3895
3904
'spinlock' : (['-DSPINLOCK_TEST' ],),
3896
3905
})
3906
+ @no_safari ('TODO: browser.test_pthread_mutex and browser.test_pthread_mutex_spinlock both hang Safari' ) # Safari 17.6 (17618.3.11.11.7, 17618)
3897
3907
def test_pthread_mutex (self , args ):
3898
3908
self .btest_exit ('pthread/test_pthread_mutex.c' , cflags = ['-O3' , '-pthread' , '-sPTHREAD_POOL_SIZE=8' ] + args )
3899
3909
@@ -4081,6 +4091,7 @@ def test_pthread_safe_stack(self):
4081
4091
'no_leak' : ['test_pthread_lsan_no_leak' , []],
4082
4092
})
4083
4093
@no_firefox ('https://github.com/emscripten-core/emscripten/issues/15978' )
4094
+ @no_safari ('TODO: browser.test_pthread_lsan_leak fails with /report_result?0' ) # Safari 17.6 (17618.3.11.11.7, 17618)
4084
4095
def test_pthread_lsan (self , name , args ):
4085
4096
self .btest (Path ('pthread' , name + '.cpp' ), expected = '1' , cflags = ['-fsanitize=leak' , '-pthread' , '-sPROXY_TO_PTHREAD' , '--pre-js' , test_file ('pthread' , name + '.js' )] + args )
4086
4097
@@ -4092,6 +4103,7 @@ def test_pthread_lsan(self, name, args):
4092
4103
'leak' : ['test_pthread_lsan_leak' , ['-gsource-map' ]],
4093
4104
'no_leak' : ['test_pthread_lsan_no_leak' , []],
4094
4105
})
4106
+ @no_safari ('TODO: browser.test_pthread_asan_leak fails with /report_result?0' ) # Safari 17.6 (17618.3.11.11.7, 17618)
4095
4107
def test_pthread_asan (self , name , args ):
4096
4108
self .btest (Path ('pthread' , name + '.cpp' ), expected = '1' , cflags = ['-fsanitize=address' , '-pthread' , '-sPROXY_TO_PTHREAD' , '--pre-js' , test_file ('pthread' , name + '.js' )] + args )
4097
4109
@@ -4123,6 +4135,7 @@ def test_pthread_exit_process(self):
4123
4135
args += ['--pre-js' , test_file ('core/pthread/test_pthread_exit_runtime.pre.js' )]
4124
4136
self .btest ('core/pthread/test_pthread_exit_runtime.c' , expected = 'onExit status: 42' , cflags = args )
4125
4137
4138
+ @no_safari ('TODO: Fails with report_result?unexpected: [object ErrorEvent]' ) # Safari 17.6 (17618.3.11.11.7, 17618)
4126
4139
def test_pthread_trap (self ):
4127
4140
create_file ('pre.js' , '''
4128
4141
if (typeof window === 'object' && window) {
@@ -5370,6 +5383,7 @@ def test_wasmfs_fetch_backend_threaded(self, args):
5370
5383
'jspi' : (['-Wno-experimental' , '-sASYNCIFY=2' ],),
5371
5384
'jspi_wasm_bigint' : (['-Wno-experimental' , '-sASYNCIFY=2' , '-sWASM_BIGINT' ],),
5372
5385
})
5386
+ @no_safari ('TODO: Fails with abort:Assertion failed: err == 0' ) # Safari 17.6 (17618.3.11.11.7, 17618)
5373
5387
def test_wasmfs_opfs (self , args ):
5374
5388
if '-sASYNCIFY=2' in args :
5375
5389
self .require_jspi ()
@@ -5379,6 +5393,7 @@ def test_wasmfs_opfs(self, args):
5379
5393
self .btest_exit (test , cflags = args + ['-DWASMFS_RESUME' ])
5380
5394
5381
5395
@no_firefox ('no OPFS support yet' )
5396
+ @no_safari ('TODO: Fails with exception:Did not get expected EIO when unlinking file' ) # Safari 17.6 (17618.3.11.11.7, 17618)
5382
5397
def test_wasmfs_opfs_errors (self ):
5383
5398
test = test_file ('wasmfs/wasmfs_opfs_errors.c' )
5384
5399
postjs = test_file ('wasmfs/wasmfs_opfs_errors_post.js' )
@@ -5453,6 +5468,7 @@ def test_manual_pthread_proxy_hammer(self, args):
5453
5468
def test_assert_failure (self ):
5454
5469
self .btest ('test_assert_failure.c' , 'abort:Assertion failed: false && "this is a test"' )
5455
5470
5471
+ @no_safari ('TODO: Fails with report_result?exception:rejected! / undefined' ) # Safari 17.6 (17618.3.11.11.7, 17618)
5456
5472
def test_pthread_unhandledrejection (self ):
5457
5473
# Check that an unhandled promise rejection is propagated to the main thread
5458
5474
# as an error. This test is failing if it hangs!
0 commit comments