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))