21 lines
890 B
Python
21 lines
890 B
Python
from src.jeb_utils.jebp_utils import unpack_fields
|
|
import pytest
|
|
|
|
@pytest.mark.parametrize('packed,expected', [
|
|
(b'', []),
|
|
(b'\x02\x00\x00', [b'']),
|
|
(b'\x01\x00', [b'']),
|
|
(b'\x01\x00\x01\x00', [b'', b'']),
|
|
(b'\x01\x00\x01\x01a', [b'', b'a']),
|
|
(b'\x01\x00\x01\x02ab', [b'', b'ab']),
|
|
(b'\x01\x01a\x01\x02ab', [b'a', b'ab']),
|
|
(b'\x01\x01a\x01\x02ab\x01\x00\x01\x0dHello, World!', [b'a', b'ab', b'', b'Hello, World!']),
|
|
(b'\x01\xff' + b'a' * 255, [b'a' * 255]),
|
|
((b'\x01\xff' + b'a' * 255) * 2, [b'a' * 255, b'a' * 255]),
|
|
(b'\x02\x01\x00' + b'a' * 256, [b'a' * 256]),
|
|
((b'\x02\x01\x00' + b'a' * 256) * 2, [b'a' * 256, b'a' * 256]),
|
|
(b'\x02\x01\x01' + b'a' * 257, [b'a' * 257]),
|
|
(b'\x02\x01\x01' + b'a' * 257 + b'\x01\x03abc', [b'a' * 257, b'abc']),
|
|
])
|
|
def test_unpack_fields(packed, expected):
|
|
assert unpack_fields(packed) == expected |