Commit e9af901a authored by Jason Madden's avatar Jason Madden

Make libuv the default backend on Windows. Fixes #1163.

parent e8b34c4e
......@@ -19,6 +19,8 @@ Platform Support
- Travis CI tests on Python 3.7.0b3.
- Windows now defaults to the libuv backend. See :issue:`1163`.
Bug Fixes
---------
......
......@@ -11,14 +11,8 @@ environment:
# a later point release.
- PYTHON: "C:\\pypy2-v5.10.0-win32"
PYTHON_ID: "pypy"
PYTHON_EXE: pypy
PYTHON_VERSION: "2.7.x"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python36-x64"
PYTHON_VERSION: "3.6.x" # currently 3.6.0
- PYTHON: "C:\\Python27-x64"
PYTHON_VERSION: "2.7.x" # currently 2.7.13
PYTHON_ARCH: "64"
PYTHON_EXE: python
......@@ -26,12 +20,12 @@ environment:
PYTHON_VERSION: "3.6.x" # currently 3.6.0
PYTHON_ARCH: "64"
PYTHON_EXE: python
GEVENT_LOOP: libuv
- PYTHON: "C:\\Python27-x64"
PYTHON_VERSION: "2.7.x" # currently 2.7.13
PYTHON_ARCH: "64"
PYTHON_EXE: python
- PYTHON: "C:\\pypy2-v5.10.0-win32"
PYTHON_ID: "pypy"
PYTHON_EXE: pypy
PYTHON_VERSION: "2.7.x"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python34-x64"
PYTHON_VERSION: "3.4.x" # currently 3.4.4
......
......@@ -16,6 +16,7 @@ import sys
import textwrap
from gevent._compat import string_types
from gevent._compat import WIN
__all__ = [
'config',
......@@ -353,12 +354,19 @@ class Loop(ImportableSetting, Setting):
desc = """\
The kind of the loop we use.
On Windows, this defaults to libuv, while on
other platforms it defaults to libev.
"""
default = [
'libev-cext',
'libev-cffi',
'libuv-cffi',
] if not WIN else [
'libuv-cffi',
'libev-cext',
'libev-cffi',
]
shortname_map = {
......
......@@ -301,17 +301,12 @@ if LIBUV:
if WIN and PYPY:
# From PyPy2-v5.9.0, using its version of tests,
if WIN and PY2:
# From PyPy2-v5.9.0 and CPython 2.7.14, using its version of tests,
# which do work on darwin (and possibly linux?)
# I can't produce them in a local VM running Windows 10
# and the same pypy version.
disabled_tests += [
# appears to timeout?
'test_threading.ThreadTests.test_finalize_with_trace',
'test_asyncore.DispatcherWithSendTests_UsePoll.test_send',
'test_asyncore.DispatcherWithSendTests.test_send',
# These, which use asyncore, fail with
# 'NoneType is not iterable' on 'conn, addr = self.accept()'
# That returns None when the underlying socket raises
......@@ -358,13 +353,6 @@ if LIBUV:
# This one times out, but it's still a non-blocking socket
'test_ftplib.TestFTPClass.test_makeport',
# More unexpected timeouts
'test_smtplib.TooLongLineTests.testLineTooLong',
'test_smtplib.GeneralTests.testTimeoutValue',
'test_ssl.ContextTests.test__https_verify_envvar',
'test_subprocess.ProcessTestCase.test_check_output',
'test_telnetlib.ReadTests.test_read_eager_A',
# A timeout, possibly because of the way we handle interrupts?
'test_socketserver.SocketServerTest.test_InterruptedServerSelectCall',
'test_socketserver.SocketServerTest.test_InterruptServerSelectCall',
......@@ -393,36 +381,64 @@ if LIBUV:
'test_httpservers.BaseHTTPServerTestCase.test_version_digits',
'test_httpservers.BaseHTTPServerTestCase.test_version_invalid',
'test_httpservers.BaseHTTPServerTestCase.test_version_none',
'test_httpservers.SimpleHTTPServerTestCase.test_get',
'test_httpservers.SimpleHTTPServerTestCase.test_head',
'test_httpservers.SimpleHTTPServerTestCase.test_invalid_requests',
'test_httpservers.SimpleHTTPServerTestCase.test_path_without_leading_slash',
'test_httpservers.CGIHTTPServerTestCase.test_invaliduri',
'test_httpservers.CGIHTTPServerTestCase.test_issue19435',
# But on Windows, our gc fix for that doesn't work anyway
# so we have to disable it.
'test_urllib2_localnet.TestUrlopen.test_https_with_cafile',
# Sometimes raises LoopExit on CPython
'test_socket.BufferIOTest.testRecvFromIntoArray',
# Unexpected timeouts sometimes
'test_smtplib.TooLongLineTests.testLineTooLong',
'test_smtplib.GeneralTests.testTimeoutValue',
# These tests hang. see above.
'test_threading.ThreadJoinOnShutdown.test_1_join_on_shutdown',
'test_threading.ThreadingExceptionTests.test_print_exception',
# Our copy of these in test__subprocess.py also hangs.
# Anything that uses Popen.communicate or directly uses
# Popen.stdXXX.read hangs. It's not clear why.
'test_subprocess.ProcessTestCase.test_communicate',
'test_subprocess.ProcessTestCase.test_cwd',
'test_subprocess.ProcessTestCase.test_env',
'test_subprocess.ProcessTestCase.test_stderr_pipe',
'test_subprocess.ProcessTestCase.test_stdout_pipe',
'test_subprocess.ProcessTestCase.test_stdout_stderr_pipe',
'test_subprocess.ProcessTestCase.test_stderr_redirect_with_no_stdout_redirect',
'test_subprocess.ProcessTestCase.test_stdout_filedes_of_stdout',
'test_subprocess.ProcessTestcase.test_stdout_none',
'test_subprocess.ProcessTestcase.test_universal_newlines',
'test_subprocess.ProcessTestcase.test_writes_before_communicate',
'test_subprocess.Win32ProcessTestCase._kill_process',
'test_subprocess.Win32ProcessTestCase._kill_dead_process',
'test_subprocess.Win32ProcessTestCase.test_shell_sequence',
'test_subprocess.Win32ProcessTestCase.test_shell_string',
'test_subprocess.CommandsWithSpaces.with_spaces',
]
if PYPY:
disabled_tests += [
# appears to timeout?
'test_threading.ThreadTests.test_finalize_with_trace',
'test_asyncore.DispatcherWithSendTests_UsePoll.test_send',
'test_asyncore.DispatcherWithSendTests.test_send',
# More unexpected timeouts
'test_ssl.ContextTests.test__https_verify_envvar',
'test_subprocess.ProcessTestCase.test_check_output',
'test_telnetlib.ReadTests.test_read_eager_A',
# But on Windows, our gc fix for that doesn't work anyway
# so we have to disable it.
'test_urllib2_localnet.TestUrlopen.test_https_with_cafile',
# These tests hang. see above.
'test_threading.ThreadJoinOnShutdown.test_1_join_on_shutdown',
'test_threading.ThreadingExceptionTests.test_print_exception',
# Our copy of these in test__subprocess.py also hangs.
# Anything that uses Popen.communicate or directly uses
# Popen.stdXXX.read hangs. It's not clear why.
'test_subprocess.ProcessTestCase.test_communicate',
'test_subprocess.ProcessTestCase.test_cwd',
'test_subprocess.ProcessTestCase.test_env',
'test_subprocess.ProcessTestCase.test_stderr_pipe',
'test_subprocess.ProcessTestCase.test_stdout_pipe',
'test_subprocess.ProcessTestCase.test_stdout_stderr_pipe',
'test_subprocess.ProcessTestCase.test_stderr_redirect_with_no_stdout_redirect',
'test_subprocess.ProcessTestCase.test_stdout_filedes_of_stdout',
'test_subprocess.ProcessTestcase.test_stdout_none',
'test_subprocess.ProcessTestcase.test_universal_newlines',
'test_subprocess.ProcessTestcase.test_writes_before_communicate',
'test_subprocess.Win32ProcessTestCase._kill_process',
'test_subprocess.Win32ProcessTestCase._kill_dead_process',
'test_subprocess.Win32ProcessTestCase.test_shell_sequence',
'test_subprocess.Win32ProcessTestCase.test_shell_string',
'test_subprocess.CommandsWithSpaces.with_spaces',
]
if WIN:
disabled_tests += [
......@@ -831,7 +847,9 @@ if PY34:
# ld.so: dl-open.c: 231: dl_open_worker: Assertion
# `_dl_debug_initialize (0, args->nsid)->r_state ==
# RT_CONSISTENT' failed!" and fail.
'test_threading.ThreadTests.test_is_alive_after_fork',
disabled_tests += [
'test_threading.ThreadTests.test_is_alive_after_fork',
]
if TRAVIS:
disabled_tests += [
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment