Skip to content

Commit

Permalink
[wasm64] Run all SDL browser64 tests
Browse files Browse the repository at this point in the history
Split out from emscripten-core#20516
  • Loading branch information
sbc100 committed Nov 1, 2023
1 parent c188a2c commit 8608ae5
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 40 deletions.
24 changes: 1 addition & 23 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -777,33 +777,10 @@ jobs:
- run-tests-chrome:
title: "browser64"
test_targets: "
browser64.test_sdl_swsurface
browser64.test_sdl_surface_lock_opts
browser64.test_sdl_canvas
browser64.test_sdl_canvas_proxy
browser64.test_sdl_canvas_alpha
browser64.test_canvas_focus
browser64.test_sdl_text
browser64.test_sdl_mouse
browser64.test_sdl_mouse_offsets
browser64.test_sdl_joystick_1
browser64.test_sdl_joystick_2
browser64.test_idbstore
browser64.test_idbstore_sync_asyncify
browser64.test_idbstore_sync_jspi
browser64.test_sdl_pumpevents
browser64.test_sdl_canvas_size
browser64.test_sdl_gl_read
browser64.test_sdl_gl_mapbuffers
browser64.test_sdl_ogl
browser64.test_sdl_ogl_defaultmatrixmode
browser64.test_sdl_ogl_p
browser64.test_sdl_ogl_proc_alias
browser64.test_sdl_fog_simple
browser64.test_sdl_fog_negative
browser64.test_sdl_fog_density
browser64.test_sdl_fog_exp2
browser64.test_sdl_fog_linear
browser64.test_egl
browser64.test_egl_width_height
browser64.test_egl_createcontext_error
Expand All @@ -824,6 +801,7 @@ jobs:
browser64.test_wget_*
browser64.test_emscripten_async_wget_*
browser64.test_wasm_worker_*
browser64.test_sdl_*
"
test-browser-firefox:
executor: bionic
Expand Down
11 changes: 11 additions & 0 deletions emscripten.py
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,8 @@ def create_pointer_conversion_wrappers(metadata):
'emscripten_builtin_malloc': 'pp',
'malloc': 'pp',
'memalign': 'ppp',
'memcmp': '_ppp',
'memcpy': 'pppp',
'__getTypeName': 'pp',
'setThrew': '_p',
'free': '_p',
Expand All @@ -917,6 +919,10 @@ def create_pointer_conversion_wrappers(metadata):
'__cxa_increment_exception_refcount': '_p',
'__cxa_decrement_exception_refcount': '_p',
'_wasmfs_write_file': '_ppp',
'_wasmfs_mknod': '_p__',
'_wasmfs_get_cwd': 'p_',
'_wasmfs_identify': '_p',
'_wasmfs_read_file': 'pp',
'__dl_seterr': '_pp',
'_emscripten_run_on_main_thread_js': '___p_',
'_emscripten_proxy_execute_task_queue': '_p',
Expand All @@ -933,6 +939,11 @@ def create_pointer_conversion_wrappers(metadata):
'asyncify_start_rewind': '_p',
'asyncify_start_unwind': '_p',
'__get_exception_message': '_ppp',
'stbi_image_free': 'vp',
'stbi_load': 'ppppp_',
'stbi_load_from_memory': 'pp_ppp_',
'emscripten_proxy_finish': '_p',
'emscripten_proxy_execute_queue': '_p',
}

for function in settings.SIGNATURE_CONVERSIONS:
Expand Down
10 changes: 5 additions & 5 deletions src/library_browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -716,11 +716,11 @@ var LibraryBrowser = {
new Uint8Array(data.object.contents), true, true,
() => {
{{{ runtimeKeepalivePop() }}}
if (onload) {{{ makeDynCall('vi', 'onload') }}}(file);
if (onload) {{{ makeDynCall('vp', 'onload') }}}(file);
},
() => {
{{{ runtimeKeepalivePop() }}}
if (onerror) {{{ makeDynCall('vi', 'onerror') }}}(file);
if (onerror) {{{ makeDynCall('vp', 'onerror') }}}(file);
},
true // don'tCreateFile - it's already there
);
Expand All @@ -743,11 +743,11 @@ var LibraryBrowser = {
true, true,
() => {
{{{ runtimeKeepalivePop() }}}
if (onload) {{{ makeDynCall('vii', 'onload') }}}(arg, cname);
if (onload) {{{ makeDynCall('vpp', 'onload') }}}(arg, cname);
},
() => {
{{{ runtimeKeepalivePop() }}}
if (onerror) {{{ makeDynCall('vi', 'onerror') }}}(arg);
if (onerror) {{{ makeDynCall('vp', 'onerror') }}}(arg);
},
true // don'tCreateFile - it's already there
);
Expand Down Expand Up @@ -1224,7 +1224,7 @@ var LibraryBrowser = {
{{{ runtimeKeepalivePush() }}}
callbackId = info.callbacks.length;
info.callbacks.push({
func: {{{ makeDynCall('viii', 'callback') }}},
func: {{{ makeDynCall('vpip', 'callback') }}},
arg
});
info.awaited++;
Expand Down
27 changes: 17 additions & 10 deletions test/test_browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -774,25 +774,29 @@ def test_sdl_surface_lock_opts(self):
# Test Emscripten-specific extensions to optimize SDL_LockSurface and SDL_UnlockSurface.
self.btest('hello_world_sdl.cpp', reference='htmltest.png', args=['-DTEST_SDL_LOCK_OPTS', '-lSDL', '-lGL'])

@parameterized({
'': ([],),
'meminit_file': (['--memory-init-file=1', '-sWASM=0'],),
})
@also_with_wasmfs
def test_sdl_image(self):
def test_sdl_image(self, args):
# load an image file, get pixel data. Also O2 coverage for --preload-file, and memory-init
shutil.copyfile(test_file('screenshot.jpg'), 'screenshot.jpg')
src = test_file('browser/test_sdl_image.c')
if '-sWASM=0' in args:
self.require_wasm2js()

for args in [[], ['--memory-init-file=1', '-sWASM=0']]:
for dest, dirname, basename in [('screenshot.jpg', '/', 'screenshot.jpg'),
('screenshot.jpg@/assets/screenshot.jpg', '/assets', 'screenshot.jpg')]:
self.btest_exit(src, args=args + [
'-O2', '-lSDL', '-lGL',
'--preload-file', dest, '-DSCREENSHOT_DIRNAME="' + dirname + '"', '-DSCREENSHOT_BASENAME="' + basename + '"', '--use-preload-plugins'
])
for dest, dirname, basename in [('screenshot.jpg', '/', 'screenshot.jpg'),
('screenshot.jpg@/assets/screenshot.jpg', '/assets', 'screenshot.jpg')]:
self.btest_exit(src, args=args + [
'-O2', '-lSDL', '-lGL',
'--preload-file', dest, '-DSCREENSHOT_DIRNAME="' + dirname + '"', '-DSCREENSHOT_BASENAME="' + basename + '"', '--use-preload-plugins'
])

@also_with_wasmfs
def test_sdl_image_jpeg(self):
shutil.copyfile(test_file('screenshot.jpg'), 'screenshot.jpeg')
src = test_file('browser/test_sdl_image.c')
self.btest_exit(src, args=[
self.btest_exit('test_sdl_image.c', args=[
'--preload-file', 'screenshot.jpeg',
'-DSCREENSHOT_DIRNAME="/"', '-DSCREENSHOT_BASENAME="screenshot.jpeg"', '--use-preload-plugins',
'-lSDL', '-lGL',
Expand Down Expand Up @@ -1992,10 +1996,12 @@ def test_glgetattachedshaders(self):
def test_glframebufferattachmentinfo(self):
self.btest('glframebufferattachmentinfo.c', '1', args=['-lGLESv2', '-lEGL'])

@no_wasm64('TODO: LEGACY_GL_EMULATION + wasm64')
@requires_graphics_hardware
def test_sdl_glshader(self):
self.btest('test_sdl_glshader.c', reference='browser/test_sdl_glshader.png', args=['-O2', '--closure=1', '-sLEGACY_GL_EMULATION', '-lGL', '-lSDL'])

@no_wasm64('TODO: LEGACY_GL_EMULATION + wasm64')
@requires_graphics_hardware
def test_sdl_glshader2(self):
self.btest_exit('test_sdl_glshader2.c', args=['-sLEGACY_GL_EMULATION', '-lGL', '-lSDL'], also_proxied=True)
Expand Down Expand Up @@ -3421,6 +3427,7 @@ def test_async_mainloop(self):
self.btest_exit('async_mainloop.cpp', args=['-O' + str(opts), '-sASYNCIFY'])

@requires_sound_hardware
@no_wasm64('https://github.com/WebAssembly/binaryen/issues/6073')
def test_sdl_audio_beep_sleep(self):
self.btest_exit('test_sdl_audio_beep_sleep.cpp', args=['-Os', '-sASSERTIONS', '-sDISABLE_EXCEPTION_CATCHING=0', '-profiling', '-sSAFE_HEAP', '-lSDL', '-sASYNCIFY'], timeout=90)

Expand Down
2 changes: 0 additions & 2 deletions tools/ports/regal.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,6 @@ def create(final):
'-I' + source_path_regal,
'-I' + source_path_lookup3,
'-I' + source_path_boost,
'-Wall',
'-Werror',
'-Wno-deprecated-register',
'-Wno-unused-parameter'
]
Expand Down

0 comments on commit 8608ae5

Please sign in to comment.