Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r2695:72a157dc2bde Date: 2016-05-08 18:38 +0200 http://bitbucket.org/cffi/cffi/changeset/72a157dc2bde/
Log: Fix tests in 'testing' to account for e7ca388b0197 (I only fixed the tests in 'c/test_c.py') diff --git a/cffi/backend_ctypes.py b/cffi/backend_ctypes.py --- a/cffi/backend_ctypes.py +++ b/cffi/backend_ctypes.py @@ -460,6 +460,11 @@ return x._value raise TypeError("character expected, got %s" % type(x).__name__) + def __nonzero__(self): + return ord(self._value) != 0 + else: + def __nonzero__(self): + return self._value != 0 if kind == 'float': @staticmethod diff --git a/testing/cffi0/backend_tests.py b/testing/cffi0/backend_tests.py --- a/testing/cffi0/backend_tests.py +++ b/testing/cffi0/backend_tests.py @@ -55,7 +55,7 @@ max = int(max) p = ffi.cast(c_decl, min) assert p != min # no __eq__(int) - assert bool(p) is True + assert bool(p) is bool(min) assert int(p) == min p = ffi.cast(c_decl, max) assert int(p) == max @@ -284,7 +284,9 @@ assert ffi.new("char*", b"\xff")[0] == b'\xff' assert ffi.new("char*")[0] == b'\x00' assert int(ffi.cast("char", 300)) == 300 - 256 - assert bool(ffi.cast("char", 0)) + assert not bool(ffi.cast("char", 0)) + assert bool(ffi.cast("char", 1)) + assert bool(ffi.cast("char", 255)) py.test.raises(TypeError, ffi.new, "char*", 32) py.test.raises(TypeError, ffi.new, "char*", u+"x") py.test.raises(TypeError, ffi.new, "char*", b"foo") @@ -325,7 +327,11 @@ py.test.raises(TypeError, ffi.new, "wchar_t*", u+'\U00012345') assert ffi.new("wchar_t*")[0] == u+'\x00' assert int(ffi.cast("wchar_t", 300)) == 300 - assert bool(ffi.cast("wchar_t", 0)) + assert not bool(ffi.cast("wchar_t", 0)) + assert bool(ffi.cast("wchar_t", 1)) + assert bool(ffi.cast("wchar_t", 65535)) + if SIZE_OF_WCHAR > 2: + assert bool(ffi.cast("wchar_t", 65536)) py.test.raises(TypeError, ffi.new, "wchar_t*", 32) py.test.raises(TypeError, ffi.new, "wchar_t*", "foo") # diff --git a/testing/cffi1/test_new_ffi_1.py b/testing/cffi1/test_new_ffi_1.py --- a/testing/cffi1/test_new_ffi_1.py +++ b/testing/cffi1/test_new_ffi_1.py @@ -138,7 +138,7 @@ max = int(max) p = ffi.cast(c_decl, min) assert p != min # no __eq__(int) - assert bool(p) is True + assert bool(p) is bool(min) assert int(p) == min p = ffi.cast(c_decl, max) assert int(p) == max @@ -350,7 +350,9 @@ assert ffi.new("char*", b"\xff")[0] == b'\xff' assert ffi.new("char*")[0] == b'\x00' assert int(ffi.cast("char", 300)) == 300 - 256 - assert bool(ffi.cast("char", 0)) + assert not bool(ffi.cast("char", 0)) + assert bool(ffi.cast("char", 1)) + assert bool(ffi.cast("char", 255)) py.test.raises(TypeError, ffi.new, "char*", 32) py.test.raises(TypeError, ffi.new, "char*", u+"x") py.test.raises(TypeError, ffi.new, "char*", b"foo") @@ -390,7 +392,11 @@ py.test.raises(TypeError, ffi.new, "wchar_t*", u+'\U00012345') assert ffi.new("wchar_t*")[0] == u+'\x00' assert int(ffi.cast("wchar_t", 300)) == 300 - assert bool(ffi.cast("wchar_t", 0)) + assert not bool(ffi.cast("wchar_t", 0)) + assert bool(ffi.cast("wchar_t", 1)) + assert bool(ffi.cast("wchar_t", 65535)) + if SIZE_OF_WCHAR > 2: + assert bool(ffi.cast("wchar_t", 65536)) py.test.raises(TypeError, ffi.new, "wchar_t*", 32) py.test.raises(TypeError, ffi.new, "wchar_t*", "foo") # _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit