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) } }) } }