Commit 1f8b3fa2 authored by Jason Madden's avatar Jason Madden Committed by GitHub

Merge pull request #1375 from gevent/issue1373

Update to PyPy 2 7.1
parents 68c765ab 3ec9ce8a
...@@ -7,9 +7,10 @@ ...@@ -7,9 +7,10 @@
1.5.0 (unreleased) 1.5.0 (unreleased)
================== ==================
- Python version updates: gevent is now tested with CPython 2.7.15, - Python version updates: gevent is now tested with CPython 2.7.16,
3.5.6, 3.6.8, and 3.7.2. It is also tested with PyPy2 7.0 and PyPy 3.5.6, 3.6.8, and 3.7.2. It is also tested with PyPy2 7.1 and PyPy 3.6
3.6 7.0. 7.1 (PyPy 7.0 and 7.1 were not capable of running SSL tests on Travis
CI).
- Support for Python 3.4 has been removed, as that version is no - Support for Python 3.4 has been removed, as that version is no
longer supported uptstream. longer supported uptstream.
......
...@@ -8,7 +8,7 @@ CYTHON?=cython ...@@ -8,7 +8,7 @@ CYTHON?=cython
export PATH:=$(BUILD_RUNTIMES)/snakepit:$(TOOLS):$(PATH) export PATH:=$(BUILD_RUNTIMES)/snakepit:$(PATH)
export LC_ALL=C.UTF-8 export LC_ALL=C.UTF-8
export GEVENT_RESOLVER_NAMESERVERS=8.8.8.8 export GEVENT_RESOLVER_NAMESERVERS=8.8.8.8
...@@ -126,19 +126,9 @@ PY27=$(BUILD_RUNTIMES)/snakepit/python2.7.16 ...@@ -126,19 +126,9 @@ PY27=$(BUILD_RUNTIMES)/snakepit/python2.7.16
PY35=$(BUILD_RUNTIMES)/snakepit/python3.5.6 PY35=$(BUILD_RUNTIMES)/snakepit/python3.5.6
PY36=$(BUILD_RUNTIMES)/snakepit/python3.6.8 PY36=$(BUILD_RUNTIMES)/snakepit/python3.6.8
PY37=$(BUILD_RUNTIMES)/snakepit/python3.7.2 PY37=$(BUILD_RUNTIMES)/snakepit/python3.7.2
PYPY=$(BUILD_RUNTIMES)/snakepit/pypy700 PYPY=$(BUILD_RUNTIMES)/snakepit/pypy710
PYPY3=$(BUILD_RUNTIMES)/snakepit/pypy3.6_700 PYPY3=$(BUILD_RUNTIMES)/snakepit/pypy3.6_700
TOOLS=$(BUILD_RUNTIMES)/tools
TOX=$(TOOLS)/tox
TOOL_VIRTUALENV=$(BUILD_RUNTIMES)/virtualenvs/tools
ISORT_VIRTUALENV=$(BUILD_RUNTIMES)/virtualenvs/isort
TOOL_PYTHON=$(TOOL_VIRTUALENV)/bin/python
TOOL_PIP=$(TOOL_VIRTUALENV)/bin/pip
TOOL_INSTALL=$(TOOL_PIP) install --upgrade
$(PY27): $(PY27):
scripts/install.sh 2.7 scripts/install.sh 2.7
...@@ -188,7 +178,7 @@ test-py37: $(PY37) ...@@ -188,7 +178,7 @@ test-py37: $(PY37)
PYTHON=python3.7.2 PATH=$(BUILD_RUNTIMES)/versions/python3.7.2/bin:$(PATH) make develop leaktest cffibackendtest coverage_combine PYTHON=python3.7.2 PATH=$(BUILD_RUNTIMES)/versions/python3.7.2/bin:$(PATH) make develop leaktest cffibackendtest coverage_combine
test-pypy: $(PYPY) test-pypy: $(PYPY)
PYTHON=$(PYPY) PATH=$(BUILD_RUNTIMES)/versions/pypy700/bin:$(PATH) make develop cffibackendtest PYTHON=$(PYPY) PATH=$(BUILD_RUNTIMES)/versions/pypy710/bin:$(PATH) make develop cffibackendtest
test-pypy3: $(PYPY3) test-pypy3: $(PYPY3)
PYTHON=$(PYPY3) PATH=$(BUILD_RUNTIMES)/versions/pypy3.6_700/bin:$(PATH) make develop basictest PYTHON=$(PYPY3) PATH=$(BUILD_RUNTIMES)/versions/pypy3.6_700/bin:$(PATH) make develop basictest
......
...@@ -36,7 +36,7 @@ environment: ...@@ -36,7 +36,7 @@ environment:
PYTHON_EXE: python PYTHON_EXE: python
# 32-bit # 32-bit
- PYTHON: "C:\\pypy2.7-v7.0.0-win32" - PYTHON: "C:\\pypy2.7-v7.1.0-win32"
PYTHON_ID: "pypy" PYTHON_ID: "pypy"
PYTHON_EXE: pypy PYTHON_EXE: pypy
PYTHON_VERSION: "2.7.x" PYTHON_VERSION: "2.7.x"
...@@ -105,10 +105,10 @@ install: ...@@ -105,10 +105,10 @@ install:
New-Item -ItemType directory -Path "$env:PYTMP" | Out-Null; New-Item -ItemType directory -Path "$env:PYTMP" | Out-Null;
} }
if ("${env:PYTHON_ID}" -eq "pypy") { if ("${env:PYTHON_ID}" -eq "pypy") {
if (!(Test-Path "${env:PYTMP}\pypy2-v7.0.0-win32.zip")) { if (!(Test-Path "${env:PYTMP}\pypy2-v7.1.0-win32.zip")) {
(New-Object Net.WebClient).DownloadFile('https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-win32.zip', "${env:PYTMP}\pypy2-v7.0.0-win32.zip"); (New-Object Net.WebClient).DownloadFile('https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.0-win32.zip', "${env:PYTMP}\pypy2-v7.1.0-win32.zip");
} }
7z x -y "${env:PYTMP}\pypy2-v7.0.0-win32.zip" -oC:\ | Out-Null; 7z x -y "${env:PYTMP}\pypy2-v7.1.0-win32.zip" -oC:\ | Out-Null;
& "${env:PYTHON}\pypy.exe" "-mensurepip"; & "${env:PYTHON}\pypy.exe" "-mensurepip";
} }
......
...@@ -98,7 +98,7 @@ for var in "$@"; do ...@@ -98,7 +98,7 @@ for var in "$@"; do
install 3.7.2 python3.7.2 install 3.7.2 python3.7.2
;; ;;
pypy) pypy)
install pypy2.7-7.0.0 pypy700 install pypy2.7-7.1.0 pypy710
;; ;;
pypy3) pypy3)
install pypy3.6-7.0.0 pypy3.6_700 install pypy3.6-7.0.0 pypy3.6_700
......
...@@ -494,13 +494,17 @@ if LIBUV: ...@@ -494,13 +494,17 @@ if LIBUV:
'test_ssl.ThreadedTests.test_handshake_timeout', 'test_ssl.ThreadedTests.test_handshake_timeout',
# These sometimes raise LoopExit, for no apparent reason, # These sometimes raise LoopExit, for no apparent reason,
# mostly but not exclusively on Python 2. # mostly but not exclusively on Python 2. Sometimes (often?)
# this happens in the setUp() method when we attempt to get a client
# connection
'test_socket.BufferIOTest.testRecvFromIntoBytearray', 'test_socket.BufferIOTest.testRecvFromIntoBytearray',
'test_socket.BufferIOTest.testRecvFromIntoArray', 'test_socket.BufferIOTest.testRecvFromIntoArray',
'test_socket.BufferIOTest.testRecvIntoArray', 'test_socket.BufferIOTest.testRecvIntoArray',
'test_socket.BufferIOTest.testRecvIntoMemoryview',
'test_socket.BufferIOTest.testRecvFromIntoEmptyBuffer', 'test_socket.BufferIOTest.testRecvFromIntoEmptyBuffer',
'test_socket.BufferIOTest.testRecvFromIntoMemoryview', 'test_socket.BufferIOTest.testRecvFromIntoMemoryview',
'test_socket.BufferIOTest.testRecvFromIntoSmallBuffer', 'test_socket.BufferIOTest.testRecvFromIntoSmallBuffer',
'test_socket.BufferIOTest.testRecvIntoBytearray',
] ]
if PY3: if PY3:
......
...@@ -260,11 +260,10 @@ if PYPY: ...@@ -260,11 +260,10 @@ if PYPY:
'FLAKY test__example_udp_server.py', 'FLAKY test__example_udp_server.py',
'FLAKY test__example_udp_client.py', 'FLAKY test__example_udp_client.py',
# PyPy 7.0 on Travis with Ubunto Xenial 16.04 # PyPy 7.0 and 7.1 on Travis with Ubunto Xenial 16.04
# can't allocate SSL Context objects, either in Python 2.7 # can't allocate SSL Context objects, either in Python 2.7
# or 3.6. There must be some library incompatibility. # or 3.6. There must be some library incompatibility.
'test_ssl.py', 'test_ssl.py',
] ]
if LIBUV: if LIBUV:
...@@ -296,8 +295,6 @@ if PYPY: ...@@ -296,8 +295,6 @@ if PYPY:
## Unknown; can't reproduce locally on OS X ## Unknown; can't reproduce locally on OS X
'FLAKY test_subprocess.py', # timeouts on one test. 'FLAKY test_subprocess.py', # timeouts on one test.
'FLAKY test_ssl.py',
] ]
......
...@@ -714,7 +714,7 @@ class Test_getnameinfo_fail(TestCase): ...@@ -714,7 +714,7 @@ class Test_getnameinfo_fail(TestCase):
class TestInvalidPort(TestCase): class TestInvalidPort(TestCase):
@flaky.reraises_flaky_race_condition() @flaky.reraises_flaky_race_condition()
def test1(self): def test_overflow_neg_one(self):
# An Appveyor beginning 2019-03-21, the system resolver # An Appveyor beginning 2019-03-21, the system resolver
# sometimes returns ('23.100.69.251', '65535') instead of # sometimes returns ('23.100.69.251', '65535') instead of
# raising an error. That IP address belongs to # raising an error. That IP address belongs to
...@@ -723,17 +723,24 @@ class TestInvalidPort(TestCase): ...@@ -723,17 +723,24 @@ class TestInvalidPort(TestCase):
# Can't reproduce locally, not sure what's happening # Can't reproduce locally, not sure what's happening
self._test('getnameinfo', ('www.gevent.org', -1), 0) self._test('getnameinfo', ('www.gevent.org', -1), 0)
def test2(self): # Beginning with PyPy 2.7 7.1 on Appveyor, we sometimes see this
# return an OverflowError instead of the TypeError about None
@greentest.skipOnLibuvOnPyPyOnWin("Errors dont match")
def test_typeerror_none(self):
self._test('getnameinfo', ('www.gevent.org', None), 0) self._test('getnameinfo', ('www.gevent.org', None), 0)
def test3(self): # Beginning with PyPy 2.7 7.1 on Appveyor, we sometimes see this
# return an TypeError instead of the OverflowError.
# XXX: But see Test_getnameinfo_fail.test_port_string where this does work.
@greentest.skipOnLibuvOnPyPyOnWin("Errors don't match")
def test_typeerror_str(self):
self._test('getnameinfo', ('www.gevent.org', 'x'), 0) self._test('getnameinfo', ('www.gevent.org', 'x'), 0)
@unittest.skipIf(RESOLVER_DNSPYTHON, @unittest.skipIf(RESOLVER_DNSPYTHON,
"System resolvers do funny things with this: macOS raises gaierror, " "System resolvers do funny things with this: macOS raises gaierror, "
"Travis CI returns (readthedocs.org, '0'). It's hard to match that exactly. " "Travis CI returns (readthedocs.org, '0'). It's hard to match that exactly. "
"dnspython raises OverflowError.") "dnspython raises OverflowError.")
def test4(self): def test_overflow_port_too_large(self):
self._test('getnameinfo', ('www.gevent.org', 65536), 0) self._test('getnameinfo', ('www.gevent.org', 65536), 0)
......
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