Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r88217:17b695310d4d
Date: 2016-11-08 14:11 +0100
http://bitbucket.org/pypy/pypy/changeset/17b695310d4d/
Log: hg merge default
diff --git a/pypy/interpreter/error.py b/pypy/interpreter/error.py
--- a/pypy/interpreter/error.py
+++ b/pypy/interpreter/error.py
@@ -670,10 +670,14 @@
return OperationError(space.w_KeyboardInterrupt, space.w_None)
except MemoryError:
return OperationError(space.w_MemoryError, space.w_None)
- except NotImplementedError: # not on top of pypy! tests only
- return OperationError(space.w_SystemError,
- space.wrap("NotImplementedError"))
except rstackovf.StackOverflow as e:
+ # xxx twisted logic which happens to give the result that we
+ # want: when untranslated, a RuntimeError or its subclass
+ # NotImplementedError is caught here. Then
+ # check_stack_overflow() will re-raise it directly. We see
+ # the result as this exception propagates directly. But when
+ # translated, an RPython-level RuntimeError is turned into
+ # an app-level RuntimeError by the next case.
rstackovf.check_stack_overflow()
return oefmt(space.w_RecursionError,
"maximum recursion depth exceeded")
diff --git a/pypy/module/gc/test/test_app_referents.py
b/pypy/module/gc/test/test_app_referents.py
--- a/pypy/module/gc/test/test_app_referents.py
+++ b/pypy/module/gc/test/test_app_referents.py
@@ -4,13 +4,12 @@
def test_interface_to_dump_rpy_heap_str(space):
filename = str(udir.join('dump_rpy_heap.str'))
- space.appexec([space.wrap(filename)], """(filename):
- import gc
- try:
- gc.dump_rpy_heap(filename)
- except SystemError:
- pass
- """)
+ try:
+ space.appexec([space.wrap(filename)], """(filename):
+ import gc
+ gc.dump_rpy_heap(filename)""")
+ except NotImplementedError:
+ pass
assert os.path.exists(filename)
def test_interface_to_dump_rpy_heap_file(space):
@@ -21,22 +20,20 @@
f.write(b'X')
return f""")
assert os.path.getsize(filename) == 0 # the 'X' was not flushed yet
- space.appexec([w_f], """(f):
- import gc
- try:
- gc.dump_rpy_heap(f)
- except SystemError:
- pass
- """)
+ try:
+ space.appexec([w_f], """(f):
+ import gc
+ gc.dump_rpy_heap(f)""")
+ except NotImplementedError:
+ pass
assert os.path.getsize(filename) == 1 # the 'X' was flushed here
def test_interface_to_dump_rpy_heap_fd(space):
filename = str(udir.join('dump_rpy_heap.fd'))
f = open(filename, 'wb')
- space.appexec([space.wrap(f.fileno())], """(fd):
- import gc
- try:
- gc.dump_rpy_heap(fd)
- except SystemError:
- pass
- """)
+ try:
+ space.appexec([space.wrap(f.fileno())], """(fd):
+ import gc
+ gc.dump_rpy_heap(fd)""")
+ except NotImplementedError:
+ pass
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit