mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
bpo-40280: Skip socket, fork, subprocess tests on Emscripten (GH-31986)
- Add requires_fork and requires_subprocess to more tests - Skip extension import tests if dlopen is not available - Don't assume that _testcapi is a shared extension - Skip a lot of socket tests that don't work on Emscripten - Skip mmap tests, mmap emulation is incomplete - venv does not work yet - Cannot get libc from executable The "entire" test suite is now passing on Emscripten with EMSDK from git head (91 suites are skipped).
This commit is contained in:
parent
a25a985535
commit
deeaac49e2
52 changed files with 238 additions and 23 deletions
|
@ -42,6 +42,7 @@ __all__ = [
|
|||
"requires_IEEE_754", "requires_zlib",
|
||||
"has_fork_support", "requires_fork",
|
||||
"has_subprocess_support", "requires_subprocess",
|
||||
"has_socket_support", "requires_working_socket",
|
||||
"anticipate_failure", "load_package_tests", "detect_api_mismatch",
|
||||
"check__all__", "skip_if_buggy_ucrt_strfptime",
|
||||
"check_disallow_instantiation", "check_sanitizer", "skip_if_sanitizer",
|
||||
|
@ -520,6 +521,21 @@ def requires_subprocess():
|
|||
"""Used for subprocess, os.spawn calls, fd inheritance"""
|
||||
return unittest.skipUnless(has_subprocess_support, "requires subprocess support")
|
||||
|
||||
# Emscripten's socket emulation has limitation. WASI doesn't have sockets yet.
|
||||
has_socket_support = not is_emscripten and not is_wasi
|
||||
|
||||
def requires_working_socket(*, module=False):
|
||||
"""Skip tests or modules that require working sockets
|
||||
|
||||
Can be used as a function/class decorator or to skip an entire module.
|
||||
"""
|
||||
msg = "requires socket support"
|
||||
if module:
|
||||
if not has_socket_support:
|
||||
raise unittest.SkipTest(msg)
|
||||
else:
|
||||
return unittest.skipUnless(has_socket_support, msg)
|
||||
|
||||
# Does strftime() support glibc extension like '%4Y'?
|
||||
has_strftime_extensions = False
|
||||
if sys.platform != "win32":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue