Skip to content

[wasm64] Run all SDL browser64 tests #20594

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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',
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

system_libs.get_base_cflags() includes -Werror and build_port already adds this.

-Wall was removed here since it comes after the -Wno-experimental -sMEMORY64=1 flags.. and so it undoes the -Wno-experimental

'-Wno-deprecated-register',
'-Wno-unused-parameter'
]
Expand Down