libyal / dtfabric

Tooling for data type and structure management
Apache License 2.0
10 stars 5 forks source link

failures=5, errors=5 on ppc64 (big-endian) #25

Closed mcepl closed 3 years ago

mcepl commented 3 years ago

When building packages with 20200621 on openSUSE on ppc64 (big-endian) I get these erorrs:

[   54s] 
[   54s] ======================================================================
[   54s] ERROR: testMapByteStreamWithSequenceWithExpression (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with a sequence with expression.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1651, in _CompositeMapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, context=subcontext)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1819, in _LinearMapByteStream
[   54s]     self._CheckByteStreamSize(byte_stream, byte_offset, members_data_size)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 170, in _CheckByteStreamSize
[   54s]     data_type_size, byte_stream_size))
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 12 available: 452
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 973, in _CompositeMapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, context=subcontext)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1658, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(exception)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 12 available: 452
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1651, in _CompositeMapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, context=subcontext)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1146, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 989, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(exception)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 12 available: 452
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1388, in testMapByteStreamWithSequenceWithExpression
[   54s]     sphere = data_type_map.MapByteStream(byte_stream)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1658, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(exception)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 12 available: 452
[   54s] 
[   54s] ======================================================================
[   54s] ERROR: testMapByteStreamWithSequenceWithExpression2 (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with a sequence with expression.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1651, in _CompositeMapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, context=subcontext)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1146, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1004, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(error_string)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Unable to read: data from byte stream at offset: 260 with error: missing element: 255
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1474, in testMapByteStreamWithSequenceWithExpression2
[   54s]     extension_block = data_type_map.MapByteStream(byte_stream)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1658, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(exception)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Unable to read: data from byte stream at offset: 260 with error: missing element: 255
[   54s] 
[   54s] ======================================================================
[   54s] ERROR: testMapByteStreamWithSequenceWithValues (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with a sequence with values.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1835, in _LinearMapByteStream
[   54s]     '{0!s}'.format(value) for value in supported_values])))
[   54s] dtfabric.errors.MappingError: Value: 33554432 not in supported values: 2, 3
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1343, in testMapByteStreamWithSequenceWithValues
[   54s]     structure_with_values = data_type_map.MapByteStream(byte_stream)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1846, in _LinearMapByteStream
[   54s]     raise errors.MappingError(error_string)
[   54s] dtfabric.errors.MappingError: Unable to read: structure_with_values from byte stream at offset: 0 with error: Value: 33554432 not in supported values: 2, 3
[   54s] 
[   54s] ======================================================================
[   54s] ERROR: testMapByteStreamWithStream (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with a stream.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1651, in _CompositeMapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, context=subcontext)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1242, in MapByteStream
[   54s]     self._CheckByteStreamSize(byte_stream, byte_offset, elements_data_size)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 170, in _CheckByteStreamSize
[   54s]     data_type_size, byte_stream_size))
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 67174396 available: 260
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1505, in testMapByteStreamWithStream
[   54s]     extension_block = data_type_map.MapByteStream(byte_stream)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1658, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(exception)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 67174396 available: 260
[   54s] 
[   54s] ======================================================================
[   54s] ERROR: testMapByteStreamWithString (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with a string.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1651, in _CompositeMapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, context=subcontext)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1431, in MapByteStream
[   54s]     byte_stream, byte_offset=byte_offset, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1242, in MapByteStream
[   54s]     self._CheckByteStreamSize(byte_stream, byte_offset, elements_data_size)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 170, in _CheckByteStreamSize
[   54s]     data_type_size, byte_stream_size))
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 4096 available: 18
[   54s] 
[   54s] During handling of the above exception, another exception occurred:
[   54s] 
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1533, in testMapByteStreamWithString
[   54s]     utf16_string = data_type_map.MapByteStream(byte_stream)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1940, in MapByteStream
[   54s]     return self._map_byte_stream(byte_stream, **kwargs)
[   54s]   File "./dtfabric/runtime/data_maps.py", line 1658, in _CompositeMapByteStream
[   54s]     raise errors.ByteStreamTooSmallError(exception)
[   54s] dtfabric.errors.ByteStreamTooSmallError: Byte stream too small requested: 4096 available: 18
[   54s] 
[   54s] ======================================================================
[   54s] FAIL: testReadFrom (runtime.byte_operations.StructOperationTest)
[   54s] Tests the ReadFrom function.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/byte_operations.py", line 33, in testReadFrom
[   54s]     self.assertEqual(value, tuple([0x78563412]))
[   54s] AssertionError: Tuples differ: (305419896,) != (2018915346,)
[   54s] 
[   54s] First differing element 0:
[   54s] 305419896
[   54s] 2018915346
[   54s] 
[   54s] - (305419896,)
[   54s] + (2018915346,)
[   54s] 
[   54s] ======================================================================
[   54s] FAIL: testWriteTo (runtime.byte_operations.StructOperationTest)
[   54s] Tests the WriteTo function.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/byte_operations.py", line 46, in testWriteTo
[   54s]     self.assertEqual(byte_stream, b'\x12\x34\x56\x78')
[   54s] AssertionError: b'xV4\x12' != b'\x124Vx'
[   54s] 
[   54s] ======================================================================
[   54s] FAIL: testGetSizeHint (runtime.data_maps.StructureMapTest)
[   54s] Tests the GetSizeHint function with a string.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1619, in testGetSizeHint
[   54s]     self.assertEqual(size_hint, 18)
[   54s] AssertionError: 4098 != 18
[   54s] 
[   54s] ======================================================================
[   54s] FAIL: testMapByteStreamWithPadding (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with padding.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1439, in testMapByteStreamWithPadding
[   54s]     self.assertEqual(structure.data_size, 256)
[   54s] AssertionError: 1 != 256
[   54s] 
[   54s] ======================================================================
[   54s] FAIL: testMapByteStreamWithSequenceWithCondition (runtime.data_maps.StructureMapTest)
[   54s] Tests the MapByteStream function with a sequence with condition.
[   54s] ----------------------------------------------------------------------
[   54s] Traceback (most recent call last):
[   54s]   File "/home/abuild/rpmbuild/BUILD/dtfabric-20200621/tests/runtime/data_maps.py", line 1305, in testMapByteStreamWithSequenceWithCondition
[   54s]     self.assertEqual(structure_with_condition.flags, 0x8001)
[   54s] AssertionError: 384 != 32769
[   54s] 
[   54s] ----------------------------------------------------------------------
[   54s] Ran 161 tests in 3.617s
[   54s] 
[   54s] FAILED (failures=5, errors=5)
[   54s] Using Python version 3.6.13 (default, Feb 19 2021, 18:59:35) [GCC]

Complete build log with all details on package versions, exact steps, etc.

joachimmetz commented 3 years ago

looks like tests are not big-endian proof, made some changes in https://github.com/libyal/dtfabric/commit/40b51143a0b956b0f28fc49b6c3f3e48b379e4bf

mcepl commented 3 years ago

Seems like working. Thank you.