mirror of
https://github.com/python/cpython
synced 2024-09-05 08:17:45 +00:00
gh-95853: Address wasm build and test issues (GH-95985)
This commit is contained in:
parent
e8259e047c
commit
4a7f5a55dc
|
@ -37,7 +37,7 @@
|
|||
requires_legacy_unicode_capi, check_sanitizer)
|
||||
from test.support import (TestFailed,
|
||||
run_with_locale, cpython_only,
|
||||
darwin_malloc_err_warning)
|
||||
darwin_malloc_err_warning, is_emscripten)
|
||||
from test.support.import_helper import import_fresh_module
|
||||
from test.support import threading_helper
|
||||
from test.support import warnings_helper
|
||||
|
@ -5605,6 +5605,7 @@ def __abs__(self):
|
|||
# Issue 41540:
|
||||
@unittest.skipIf(sys.platform.startswith("aix"),
|
||||
"AIX: default ulimit: test is flaky because of extreme over-allocation")
|
||||
@unittest.skipIf(is_emscripten, "Test is unstable on Emscripten")
|
||||
@unittest.skipIf(check_sanitizer(address=True, memory=True),
|
||||
"ASAN/MSAN sanitizer defaults to crashing "
|
||||
"instead of returning NULL for malloc failure.")
|
||||
|
|
|
@ -775,7 +775,7 @@ readinst(char *buf, int buf_size, PyObject *meth)
|
|||
Py_ssize_t len;
|
||||
const char *ptr;
|
||||
|
||||
str = PyObject_CallFunction(meth, "n", buf_size);
|
||||
str = PyObject_CallFunction(meth, "i", buf_size);
|
||||
if (str == NULL)
|
||||
goto error;
|
||||
|
||||
|
|
|
@ -191,7 +191,11 @@ def _check_emscripten():
|
|||
config_site=WASMTOOLS / "config.site-wasm32-emscripten",
|
||||
configure_wrapper=EMSCRIPTEN_ROOT / "emconfigure",
|
||||
make_wrapper=EMSCRIPTEN_ROOT / "emmake",
|
||||
environ={"EM_COMPILER_WRAPPER": "ccache"} if HAS_CCACHE else {},
|
||||
environ={
|
||||
# workaround for https://github.com/emscripten-core/emscripten/issues/17635
|
||||
"TZ": "UTC",
|
||||
"EM_COMPILER_WRAPPER": "ccache" if HAS_CCACHE else None,
|
||||
},
|
||||
check=_check_emscripten,
|
||||
)
|
||||
|
||||
|
@ -352,12 +356,15 @@ def getenv(self) -> dict:
|
|||
env.setdefault("MAKEFLAGS", f"-j{os.cpu_count()}")
|
||||
platenv = self.host.platform.getenv(self)
|
||||
for key, value in platenv.items():
|
||||
if isinstance(value, str):
|
||||
value = value.format(
|
||||
if value is None:
|
||||
env.pop(key, None)
|
||||
elif isinstance(value, str):
|
||||
env[key] = value.format(
|
||||
relbuilddir=self.builddir.relative_to(SRCDIR),
|
||||
srcdir=SRCDIR,
|
||||
)
|
||||
env[key] = value
|
||||
else:
|
||||
env[key] = value
|
||||
return env
|
||||
|
||||
def _run_cmd(self, cmd: Iterable[str], args: Iterable[str]):
|
||||
|
|
Loading…
Reference in a new issue