diff --git a/tests/other/metadce/test_metadce_cxx_except_wasm.exports b/tests/other/metadce/test_metadce_cxx_except_wasm.exports new file mode 100644 index 0000000000000..d2df7ba7b0784 --- /dev/null +++ b/tests/other/metadce/test_metadce_cxx_except_wasm.exports @@ -0,0 +1,15 @@ +__errno_location +__indirect_function_table +__wasm_call_ctors +dynCall_iiiiiijj +dynCall_iiiiij +dynCall_iiiiijj +dynCall_jiji +dynCall_viijii +free +main +memory +setThrew +stackAlloc +stackRestore +stackSave diff --git a/tests/other/metadce/test_metadce_cxx_except_wasm.imports b/tests/other/metadce/test_metadce_cxx_except_wasm.imports new file mode 100644 index 0000000000000..3cfc4e50e30cb --- /dev/null +++ b/tests/other/metadce/test_metadce_cxx_except_wasm.imports @@ -0,0 +1,11 @@ +env.abort +env.emscripten_memcpy_big +env.emscripten_resize_heap +env.setTempRet0 +env.strftime_l +wasi_snapshot_preview1.environ_get +wasi_snapshot_preview1.environ_sizes_get +wasi_snapshot_preview1.fd_close +wasi_snapshot_preview1.fd_read +wasi_snapshot_preview1.fd_seek +wasi_snapshot_preview1.fd_write diff --git a/tests/other/metadce/test_metadce_cxx_except_wasm.jssize b/tests/other/metadce/test_metadce_cxx_except_wasm.jssize new file mode 100644 index 0000000000000..3c057aa97071f --- /dev/null +++ b/tests/other/metadce/test_metadce_cxx_except_wasm.jssize @@ -0,0 +1 @@ +26538 diff --git a/tests/other/metadce/test_metadce_cxx_except_wasm.sent b/tests/other/metadce/test_metadce_cxx_except_wasm.sent new file mode 100644 index 0000000000000..25e3f929f2fb9 --- /dev/null +++ b/tests/other/metadce/test_metadce_cxx_except_wasm.sent @@ -0,0 +1,11 @@ +abort +emscripten_memcpy_big +emscripten_resize_heap +environ_get +environ_sizes_get +fd_close +fd_read +fd_seek +fd_write +setTempRet0 +strftime_l diff --git a/tests/other/metadce/test_metadce_cxx_except_wasm.size b/tests/other/metadce/test_metadce_cxx_except_wasm.size new file mode 100644 index 0000000000000..246cf0c71afbb --- /dev/null +++ b/tests/other/metadce/test_metadce_cxx_except_wasm.size @@ -0,0 +1 @@ +135339 diff --git a/tests/test_other.py b/tests/test_other.py index fbd03a24cd115..4951621b5e90b 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -7341,6 +7341,8 @@ def test_metadce_minimal_pthreads(self): # exceptions does not pull in demangling by default, which increases code size 'mangle': (['-O2', '-fexceptions', '-sDEMANGLE_SUPPORT'], [], ['waka']), # noqa + # Wasm EH's code size increase is smaller than that of Emscripten EH + 'except_wasm': (['-O2', '-fwasm-exceptions'], [], ['waka']), # noqa # eval_ctors 1 can partially optimize, but runs into getenv() for locale # code. mode 2 ignores those and fully optimizes out the ctors 'ctors1': (['-O2', '-sEVAL_CTORS'], [], ['waka']), # noqa @@ -7651,7 +7653,8 @@ def test_lto(self): @parameterized({ 'noexcept': [], - 'except': ['-sDISABLE_EXCEPTION_CATCHING=0'] + 'except': ['-sDISABLE_EXCEPTION_CATCHING=0'], + 'except_wasm': ['-fwasm-exceptions'] }) def test_lto_libcxx(self, *args): self.run_process([EMXX, test_file('hello_libcxx.cpp'), '-flto'] + list(args))