diff options
author | Armin Rigo <arigo@tunes.org> | 2016-04-15 18:23:28 +0200 |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2016-04-15 18:23:28 +0200 |
commit | f5d81838a8eb7a0108192eb5abb9410ee7c038ea (patch) | |
tree | 014faf77b252512489d0baf5ccc2436a470c9692 /testing | |
parent | 9289e76f6e2f207be49f71734727194558c16351 (diff) | |
download | cffi-f5d81838a8eb7a0108192eb5abb9410ee7c038ea.tar.gz |
ffi.rawstring(), with a minimal interface
Diffstat (limited to 'testing')
-rw-r--r-- | testing/cffi0/test_ffi_backend.py | 9 | ||||
-rw-r--r-- | testing/cffi1/test_ffi_obj.py | 12 |
2 files changed, 21 insertions, 0 deletions
diff --git a/testing/cffi0/test_ffi_backend.py b/testing/cffi0/test_ffi_backend.py index c5ef188..5be6dff 100644 --- a/testing/cffi0/test_ffi_backend.py +++ b/testing/cffi0/test_ffi_backend.py @@ -472,3 +472,12 @@ class TestBitfield: assert ffi.list_types() == (['b', 'bb', 'bbb'], ['a', 'cc', 'ccc'], ['aa', 'aaa', 'g']) + + def test_rawstring(self): + ffi = FFI() + p = ffi.new("char[]", "abc\x00def") + assert ffi.rawstring(p) == "abc\x00def\x00" + assert ffi.rawstring(p[1:6]) == "bc\x00de" + p = ffi.new("wchar_t[]", u"abc\x00def") + assert ffi.rawstring(p) == u"abc\x00def\x00" + assert ffi.rawstring(p[1:6]) == u"bc\x00de" diff --git a/testing/cffi1/test_ffi_obj.py b/testing/cffi1/test_ffi_obj.py index 4002e9d..02f42a6 100644 --- a/testing/cffi1/test_ffi_obj.py +++ b/testing/cffi1/test_ffi_obj.py @@ -495,3 +495,15 @@ def test_init_once_multithread_failure(): assert i < 20 time.sleep(0.51) assert seen == ['init!', 'oops'] * 3 + +def test_rawstring(): + ffi = _cffi1_backend.FFI() + p = ffi.new("char[]", "abc\x00def") + assert ffi.rawstring(p) == "abc\x00def\x00" + assert ffi.rawstring(p[1:6]) == "bc\x00de" + p = ffi.new("wchar_t[]", u"abc\x00def") + assert ffi.rawstring(p) == u"abc\x00def\x00" + assert ffi.rawstring(p[1:6]) == u"bc\x00de" + # + py.test.raises(TypeError, ffi.rawstring, "foobar") + py.test.raises(TypeError, ffi.rawstring, p + 1) |