35 lines
851 B
Python
35 lines
851 B
Python
import binascii
|
|
import struct
|
|
|
|
import pytest
|
|
|
|
from ..helpers import Suite
|
|
|
|
@pytest.mark.slow_integration_test
|
|
def test_crc32():
|
|
# FIXME: Stub
|
|
# crc = 0xFFFFFFFF
|
|
# byt = 0x61
|
|
# => (crc >> 8) ^ _CRC32_Table[(crc & 0xFF) ^ byt]
|
|
# (crc >> 8) = 0x00FFFFFF
|
|
# => 0x00FFFFFF ^ _CRC32_Table[(crc & 0xFF) ^ byt]
|
|
# (crc & 0xFF) = 0xFF
|
|
# => 0x00FFFFFF ^ _CRC32_Table[0xFF ^ byt]
|
|
# 0xFF ^ 0x61 = 0x9E
|
|
# => 0x00FFFFFF ^ _CRC32_Table[0x9E]
|
|
# _CRC32_Table[0x9E] = 0x17b7be43
|
|
# => 0x00FFFFFF ^ 0x17b7be43
|
|
|
|
code_py = """
|
|
def _crc32_f(crc: u32, byt: u8) -> u32:
|
|
return 16777215 ^ 397917763
|
|
|
|
def testEntry(data: bytes) -> u32:
|
|
return 4294967295 ^ _crc32_f(4294967295, data[0])
|
|
"""
|
|
exp_result = binascii.crc32(b'a')
|
|
|
|
result = Suite(code_py).run_code(b'a')
|
|
|
|
assert exp_result == result.returned_value
|