Commit e9ffbb8f authored by Stefan Behnel's avatar Stefan Behnel

Make sure that test failures are easy to find in the logs by putting all...

Make sure that test failures are easy to find in the logs by putting all information into the assertion.
parent a8e0f626
...@@ -5,13 +5,11 @@ import sys ...@@ -5,13 +5,11 @@ import sys
from libc.string cimport memcpy from libc.string cimport memcpy
cdef bint Py_UNICODE_equal(const Py_UNICODE* u1, const Py_UNICODE* u2): cdef assert_Py_UNICODE_equal(const Py_UNICODE* u1, const Py_UNICODE* u2):
cdef size_t i = 0 cdef size_t i = 0
while u1[i] != 0 and u2[i] != 0 and u1[i] == u2[i]: while u1[i] != 0 and u2[i] != 0 and u1[i] == u2[i]:
i += 1 i += 1
if u1[i] != u2[i]: assert u1[i] == u2[i], f"Mismatch at position {i}: {<long>u1[i]} != {<long>u2[i]} ({u1!r} != {u2!r})"
print(f"Mismatch at position {i}: {<long>u1[i]} != {<long>u2[i]}")
return u1[i] == u2[i]
ctypedef Py_UNICODE* LPWSTR ctypedef Py_UNICODE* LPWSTR
...@@ -84,20 +82,20 @@ def test_python_to_c(): ...@@ -84,20 +82,20 @@ def test_python_to_c():
""" """
cdef unicode u cdef unicode u
assert Py_UNICODE_equal(c_pu_arr, uobj) assert_Py_UNICODE_equal(c_pu_arr, uobj)
assert Py_UNICODE_equal(c_pu_str, uobj) assert_Py_UNICODE_equal(c_pu_str, uobj)
assert Py_UNICODE_equal(c_pu_str, <LPWSTR>uobj) assert_Py_UNICODE_equal(c_pu_str, <LPWSTR>uobj)
u = uobj[1:] u = uobj[1:]
assert Py_UNICODE_equal(c_pu_str + 1, u) assert_Py_UNICODE_equal(c_pu_str + 1, u)
assert Py_UNICODE_equal(c_wstr + 1, u) assert_Py_UNICODE_equal(c_wstr + 1, u)
u = uobj[:1] u = uobj[:1]
assert Py_UNICODE_equal(<Py_UNICODE*>u"u", u) assert_Py_UNICODE_equal(<Py_UNICODE*>u"u", u)
u = uobj[1:7] u = uobj[1:7]
assert Py_UNICODE_equal(<Py_UNICODE*>u"nicode", u) assert_Py_UNICODE_equal(<Py_UNICODE*>u"nicode", u)
u = uobj[1] u = uobj[1]
assert Py_UNICODE_equal(<Py_UNICODE*>u"n", u) assert_Py_UNICODE_equal(<Py_UNICODE*>u"n", u)
assert Py_UNICODE_equal(uwide_literal, <Py_UNICODE*>c_pu_wide_literal), (uwide_literal, <unicode>c_pu_wide_literal) assert_Py_UNICODE_equal(uwide_literal, <Py_UNICODE*>c_pu_wide_literal)
assert len(u"abc\0") == 4 assert len(u"abc\0") == 4
assert len(<Py_UNICODE*>u"abc\0") == 3 assert len(<Py_UNICODE*>u"abc\0") == 3
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment