List/tuple boundscheck test.
authorRobert Bradshaw <robertwb@math.washington.edu>
Wed, 9 Dec 2009 06:21:37 +0000 (22:21 -0800)
committerRobert Bradshaw <robertwb@math.washington.edu>
Wed, 9 Dec 2009 06:21:37 +0000 (22:21 -0800)
tests/run/index.pyx

index 7003755fe9fecb4328b20c48cad210039a58f1a7..1b6fd68e5eb3892c83b9ccf5f3cba0eca6023f68 100644 (file)
@@ -11,6 +11,7 @@ if sys.version_info[0] >= 3:
 elif sys.version_info < (2,5):
     __doc__ = __doc__.replace(u"'int' object is unsubscriptable", u'unsubscriptable object')
 
+import cython
 
 def index_tuple(tuple t, int i):
     """
@@ -113,3 +114,15 @@ def test_long_long():
         assert D[ix] is True
         del D[ix]
     assert len(D) == 0
+
+@cython.boundscheck(False)
+def test_boundscheck(list L, tuple t, object o, unsigned long ix):
+    """
+    >>> test_boundscheck([1, 2, 4], (1, 2, 4), [1, 2, 4], 2)
+    (4, 4, 4)
+    >>> test_boundscheck([1, 2, 4], (1, 2, 4), "", 2)
+    Traceback (most recent call last):
+    ...
+    IndexError: string index out of range
+    """
+    return L[ix], t[ix], o[ix]