29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
from target_simulator.core.sfp_transport import SfpTransport
|
|
from target_simulator.core.sfp_structures import SFPHeader
|
|
|
|
|
|
def test_small_packet_ignored():
|
|
s = SfpTransport("127.0.0.1", 0, {})
|
|
# pass empty data
|
|
s._process_packet(b"", ("1.2.3.4", 1000))
|
|
|
|
|
|
def test_bad_header_handled(monkeypatch):
|
|
s = SfpTransport("127.0.0.1", 0, {})
|
|
# craft short data smaller than header
|
|
s._process_packet(b"123", ("1.2.3.4", 1000))
|
|
|
|
|
|
def test_buffer_overflow_logged():
|
|
s = SfpTransport("127.0.0.1", 0, {})
|
|
# Build a header with tiny total_size but offset/pl_size that would overflow
|
|
hdr = bytearray(SFPHeader.size())
|
|
hdr[SFPHeader.get_field_offset("SFP_FLOW")] = ord("M")
|
|
hdr[SFPHeader.get_field_offset("SFP_TID")] = 1
|
|
hdr[SFPHeader.get_field_offset("SFP_TOTFRGAS")] = 1
|
|
hdr[SFPHeader.get_field_offset("SFP_TOTSIZE")] = 1
|
|
hdr[SFPHeader.get_field_offset("SFP_PLSIZE")] = 10
|
|
hdr[SFPHeader.get_field_offset("SFP_PLOFFSET")] = 0
|
|
data = bytes(hdr) + b"1234567890"
|
|
s._process_packet(data, ("1.2.3.4", 1000))
|