All checks were successful
Test / Create distribution (push) Successful in 47s
Test / Sandbox (push) Successful in 2m52s
Test / ShareFS (push) Successful in 4m47s
Test / Hpkg (push) Successful in 5m10s
Test / Sandbox (race detector) (push) Successful in 5m20s
Test / Hakurei (push) Successful in 5m48s
Test / Hakurei (race detector) (push) Successful in 7m39s
Test / Flake checks (push) Successful in 1m42s
This enables loopback networking when owning the net namespace. Signed-off-by: Ophestra <cat@gensokyo.uk>
73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package container
|
|
|
|
import (
|
|
"testing"
|
|
"unsafe"
|
|
)
|
|
|
|
func TestSizeof(t *testing.T) {
|
|
if got := unsafe.Sizeof(newaddrLo{}); got != sizeofNewaddrLo {
|
|
t.Fatalf("newaddrLo: sizeof = %#x, want %#x", got, sizeofNewaddrLo)
|
|
}
|
|
|
|
if got := unsafe.Sizeof(newlinkLo{}); got != sizeofNewlinkLo {
|
|
t.Fatalf("newlinkLo: sizeof = %#x, want %#x", got, sizeofNewlinkLo)
|
|
}
|
|
}
|
|
|
|
func TestRtnetlinkMessage(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
testCases := []struct {
|
|
name string
|
|
msg interface{ toWireFormat() []byte }
|
|
want []byte
|
|
}{
|
|
{"newaddrLo", (&rtnetlink{pid: 1, seq: 0}).newaddrLo(1), []byte{
|
|
/* Len */ 0x28, 0, 0, 0,
|
|
/* Type */ 0x14, 0,
|
|
/* Flags */ 5, 6,
|
|
/* Seq */ 0, 0, 0, 0,
|
|
/* Pid */ 1, 0, 0, 0,
|
|
|
|
/* Family */ 2,
|
|
/* Prefixlen */ 8,
|
|
/* Flags */ 0x80,
|
|
/* Scope */ 0xfe,
|
|
/* Index */ 1, 0, 0, 0,
|
|
|
|
/* Len */ 8, 0,
|
|
/* Type */ 2, 0,
|
|
/* in_addr */ 127, 0, 0, 1,
|
|
|
|
/* Len */ 8, 0,
|
|
/* Type */ 1, 0,
|
|
/* in_addr */ 127, 0, 0, 1,
|
|
}},
|
|
|
|
{"newlinkLo", (&rtnetlink{pid: 1, seq: 1}).newlinkLo(1), []byte{
|
|
/* Len */ 0x20, 0, 0, 0,
|
|
/* Type */ 0x10, 0,
|
|
/* Flags */ 5, 0,
|
|
/* Seq */ 1, 0, 0, 0,
|
|
/* Pid */ 1, 0, 0, 0,
|
|
|
|
/* Family */ 0,
|
|
/* pad */ 0,
|
|
/* Type */ 0, 0,
|
|
/* Index */ 1, 0, 0, 0,
|
|
/* Flags */ 1, 0, 0, 0,
|
|
/* Change */ 1, 0, 0, 0,
|
|
}},
|
|
}
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
if got := tc.msg.toWireFormat(); string(got) != string(tc.want) {
|
|
t.Fatalf("toWireFormat: %#v, want %#v", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|