From 72bd3fb05ef796e04e3b61015f6ffac3c1a937e3 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 16 Mar 2026 22:09:12 +0900 Subject: internal/netlink: generalise implementation from container This is useful for uevent implementation. Signed-off-by: Ophestra --- internal/netlink/netlink_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 internal/netlink/netlink_test.go (limited to 'internal/netlink/netlink_test.go') diff --git a/internal/netlink/netlink_test.go b/internal/netlink/netlink_test.go new file mode 100644 index 00000000..0926e3bd --- /dev/null +++ b/internal/netlink/netlink_test.go @@ -0,0 +1,36 @@ +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) + } + }) + } +} -- cgit v1.3.1