Author: Richard Plangger <[email protected]>
Branch: strbuf-as-buffer
Changeset: r88983:a3362d15b0e7
Date: 2016-12-09 13:21 +0100
http://bitbucket.org/pypy/pypy/changeset/a3362d15b0e7/
Log: update test, from_buffer(memoryview) is now allowed!
diff --git a/pypy/module/_cffi_backend/test/_backend_test_c.py
b/pypy/module/_cffi_backend/test/_backend_test_c.py
--- a/pypy/module/_cffi_backend/test/_backend_test_c.py
+++ b/pypy/module/_cffi_backend/test/_backend_test_c.py
@@ -3417,22 +3417,27 @@
assert p1 == from_buffer(BCharA, b"foo")
import gc; gc.collect()
assert p1 == from_buffer(BCharA, b"foo")
- py.test.raises(TypeError, from_buffer, BCharA, u+"foo")
try:
from __builtin__ import buffer
except ImportError:
- pass
+ # python3 does not allow from to get buffer from unicode!
+ raises(TypeError, from_buffer, BCharA, u+"foo")
else:
- # from_buffer(buffer(b"foo")) does not work, because it's not
- # implemented on pypy; only from_buffer(b"foo") works.
- py.test.raises(TypeError, from_buffer, BCharA, buffer(b"foo"))
- py.test.raises(TypeError, from_buffer, BCharA, buffer(u+"foo"))
+ p4 = from_buffer(BCharA, u+"foo")
+ contents = from_buffer(BCharA, buffer(b"foo"))
+ for i in range(len(contents)):
+ assert contents[i] == p1[i]
+ contents = from_buffer(BCharA, buffer(u+"foo"))
+ for i in range(len(contents)):
+ assert contents[i] == p4[i]
try:
from __builtin__ import memoryview
except ImportError:
pass
else:
- py.test.raises(TypeError, from_buffer, BCharA, memoryview(b"foo"))
+ contents = from_buffer(BCharA, memoryview(b"foo"))
+ for i in range(len(contents)):
+ assert contents[i] == p1[i]
def test_from_buffer_bytearray():
a = bytearray(b"xyz")
diff --git a/rpython/rtyper/lltypesystem/rffi.py
b/rpython/rtyper/lltypesystem/rffi.py
--- a/rpython/rtyper/lltypesystem/rffi.py
+++ b/rpython/rtyper/lltypesystem/rffi.py
@@ -795,12 +795,9 @@
return data_start
rawbytes = RawBytes(string)
_STR_WDICT.set(key, rawbytes)
+
return rawbytes.ptr
-
-
-
-
# various type mapping
# conversions between str and char*
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit