Commit 664e34da authored by Jason Madden's avatar Jason Madden

Define an exception class at top level to make the leakchecker happy.

parent 3b30b448
...@@ -16,7 +16,7 @@ print('Running with patch_all(%s): %s' % (','.join('%s=%r' % x for x in kwargs.i ...@@ -16,7 +16,7 @@ print('Running with patch_all(%s): %s' % (','.join('%s=%r' % x for x in kwargs.i
from gevent import monkey; monkey.patch_all(**kwargs) from gevent import monkey; monkey.patch_all(**kwargs)
from patched_tests_setup import disable_tests_in_source from greentest.patched_tests_setup import disable_tests_in_source
try: try:
from test import support from test import support
except ImportError: except ImportError:
...@@ -24,8 +24,6 @@ except ImportError: ...@@ -24,8 +24,6 @@ except ImportError:
support.is_resource_enabled = lambda *args: True support.is_resource_enabled = lambda *args: True
del support.use_resources del support.use_resources
if sys.version_info[:2] <= (2, 6):
support.TESTFN += '_%s' % os.getpid()
__file__ = os.path.join(os.getcwd(), test_filename) __file__ = os.path.join(os.getcwd(), test_filename)
......
...@@ -13,21 +13,24 @@ import os ...@@ -13,21 +13,24 @@ import os
# import platform # import platform
import re import re
# XXX: These are mainly repeats of what's in greentest. Extract these to a common module. from greentest.sysinfo import RUNNING_ON_APPVEYOR as APPVEYOR
from greentest.sysinfo import RUNNING_ON_TRAVIS as TRAVIS
from greentest.sysinfo import RESOLVER_ARES as ARES
TRAVIS = os.environ.get("TRAVIS") == "true" from greentest.sysinfo import PYPY
APPVEYOR = os.environ.get('APPVEYOR') from greentest.sysinfo import PYPY3
OSX = sys.platform == 'darwin' from greentest.sysinfo import PY3
PYPY = hasattr(sys, 'pypy_version_info') from greentest.sysinfo import PY2
CPYTHON = not PYPY from greentest.sysinfo import PY34
WIN = sys.platform.startswith("win") from greentest.sysinfo import PY35
PY2 = sys.version_info[0] < 3 from greentest.sysinfo import PY36
PY3 = sys.version_info[0] >= 3
ARES = os.environ.get('GEVENT_RESOLVER') == 'ares' from greentest.sysinfo import WIN
from greentest.sysinfo import OSX
# XXX: Formalize this better from greentest.sysinfo import LIBUV
LIBUV = os.getenv('GEVENT_CORE_CFFI_ONLY') == 'libuv' or (PYPY and WIN)
CPYTHON = not PYPY
# By default, test cases are expected to switch and emit warnings if there was none # By default, test cases are expected to switch and emit warnings if there was none
# If a test is found in this list, it's expected not to switch. # If a test is found in this list, it's expected not to switch.
...@@ -516,19 +519,19 @@ if sys.version_info[:3] <= (2, 7, 11): ...@@ -516,19 +519,19 @@ if sys.version_info[:3] <= (2, 7, 11):
'test_ssl.ThreadedTests.test__https_verify_envvar', 'test_ssl.ThreadedTests.test__https_verify_envvar',
] ]
if sys.platform == 'darwin': if OSX:
disabled_tests += [ disabled_tests += [
'test_subprocess.POSIXProcessTestCase.test_run_abort', 'test_subprocess.POSIXProcessTestCase.test_run_abort',
# causes Mac OS X to show "Python crashes" dialog box which is annoying # causes Mac OS X to show "Python crashes" dialog box which is annoying
] ]
if sys.platform.startswith('win'): if WIN:
disabled_tests += [ disabled_tests += [
# Issue with Unix vs DOS newlines in the file vs from the server # Issue with Unix vs DOS newlines in the file vs from the server
'test_ssl.ThreadedTests.test_socketserver', 'test_ssl.ThreadedTests.test_socketserver',
] ]
if hasattr(sys, 'pypy_version_info'): if PYPY:
disabled_tests += [ disabled_tests += [
'test_subprocess.ProcessTestCase.test_failed_child_execute_fd_leak', 'test_subprocess.ProcessTestCase.test_failed_child_execute_fd_leak',
# Does not exist in the CPython test suite, tests for a specific bug # Does not exist in the CPython test suite, tests for a specific bug
...@@ -539,7 +542,7 @@ if hasattr(sys, 'pypy_version_info'): ...@@ -539,7 +542,7 @@ if hasattr(sys, 'pypy_version_info'):
# Generic Python 3 # Generic Python 3
if sys.version_info[0] == 3: if PY3:
disabled_tests += [ disabled_tests += [
# Triggers the crash reporter # Triggers the crash reporter
...@@ -627,7 +630,7 @@ if sys.version_info[0] == 3: ...@@ -627,7 +630,7 @@ if sys.version_info[0] == 3:
# PyPy3 3.5.5 v5.8-beta # PyPy3 3.5.5 v5.8-beta
if hasattr(sys, 'pypy_version_info') and sys.version_info[:2] >= (3, 3): if PYPY3:
disabled_tests += [ disabled_tests += [
...@@ -638,7 +641,7 @@ if hasattr(sys, 'pypy_version_info') and sys.version_info[:2] >= (3, 3): ...@@ -638,7 +641,7 @@ if hasattr(sys, 'pypy_version_info') and sys.version_info[:2] >= (3, 3):
] ]
if hasattr(sys, 'pypy_version_info') and sys.pypy_version_info[:4] in ( # pylint:disable=no-member if PYPY and sys.pypy_version_info[:4] in ( # pylint:disable=no-member
(5, 8, 0, 'beta'), (5, 9, 0, 'beta'), (5, 8, 0, 'beta'), (5, 9, 0, 'beta'),
): ):
# 3.5 is beta. Hard to say what are real bugs in us vs real bugs in pypy. # 3.5 is beta. Hard to say what are real bugs in us vs real bugs in pypy.
...@@ -682,7 +685,7 @@ if hasattr(sys, 'pypy_version_info') and sys.pypy_version_info[:4] in ( # pylint ...@@ -682,7 +685,7 @@ if hasattr(sys, 'pypy_version_info') and sys.pypy_version_info[:4] in ( # pylint
'test_threading.ThreadJoinOnShutdown.test_1_join_on_shutdown', 'test_threading.ThreadJoinOnShutdown.test_1_join_on_shutdown',
] ]
if hasattr(sys, 'pypy_version_info'): if PYPY:
wrapped_tests.update({ wrapped_tests.update({
# XXX: gevent: The error that was raised by that last call # XXX: gevent: The error that was raised by that last call
...@@ -706,7 +709,7 @@ if hasattr(sys, 'pypy_version_info'): ...@@ -706,7 +709,7 @@ if hasattr(sys, 'pypy_version_info'):
'test_urllib2_localnet.TestUrlopen.test_https_with_cafile': _gc_at_end, 'test_urllib2_localnet.TestUrlopen.test_https_with_cafile': _gc_at_end,
}) })
if sys.version_info[:2] == (3, 4) and sys.version_info[:3] < (3, 4, 4): if PY34 and sys.version_info[:3] < (3, 4, 4):
# Older versions have some issues with the SSL tests. Seen on Appveyor # Older versions have some issues with the SSL tests. Seen on Appveyor
disabled_tests += [ disabled_tests += [
'test_ssl.ContextTests.test_options', 'test_ssl.ContextTests.test_options',
...@@ -715,7 +718,7 @@ if sys.version_info[:2] == (3, 4) and sys.version_info[:3] < (3, 4, 4): ...@@ -715,7 +718,7 @@ if sys.version_info[:2] == (3, 4) and sys.version_info[:3] < (3, 4, 4):
'test_httplib.HTTPSTest.test_networked', 'test_httplib.HTTPSTest.test_networked',
] ]
if sys.version_info[:2] >= (3, 4): if PY34:
disabled_tests += [ disabled_tests += [
'test_subprocess.ProcessTestCase.test_threadsafe_wait', 'test_subprocess.ProcessTestCase.test_threadsafe_wait',
# XXX: It seems that threading.Timer is not being greened properly, possibly # XXX: It seems that threading.Timer is not being greened properly, possibly
...@@ -759,7 +762,7 @@ if sys.version_info[:2] >= (3, 4): ...@@ -759,7 +762,7 @@ if sys.version_info[:2] >= (3, 4):
'test_httplib.HeaderTests.test_parse_all_octets', 'test_httplib.HeaderTests.test_parse_all_octets',
] ]
if sys.platform == 'darwin': if OSX:
disabled_tests += [ disabled_tests += [
# These raise "OSError: 12 Cannot allocate memory" on both # These raise "OSError: 12 Cannot allocate memory" on both
# patched and unpatched runs # patched and unpatched runs
...@@ -795,7 +798,7 @@ if sys.version_info[:2] >= (3, 4): ...@@ -795,7 +798,7 @@ if sys.version_info[:2] >= (3, 4):
# but fails under Travis # but fails under Travis
] ]
if sys.version_info[:2] >= (3, 5): if PY35:
disabled_tests += [ disabled_tests += [
# XXX: Hangs # XXX: Hangs
'test_ssl.ThreadedTests.test_nonblocking_send', 'test_ssl.ThreadedTests.test_nonblocking_send',
...@@ -833,6 +836,13 @@ if sys.version_info[:2] >= (3, 5): ...@@ -833,6 +836,13 @@ if sys.version_info[:2] >= (3, 5):
'test_socket.GeneralModuleTests.test_getnameinfo', 'test_socket.GeneralModuleTests.test_getnameinfo',
] ]
if LIBUV and sys.version_info[1] == 5:
disabled_tests += [
# This test tends to time out, but only under 3.5, not under
# 3.6 or 3.7
'test_socket.SendfileUsingSendTest.testWithTimeoutTriggeredSend',
]
if sys.version_info[:3] <= (3, 5, 1): if sys.version_info[:3] <= (3, 5, 1):
# Python issue 26499 was fixed in 3.5.2 and these tests were added. # Python issue 26499 was fixed in 3.5.2 and these tests were added.
disabled_tests += [ disabled_tests += [
...@@ -843,7 +853,7 @@ if sys.version_info[:3] <= (3, 5, 1): ...@@ -843,7 +853,7 @@ if sys.version_info[:3] <= (3, 5, 1):
'test_httplib.BasicTest.test_readlines_content_length', 'test_httplib.BasicTest.test_readlines_content_length',
] ]
if sys.version_info[:2] >= (3, 6): if PY36:
disabled_tests += [ disabled_tests += [
'test_threading.MiscTestCase.test__all__', 'test_threading.MiscTestCase.test__all__',
] ]
......
...@@ -27,6 +27,7 @@ PYPY = hasattr(sys, 'pypy_version_info') ...@@ -27,6 +27,7 @@ PYPY = hasattr(sys, 'pypy_version_info')
VERBOSE = sys.argv.count('-v') > 1 VERBOSE = sys.argv.count('-v') > 1
WIN = sys.platform.startswith("win") WIN = sys.platform.startswith("win")
LINUX = sys.platform.startswith('linux') LINUX = sys.platform.startswith('linux')
OSX = sys.platform == 'darwin'
# XXX: Formalize this better # XXX: Formalize this better
LIBUV = os.getenv('GEVENT_CORE_CFFI_ONLY') == 'libuv' or (PYPY and WIN) or hasattr(gevent.core, 'libuv') LIBUV = os.getenv('GEVENT_CORE_CFFI_ONLY') == 'libuv' or (PYPY and WIN) or hasattr(gevent.core, 'libuv')
......
...@@ -32,7 +32,7 @@ from greentest import leakcheck ...@@ -32,7 +32,7 @@ from greentest import leakcheck
from greentest import errorhandler from greentest import errorhandler
from greentest import flaky from greentest import flaky
from patched_tests_setup import get_switch_expected from greentest.patched_tests_setup import get_switch_expected
......
...@@ -50,7 +50,7 @@ def TESTRUNNER(tests=None): ...@@ -50,7 +50,7 @@ def TESTRUNNER(tests=None):
if tests and not sys.platform.startswith("win"): if tests and not sys.platform.startswith("win"):
atexit.register(os.system, 'rm -f */@test*') atexit.register(os.system, 'rm -f */@test*')
basic_args = [sys.executable, '-u', '-W', 'ignore', '-m' 'monkey_test'] basic_args = [sys.executable, '-u', '-W', 'ignore', '-m' 'greentest.monkey_test']
for filename in tests: for filename in tests:
if filename in version_tests: if filename in version_tests:
util.log("Overriding %s from %s with file from %s", filename, directory, full_directory) util.log("Overriding %s from %s with file from %s", filename, directory, full_directory)
...@@ -65,7 +65,7 @@ def TESTRUNNER(tests=None): ...@@ -65,7 +65,7 @@ def TESTRUNNER(tests=None):
def main(): def main():
import testrunner from greentest import testrunner
return testrunner.run_many(list(TESTRUNNER(sys.argv[1:]))) return testrunner.run_many(list(TESTRUNNER(sys.argv[1:])))
......
...@@ -72,6 +72,8 @@ class TestAsyncResultGet(greentest.GenericGetTestCase): ...@@ -72,6 +72,8 @@ class TestAsyncResultGet(greentest.GenericGetTestCase):
def wait(self, timeout): def wait(self, timeout):
AsyncResult().get(timeout=timeout) AsyncResult().get(timeout=timeout)
class MyException(Exception):
pass
class TestAsyncResult(greentest.TestCase): class TestAsyncResult(greentest.TestCase):
...@@ -88,9 +90,6 @@ class TestAsyncResult(greentest.TestCase): ...@@ -88,9 +90,6 @@ class TestAsyncResult(greentest.TestCase):
self.assertEqual(e.exc_info, ()) self.assertEqual(e.exc_info, ())
self.assertEqual(e.exception, None) self.assertEqual(e.exception, None)
class MyException(Exception):
pass
def waiter(): def waiter():
with self.assertRaises(MyException) as exc: with self.assertRaises(MyException) as exc:
e.get() e.get()
...@@ -105,9 +104,6 @@ class TestAsyncResult(greentest.TestCase): ...@@ -105,9 +104,6 @@ class TestAsyncResult(greentest.TestCase):
event1 = AsyncResult() event1 = AsyncResult()
event2 = AsyncResult() event2 = AsyncResult()
class MyException(Exception):
pass
timer_exc = MyException('interrupted') timer_exc = MyException('interrupted')
g = gevent.spawn_later(DELAY / 2.0, event1.set, 'hello event1') g = gevent.spawn_later(DELAY / 2.0, event1.set, 'hello event1')
......
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