Armin Rigo avatar Armin Rigo committed 225b223

(antocuni, arigo) Tests for the next thing to do

Comments (0)

Files changed (1)

src/test/test_cdata.py

+import py
 from ffi import FFI
 
 class FakeBackend(object):
     clong = ffi.typeof("long")
     assert isinstance(clong, FakePrimitiveType)
     assert clong.cdecl == 'long'
+
+def test_new_array_no_arg():
+    ffi = FFI(backend=FakeBackend())
+    p = ffi.new("int[10]")
+    # the object was zero-initialized:
+    for i in range(10):
+        assert p[i] == 0
+
+def test_array_indexing():
+    ffi = FFI(backend=FakeBackend())
+    p = ffi.new("int[10]")
+    p[0] = 42
+    p[9] = 43
+    assert p[0] == 42
+    assert p[9] == 43
+    py.test.raises(IndexError, "p[10]")
+    py.test.raises(IndexError, "p[10] = 44")
+    py.test.raises(IndexError, "p[-1]")
+    py.test.raises(IndexError, "p[-1] = 44")
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.