summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2024-01-16 19:36:41 (GMT)
committerGitHub <noreply@github.com>2024-01-16 19:36:41 (GMT)
commit03f78397039760085b8ec07969835c89610bbc6d (patch)
tree4a7315710fb3ca4fae694d5cb05697e4cfc0b0b8
parent3d5df54cdc1e946bd953bc9906da5abf78a48357 (diff)
downloadcpython-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.py2
-rw-r--r--Lib/test/test_richcmp.py2
-rw-r--r--Lib/test/test_typing.py2
-rw-r--r--Lib/test/test_userdict.py2
-rw-r--r--Lib/test/test_userlist.py2
-rw-r--r--Lib/test/test_xml_etree.py2
-rw-r--r--Misc/NEWS.d/next/Build/2024-01-15-16-58-43.gh-issue-114013.FoSeQf.rst4
-rw-r--r--Tools/wasm/wasi.py11
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()