Issue #13546: Fixed an overflow issue that could crash the intepreter when
calling sys.setrecursionlimit((1<<31)-1).
2.7 only.
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 49f5388..6c5fc24 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -224,6 +224,18 @@
self.assertEqual(sys.getrecursionlimit(), 10000)
sys.setrecursionlimit(oldlimit)
+ self.assertRaises(OverflowError, sys.setrecursionlimit, 1 << 31)
+ try:
+ sys.setrecursionlimit((1 << 31) - 5)
+ try:
+ # issue13546: isinstance(e, ValueError) used to fail
+ # when the recursion limit is close to 1<<31
+ raise ValueError()
+ except ValueError, e:
+ pass
+ finally:
+ sys.setrecursionlimit(oldlimit)
+
def test_getwindowsversion(self):
# Raise SkipTest if sys doesn't have getwindowsversion attribute
test.test_support.get_attribute(sys, "getwindowsversion")