]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-95853: Address wasm build and test issues (GH-95985)
authorChristian Heimes <christian@python.org>
Mon, 15 Aug 2022 05:41:10 +0000 (07:41 +0200)
committerGitHub <noreply@github.com>
Mon, 15 Aug 2022 05:41:10 +0000 (07:41 +0200)
Lib/test/test_decimal.py
Modules/pyexpat.c
Tools/wasm/wasm_build.py

index f7a47c86a3fe88a4bc33c017a0c7ac76080673d4..7c5964e3d5535d84759ec360167f1018e80d171d 100644 (file)
@@ -37,7 +37,7 @@ from test.support import (run_unittest, run_doctest, is_resource_enabled,
                           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 @@ class CWhitebox(unittest.TestCase):
     # 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.")
index 678347331ef4dde54eef674c23b30d5ae3b192bd..165cb0effae2e490b2f349f1768aeb0cae796b32 100644 (file)
@@ -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;
 
index e7a1f4a6007182f664d80e3b1ba4bbc5f5217d71..df90f01a27b699d794b5033b8363f1268c7e6a25 100755 (executable)
@@ -191,7 +191,11 @@ EMSCRIPTEN = Platform(
     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 @@ class BuildProfile:
         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]):