summaryrefslogtreecommitdiffstats
path: root/Lib/test/crashers
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2009-01-12 23:36:55 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2009-01-12 23:36:55 (GMT)
commita40d57366432cd65915b92fe3e6bfe1d5ad63be0 (patch)
tree45ef11eae7d47a373fea86cba4b1b0c4902bb93a /Lib/test/crashers
parentf94d7fa5fb90df0163cffca2864885a7da49d4f6 (diff)
downloadcpython-a40d57366432cd65915b92fe3e6bfe1d5ad63be0.zip
cpython-a40d57366432cd65915b92fe3e6bfe1d5ad63be0.tar.gz
cpython-a40d57366432cd65915b92fe3e6bfe1d5ad63be0.tar.bz2
#3720: Interpreter crashes when an evil iterator removes its own next function.
Now the slot is filled with a function that always raises. Will not backport: extensions compiled with 2.6.x would not run on 2.6.0.
Diffstat (limited to 'Lib/test/crashers')
-rw-r--r--Lib/test/crashers/iter.py53
1 files changed, 0 insertions, 53 deletions
diff --git a/Lib/test/crashers/iter.py b/Lib/test/crashers/iter.py
deleted file mode 100644
index 081dcbc..0000000
--- a/Lib/test/crashers/iter.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Calls to PyIter_Next, or direct calls to tp_iternext, on an object
-# which might no longer be an iterable because its 'next' method was
-# removed. These are all variants of Issue3720.
-
-"""
-Run this script with an argument between 1 and <N> to test for
-different crashes.
-"""
-N = 8
-
-import sys
-
-class Foo(object):
- def __iter__(self):
- return self
- def next(self):
- del Foo.next
- return (1, 2)
-
-def case1():
- list(enumerate(Foo()))
-
-def case2():
- x, y = Foo()
-
-def case3():
- filter(None, Foo())
-
-def case4():
- map(None, Foo(), Foo())
-
-def case5():
- max(Foo())
-
-def case6():
- sum(Foo(), ())
-
-def case7():
- dict(Foo())
-
-def case8():
- sys.stdout.writelines(Foo())
-
-# etc...
-
-
-if __name__ == '__main__':
- if len(sys.argv) < 2:
- print __doc__.replace('<N>', str(N))
- else:
- n = int(sys.argv[1])
- func = globals()['case%d' % n]
- func()