package netlink import ( "os" "syscall" "testing" ) func init() { nlPidOnce.Do(func() {}); nlPid = 1 } type payloadTestCase struct { name string f func(c *conn) want []byte } // checkPayload runs multiple payloadTestCase against a stub conn and checks // the outgoing message written to its buffer page. func checkPayload(t *testing.T, testCases []payloadTestCase) { t.Helper() for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { t.Parallel() c := conn{ pos: syscall.NLMSG_HDRLEN, buf: make([]byte, os.Getpagesize()), } tc.f(&c) if got := c.pending(); string(got) != string(tc.want) { t.Errorf("pending: %#v, want %#v", got, tc.want) } }) } }