All checks were successful
Test / Create distribution (push) Successful in 1m2s
Test / Sandbox (push) Successful in 2m41s
Test / ShareFS (push) Successful in 3m42s
Test / Hakurei (push) Successful in 3m46s
Test / Sandbox (race detector) (push) Successful in 5m3s
Test / Hakurei (race detector) (push) Successful in 6m8s
Test / Flake checks (push) Successful in 1m23s
This is useful for uevent implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
37 lines
710 B
Go
37 lines
710 B
Go
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)
|
|
}
|
|
})
|
|
}
|
|
}
|