diff options
author | Brett Cannon <brett@python.org> | 2024-01-16 19:36:41 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-16 19:36:41 (GMT) |
commit | 03f78397039760085b8ec07969835c89610bbc6d (patch) | |
tree | 4a7315710fb3ca4fae694d5cb05697e4cfc0b0b8 | |
parent | 3d5df54cdc1e946bd953bc9906da5abf78a48357 (diff) | |
download | cpython-03f78397039760085b8ec07969835c89610bbc6d.zip cpython-03f78397039760085b8ec07969835c89610bbc6d.tar.gz cpython-03f78397039760085b8ec07969835c89610bbc6d.tar.bz2 |
GH-114013: fix setting `HOSTRUNNER` for `Tools/wasm/wasi.py` (GH-114097)
Also fix tests found failing under a pydebug build of WASI thanks to `make test` working due to this change.
-rw-r--r-- | Lib/test/test_isinstance.py | 2 | ||||
-rw-r--r-- | Lib/test/test_richcmp.py | 2 | ||||
-rw-r--r-- | Lib/test/test_typing.py | 2 | ||||
-rw-r--r-- | Lib/test/test_userdict.py | 2 | ||||
-rw-r--r-- | Lib/test/test_userlist.py | 2 | ||||
-rw-r--r-- | Lib/test/test_xml_etree.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Build/2024-01-15-16-58-43.gh-issue-114013.FoSeQf.rst | 4 | ||||
-rw-r--r-- | Tools/wasm/wasi.py | 11 |
8 files changed, 15 insertions, 12 deletions
diff --git a/Lib/test/test_isinstance.py b/Lib/test/test_isinstance.py index 791981b..7f759fb 100644 --- a/Lib/test/test_isinstance.py +++ b/Lib/test/test_isinstance.py @@ -310,7 +310,7 @@ class TestIsInstanceIsSubclass(unittest.TestCase): @property def __bases__(self): return self.__bases__ - with support.infinite_recursion(): + with support.infinite_recursion(25): self.assertRaises(RecursionError, issubclass, X(), int) self.assertRaises(RecursionError, issubclass, int, X()) self.assertRaises(RecursionError, isinstance, 1, X()) diff --git a/Lib/test/test_richcmp.py b/Lib/test/test_richcmp.py index 6fb31c8..5f449cd 100644 --- a/Lib/test/test_richcmp.py +++ b/Lib/test/test_richcmp.py @@ -221,7 +221,7 @@ class MiscTest(unittest.TestCase): self.assertRaises(Exc, func, Bad()) @support.no_tracing - @support.infinite_recursion() + @support.infinite_recursion(25) def test_recursion(self): # Check that comparison for recursive objects fails gracefully from collections import UserList diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 8edab0c..b684af4 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -5684,7 +5684,7 @@ class ForwardRefTests(BaseTestCase): def cmp(o1, o2): return o1 == o2 - with infinite_recursion(): + with infinite_recursion(25): r1 = namespace1() r2 = namespace2() self.assertIsNot(r1, r2) diff --git a/Lib/test/test_userdict.py b/Lib/test/test_userdict.py index 9a03f2d..61e79f5 100644 --- a/Lib/test/test_userdict.py +++ b/Lib/test/test_userdict.py @@ -215,7 +215,7 @@ class UserDictTest(mapping_tests.TestHashMappingProtocol): # Decorate existing test with recursion limit, because # the test is for C structure, but `UserDict` is a Python structure. - test_repr_deep = support.infinite_recursion()( + test_repr_deep = support.infinite_recursion(25)( mapping_tests.TestHashMappingProtocol.test_repr_deep, ) diff --git a/Lib/test/test_userlist.py b/Lib/test/test_userlist.py index 76d2537..312702c 100644 --- a/Lib/test/test_userlist.py +++ b/Lib/test/test_userlist.py @@ -69,7 +69,7 @@ class UserListTest(list_tests.CommonTest): # Decorate existing test with recursion limit, because # the test is for C structure, but `UserList` is a Python structure. - test_repr_deep = support.infinite_recursion()( + test_repr_deep = support.infinite_recursion(25)( list_tests.CommonTest.test_repr_deep, ) diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 80ee064..b9e7937 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -2535,7 +2535,7 @@ class BadElementTest(ElementTestCase, unittest.TestCase): e.extend([ET.Element('bar')]) self.assertRaises(ValueError, e.remove, X('baz')) - @support.infinite_recursion() + @support.infinite_recursion(25) def test_recursive_repr(self): # Issue #25455 e = ET.Element('foo') diff --git a/Misc/NEWS.d/next/Build/2024-01-15-16-58-43.gh-issue-114013.FoSeQf.rst b/Misc/NEWS.d/next/Build/2024-01-15-16-58-43.gh-issue-114013.FoSeQf.rst new file mode 100644 index 0000000..1150502 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2024-01-15-16-58-43.gh-issue-114013.FoSeQf.rst @@ -0,0 +1,4 @@ +Fix ``Tools/wasm/wasi.py`` to not include the path to ``python.wasm`` as +part of ``HOSTRUNNER``. The environment variable is meant to specify how to +run the WASI host only, having ``python.wasm`` and relevant flags appended +to the ``HOSTRUNNER``. This fixes ``make test`` work. diff --git a/Tools/wasm/wasi.py b/Tools/wasm/wasi.py index 34c0e93..36bc70f 100644 --- a/Tools/wasm/wasi.py +++ b/Tools/wasm/wasi.py @@ -233,9 +233,10 @@ def configure_wasi_python(context, working_dir): env=updated_env(env_additions | wasi_sdk_env(context)), quiet=context.quiet) + python_wasm = working_dir / "python.wasm" exec_script = working_dir / "python.sh" with exec_script.open("w", encoding="utf-8") as file: - file.write(f'#!/bin/sh\nexec {host_runner} "$@"\n') + file.write(f'#!/bin/sh\nexec {host_runner} {python_wasm} "$@"\n') exec_script.chmod(0o755) print(f"🏃♀️ Created {exec_script} ... ") sys.stdout.flush() @@ -272,9 +273,7 @@ def main(): # Map the checkout to / to load the stdlib from /Lib. "--dir {HOST_DIR}::{GUEST_DIR} " # Set PYTHONPATH to the sysconfig data. - "--env {ENV_VAR_NAME}={ENV_VAR_VALUE} " - # Path to the WASM binary. - "{PYTHON_WASM}") + "--env {ENV_VAR_NAME}={ENV_VAR_VALUE}") parser = argparse.ArgumentParser() subcommands = parser.add_subparsers(dest="subcommand") @@ -310,8 +309,8 @@ def main(): "$WASI_SDK_PATH or /opt/wasi-sdk") subcommand.add_argument("--host-runner", action="store", default=default_host_runner, dest="host_runner", - help="Command template for running the WebAssembly " - "code (default meant for wasmtime 14 or newer: " + help="Command template for running the WASI host " + "(default designed for wasmtime 14 or newer: " f"`{default_host_runner}`)") context = parser.parse_args() |