https://github.com/vsergeev/u-msgpack-python/pull/31 From 003289878812c63ef046dc7090953b8dde784f8c Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 22 Sep 2017 12:09:30 +0100 Subject: [PATCH] test_umsgpack.py: fix test on big-endian platforms On powerpc and powerpc64 one test fails as: ``` $ py.test -v ... test_umsgpack.py::TestUmsgpack::test_pack_ext_handler FAILED test_umsgpack.py::TestUmsgpack::test_unpack_ext_handler FAILED ... self = def test_pack_ext_handler(self): for (name, obj, data) in ext_handlers_test_vectors: obj_repr = repr(obj) print("\tTesting %s: object %s" % (name, obj_repr if len(obj_repr) < 24 else obj_repr[0:24] + "...")) packed = umsgpack.packb(obj, ext_handlers=ext_handlers) > self.assertEqual(packed, data) E AssertionError: b'\xd7 ?\x80\x00\x00@\x00\x00\x00' != b'\xd7 \x00\x00\x80?\x00\x00\x00@' test_umsgpack.py:484: AssertionError ``` The problem here is in 'struct.pack' output: it uses native endianness format but test hardcodes little-endian output. The change forces 'struct.pack' into little-endian format. That way all tests pass:. Signed-off-by: Sergei Trofimovich --- test_umsgpack.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test_umsgpack.py b/test_umsgpack.py index a25b5b8..e500276 100644 --- a/test_umsgpack.py +++ b/test_umsgpack.py @@ -297,9 +297,9 @@ float_precision_test_vectors = [ CustomType = namedtuple('CustomType', ['x', 'y', 'z']) ext_handlers = { - complex: lambda obj: umsgpack.Ext(0x20, struct.pack("ff", obj.real, obj.imag)), + complex: lambda obj: umsgpack.Ext(0x20, struct.pack("