mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-90473: WASI: skip gethostname tests (GH-93092)
- WASI's ``gethostname()`` is a stub that always fails with OSError ``ENOTSUP`` - skip mailcap ``test`` if subprocess is not available - WASI process_time clock does not work.
This commit is contained in:
parent
88f0d0c1e8
commit
760ec8940a
9 changed files with 30 additions and 0 deletions
|
@ -11,6 +11,9 @@ HOST = "localhost"
|
||||||
HOSTv4 = "127.0.0.1"
|
HOSTv4 = "127.0.0.1"
|
||||||
HOSTv6 = "::1"
|
HOSTv6 = "::1"
|
||||||
|
|
||||||
|
# WASI SDK 15.0 does not provide gethostname, stub raises OSError ENOTSUP.
|
||||||
|
has_gethostname = not support.is_wasi
|
||||||
|
|
||||||
|
|
||||||
def find_unused_port(family=socket.AF_INET, socktype=socket.SOCK_STREAM):
|
def find_unused_port(family=socket.AF_INET, socktype=socket.SOCK_STREAM):
|
||||||
"""Returns an unused port that should be suitable for binding. This is
|
"""Returns an unused port that should be suitable for binding. This is
|
||||||
|
|
|
@ -10,12 +10,17 @@ import io
|
||||||
import tempfile
|
import tempfile
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import os_helper
|
from test.support import os_helper
|
||||||
|
from test.support import socket_helper
|
||||||
import unittest
|
import unittest
|
||||||
import textwrap
|
import textwrap
|
||||||
import mailbox
|
import mailbox
|
||||||
import glob
|
import glob
|
||||||
|
|
||||||
|
|
||||||
|
if not socket_helper.has_gethostname:
|
||||||
|
raise unittest.SkipTest("test requires gethostname()")
|
||||||
|
|
||||||
|
|
||||||
class TestBase:
|
class TestBase:
|
||||||
|
|
||||||
all_mailbox_types = (mailbox.Message, mailbox.MaildirMessage,
|
all_mailbox_types = (mailbox.Message, mailbox.MaildirMessage,
|
||||||
|
|
|
@ -221,6 +221,10 @@ class FindmatchTest(unittest.TestCase):
|
||||||
|
|
||||||
@unittest.skipUnless(os.name == "posix", "Requires 'test' command on system")
|
@unittest.skipUnless(os.name == "posix", "Requires 'test' command on system")
|
||||||
@unittest.skipIf(sys.platform == "vxworks", "'test' command is not supported on VxWorks")
|
@unittest.skipIf(sys.platform == "vxworks", "'test' command is not supported on VxWorks")
|
||||||
|
@unittest.skipUnless(
|
||||||
|
test.support.has_subprocess_support,
|
||||||
|
"'test' command needs process support."
|
||||||
|
)
|
||||||
def test_test(self):
|
def test_test(self):
|
||||||
# findmatch() will automatically check any "test" conditions and skip
|
# findmatch() will automatically check any "test" conditions and skip
|
||||||
# the entry if the check fails.
|
# the entry if the check fails.
|
||||||
|
|
|
@ -10,6 +10,9 @@ import io
|
||||||
smtpd = warnings_helper.import_deprecated('smtpd')
|
smtpd = warnings_helper.import_deprecated('smtpd')
|
||||||
asyncore = warnings_helper.import_deprecated('asyncore')
|
asyncore = warnings_helper.import_deprecated('asyncore')
|
||||||
|
|
||||||
|
if not socket_helper.has_gethostname:
|
||||||
|
raise unittest.SkipTest("test requires gethostname()")
|
||||||
|
|
||||||
|
|
||||||
class DummyServer(smtpd.SMTPServer):
|
class DummyServer(smtpd.SMTPServer):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
|
@ -664,6 +664,7 @@ class TestSupport(unittest.TestCase):
|
||||||
self.assertTrue(support.match_test(test_chdir))
|
self.assertTrue(support.match_test(test_chdir))
|
||||||
|
|
||||||
@unittest.skipIf(support.is_emscripten, "Unstable in Emscripten")
|
@unittest.skipIf(support.is_emscripten, "Unstable in Emscripten")
|
||||||
|
@unittest.skipIf(support.is_wasi, "Unavailable on WASI")
|
||||||
def test_fd_count(self):
|
def test_fd_count(self):
|
||||||
# We cannot test the absolute value of fd_count(): on old Linux
|
# We cannot test the absolute value of fd_count(): on old Linux
|
||||||
# kernel or glibc versions, os.urandom() keeps a FD open on
|
# kernel or glibc versions, os.urandom() keeps a FD open on
|
||||||
|
|
|
@ -489,6 +489,9 @@ class TimeTestCase(unittest.TestCase):
|
||||||
def test_perf_counter(self):
|
def test_perf_counter(self):
|
||||||
time.perf_counter()
|
time.perf_counter()
|
||||||
|
|
||||||
|
@unittest.skipIf(
|
||||||
|
support.is_wasi, "process_time not available on WASI"
|
||||||
|
)
|
||||||
def test_process_time(self):
|
def test_process_time(self):
|
||||||
# process_time() should not include time spend during a sleep
|
# process_time() should not include time spend during a sleep
|
||||||
start = time.process_time()
|
start = time.process_time()
|
||||||
|
|
|
@ -10,6 +10,7 @@ import unittest
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import os_helper
|
from test.support import os_helper
|
||||||
|
from test.support import socket_helper
|
||||||
from test.support import warnings_helper
|
from test.support import warnings_helper
|
||||||
import os
|
import os
|
||||||
try:
|
try:
|
||||||
|
@ -24,6 +25,10 @@ from base64 import b64encode
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
||||||
|
if not socket_helper.has_gethostname:
|
||||||
|
raise unittest.SkipTest("test requires gethostname()")
|
||||||
|
|
||||||
|
|
||||||
def hexescape(char):
|
def hexescape(char):
|
||||||
"""Escape char as RFC 2396 specifies"""
|
"""Escape char as RFC 2396 specifies"""
|
||||||
hex_repr = hex(ord(char))[2:].upper()
|
hex_repr = hex(ord(char))[2:].upper()
|
||||||
|
|
|
@ -4,6 +4,11 @@ import socket
|
||||||
import tempfile
|
import tempfile
|
||||||
import urllib.response
|
import urllib.response
|
||||||
import unittest
|
import unittest
|
||||||
|
from test import support
|
||||||
|
|
||||||
|
if support.is_wasi:
|
||||||
|
raise unittest.SkipTest("Cannot create socket on WASI")
|
||||||
|
|
||||||
|
|
||||||
class TestResponse(unittest.TestCase):
|
class TestResponse(unittest.TestCase):
|
||||||
|
|
||||||
|
|
|
@ -239,6 +239,7 @@ are:
|
||||||
yet. A future version of WASI may provide a limited ``set_permissions`` API.
|
yet. A future version of WASI may provide a limited ``set_permissions`` API.
|
||||||
- File locking (``fcntl``) is not available.
|
- File locking (``fcntl``) is not available.
|
||||||
- ``os.pipe()``, ``os.mkfifo()``, and ``os.mknod()`` are not supported.
|
- ``os.pipe()``, ``os.mkfifo()``, and ``os.mknod()`` are not supported.
|
||||||
|
- ``process_time`` clock does not work.
|
||||||
|
|
||||||
|
|
||||||
# Detect WebAssembly builds
|
# Detect WebAssembly builds
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue