bitstruct
bitstruct copied to clipboard
endianess of resulting array of bytes
With the 8.11.1 I'm getting
>>> bitstruct.pack('u8u8u8u8<', 1, 2, 3, 4)
b'\x01\x02\x03\x04'
>>> bitstruct.pack('u8u8u8u8>', 1, 2, 3, 4)
b'\x01\x02\x03\x04'
Is this OK? According to the documentation, I was expecting different byte orderings when using suffixes < and >.
THX, Alejandro
PS: great work!
The recent v8.10.2 also isn't working on big-endian architectures like s390x. So there must be some problems with the actual c-interface implementation:
======================================================================
FAIL: test_pack (tests.test_c.CTest)
Pack values.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builddir/build/BUILD/bitstruct-8.12.1/tests/test_c.py", line 97, in test_pack
self.assertEqual(packed, b'\x3c\x00')
AssertionError: b'\x00<' != b'<\x00'
======================================================================
FAIL: test_unpack (tests.test_c.CTest)
Unpack values.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builddir/build/BUILD/bitstruct-8.12.1/tests/test_c.py", line 187, in test_unpack
self.assertEqual(unpacked, (1.0, ))
AssertionError: Tuples differ: (3.5762786865234375e-06,) != (1.0,)
First differing element 0:
3.5762786865234375e-06
1.0
- (3.5762786865234375e-06,)
+ (1.0,)
----------------------------------------------------------------------
Ran 51 tests in 0.006s
FAILED (failures=2)