github.com/kubeshark/ebpf@v0.9.2/link/program_test.go (about) 1 package link 2 3 import ( 4 "testing" 5 6 "github.com/kubeshark/ebpf" 7 "github.com/kubeshark/ebpf/internal/testutils" 8 ) 9 10 func TestProgramAlter(t *testing.T) { 11 testutils.SkipOnOldKernel(t, "4.13", "SkSKB type") 12 13 prog := mustLoadProgram(t, ebpf.SkSKB, 0, "") 14 15 var sockMap *ebpf.Map 16 sockMap, err := ebpf.NewMap(&ebpf.MapSpec{ 17 Type: ebpf.MapType(15), // BPF_MAP_TYPE_SOCKMAP 18 KeySize: 4, 19 ValueSize: 4, 20 MaxEntries: 2, 21 }) 22 if err != nil { 23 t.Fatal(err) 24 } 25 defer sockMap.Close() 26 27 err = RawAttachProgram(RawAttachProgramOptions{ 28 Target: sockMap.FD(), 29 Program: prog, 30 Attach: ebpf.AttachSkSKBStreamParser, 31 }) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 err = RawDetachProgram(RawDetachProgramOptions{ 37 Target: sockMap.FD(), 38 Program: prog, 39 Attach: ebpf.AttachSkSKBStreamParser, 40 }) 41 if err != nil { 42 t.Fatal(err) 43 } 44 }