MCPcopy Create free account
hub / github.com/encodeous/nylon / Fuzz_handleGRO

Function Fuzz_handleGRO

polyamide/tun/offload_linux_test.go:276–308  ·  view source on GitHub ↗
(f *testing.F)

Source from the content-addressed store, hash-verified

274}
275
276func Fuzz_handleGRO(f *testing.F) {
277 pkt0 := tcp4Packet(ip4PortA, ip4PortB, header.TCPFlagAck, 100, 1)
278 pkt1 := tcp4Packet(ip4PortA, ip4PortB, header.TCPFlagAck, 100, 101)
279 pkt2 := tcp4Packet(ip4PortA, ip4PortC, header.TCPFlagAck, 100, 201)
280 pkt3 := tcp6Packet(ip6PortA, ip6PortB, header.TCPFlagAck, 100, 1)
281 pkt4 := tcp6Packet(ip6PortA, ip6PortB, header.TCPFlagAck, 100, 101)
282 pkt5 := tcp6Packet(ip6PortA, ip6PortC, header.TCPFlagAck, 100, 201)
283 pkt6 := udp4Packet(ip4PortA, ip4PortB, 100)
284 pkt7 := udp4Packet(ip4PortA, ip4PortB, 100)
285 pkt8 := udp4Packet(ip4PortA, ip4PortC, 100)
286 pkt9 := udp6Packet(ip6PortA, ip6PortB, 100)
287 pkt10 := udp6Packet(ip6PortA, ip6PortB, 100)
288 pkt11 := udp6Packet(ip6PortA, ip6PortC, 100)
289 f.Add(pkt0, pkt1, pkt2, pkt3, pkt4, pkt5, pkt6, pkt7, pkt8, pkt9, pkt10, pkt11, true, offset)
290 f.Fuzz(func(t *testing.T, pkt0, pkt1, pkt2, pkt3, pkt4, pkt5, pkt6, pkt7, pkt8, pkt9, pkt10, pkt11 []byte, canUDPGRO bool, offset int) {
291 pkts := [][]byte{pkt0, pkt1, pkt2, pkt3, pkt4, pkt5, pkt6, pkt7, pkt8, pkt9, pkt10, pkt11}
292 toWrite := make([]int, 0, len(pkts))
293 handleGRO(pkts, offset, newTCPGROTable(), newUDPGROTable(), canUDPGRO, &toWrite)
294 if len(toWrite) > len(pkts) {
295 t.Errorf("len(toWrite): %d > len(pkts): %d", len(toWrite), len(pkts))
296 }
297 seenWriteI := make(map[int]bool)
298 for _, writeI := range toWrite {
299 if writeI < 0 || writeI > len(pkts)-1 {
300 t.Errorf("toWrite value (%d) outside bounds of len(pkts): %d", writeI, len(pkts))
301 }
302 if seenWriteI[writeI] {
303 t.Errorf("duplicate toWrite value: %d", writeI)
304 }
305 seenWriteI[writeI] = true
306 }
307 })
308}
309
310func Test_handleGRO(t *testing.T) {
311 tests := []struct {

Callers

nothing calls this directly

Calls 7

tcp4PacketFunction · 0.85
tcp6PacketFunction · 0.85
udp4PacketFunction · 0.85
udp6PacketFunction · 0.85
handleGROFunction · 0.85
newTCPGROTableFunction · 0.85
newUDPGROTableFunction · 0.85

Tested by

no test coverage detected