package ebpf import ( "testing" ) func TestBPF(t *testing.T) { var mfd MapFD const beef = 0xbeef0000 const dead = 0xdead0000 t.Run("CreateMap", func(t *testing.T) { var err error mfd, err = CreateMap() if err != nil { t.Fatal(err) } }) var count = 64 t.Run("Add", func(t *testing.T) { for i := 1; i <= count; i++ { err := mfd.Add(i, uint64(beef+i)) if err != nil { t.Fatal(err) } } }) t.Run("GetMap1", func(t *testing.T) { m, err := mfd.GetMap() if err != nil { t.Fatal(err) } else if len(m) != count { t.Fatalf("expected len(m) == %d, but got %d: %v", count, len(m), m) } for i := 1; i <= count; i++ { if v, ok := m[i]; !ok { t.Fatalf("value for index %d not found in map", i) } else if v != uint64(beef+i) { t.Fatalf("value for index %d should be %x but found %x", i, beef+i, v) } } }) t.Run("Set", func(t *testing.T) { for i := 1; i <= count; i++ { err := mfd.Set(i, uint64(dead+i)) if err != nil { t.Fatal(err) } } }) t.Run("GetMap2", func(t *testing.T) { m, err := mfd.GetMap() if err != nil { t.Fatal(err) } else if len(m) != count { t.Fatalf("expected len(m) == %d, but got %d: %v", count, len(m), m) } for i := 1; i <= count; i++ { if v, ok := m[i]; !ok { t.Fatalf("value for index %d not found in map", i) } else if v != uint64(dead+i) { t.Fatalf("value for index %d should be %x but found %x", i, dead+i, v) } } }) }