diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-03-16 22:09:12 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-03-16 23:07:51 +0900 |
| commit | 72bd3fb05ef796e04e3b61015f6ffac3c1a937e3 (patch) | |
| tree | 1c842839af26daf68e7aa68d17b492835900594a /internal/netlink/netlink_test.go | |
| parent | 59c66747dfb6647b28610ee13b122b1a927de08d (diff) | |
internal/netlink: generalise implementation from container
This is useful for uevent implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/netlink/netlink_test.go')
| -rw-r--r-- | internal/netlink/netlink_test.go | 36 |
1 files changed, 36 insertions, 0 deletions
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) + } + }) + } +} |
