Author: Armin Rigo <[email protected]>
Branch:
Changeset: r589:ae4df1d71966
Date: 2012-07-07 13:44 +0200
http://bitbucket.org/cffi/cffi/changeset/ae4df1d71966/
Log: Extra tests
diff --git a/c/test_c.py b/c/test_c.py
--- a/c/test_c.py
+++ b/c/test_c.py
@@ -845,6 +845,8 @@
return callback(BFunc, cb, 42) # 'cb' and 'BFunc' go out of scope
f = make_callback()
assert f(-142) == -141
+ assert repr(f).startswith(
+ "<cdata 'int(*)(int)' calling <function cb at 0x")
def test_callback_return_type():
for rettype in ["signed char", "short", "int", "long", "long long",
@@ -1318,3 +1320,39 @@
p = cast(BVoidP, 0)
if 'PY_DOT_PY' in globals(): py.test.skip("NULL crashes early on py.py")
py.test.raises(TypeError, "p[0]")
+
+def test_iter():
+ BInt = new_primitive_type("int")
+ BIntP = new_pointer_type(BInt)
+ BArray = new_array_type(BIntP, None) # int[]
+ p = newp(BArray, 7)
+ assert list(p) == list(iter(p)) == [0] * 7
+ #
+ py.test.raises(TypeError, iter, cast(BInt, 5))
+ py.test.raises(TypeError, iter, cast(BIntP, 123456))
+
+def test_cmp():
+ BInt = new_primitive_type("int")
+ BIntP = new_pointer_type(BInt)
+ BVoidP = new_pointer_type(new_void_type())
+ p = newp(BIntP, 123)
+ q = cast(BInt, 124)
+ py.test.raises(TypeError, "p < q")
+ py.test.raises(TypeError, "p <= q")
+ assert (p == q) is False
+ assert (p != q) is True
+ py.test.raises(TypeError, "p > q")
+ py.test.raises(TypeError, "p >= q")
+ r = cast(BVoidP, p)
+ assert (p < r) is False
+ assert (p <= r) is True
+ assert (p == r) is True
+ assert (p != r) is False
+ assert (p > r) is False
+ assert (p >= r) is True
+ s = newp(BIntP, 125)
+ assert (p == s) is False
+ assert (p != s) is True
+ assert (p < s) is (p <= s) is (s > p) is (s >= p)
+ assert (p > s) is (p >= s) is (s < p) is (s <= p)
+ assert (p < s) ^ (p > s)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit