X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=codec%2Fmsg_codec_test.go;fp=codec%2Fmsg_codec_test.go;h=bf0695d9f797a73f61c2e5796ba1f811b30130be;hb=94620e85f0bdbb054af07ce3670fadc1f76cfdf0;hp=cd1240e8724d93bea17ea052192ec1c73ae4fa68;hpb=280b1c6c83b676ef4e592f4ecf60cb5b54b6a753;p=govpp.git diff --git a/codec/msg_codec_test.go b/codec/msg_codec_test.go index cd1240e..bf0695d 100644 --- a/codec/msg_codec_test.go +++ b/codec/msg_codec_test.go @@ -1,10 +1,16 @@ -package codec +package codec_test import ( "bytes" "testing" + "github.com/lunixbochs/struc" + "git.fd.io/govpp.git/api" + "git.fd.io/govpp.git/codec" + "git.fd.io/govpp.git/examples/binapi/ip" + "git.fd.io/govpp.git/examples/binapi/sr" + "git.fd.io/govpp.git/examples/binapi/vpe" ) type MyMsg struct { @@ -30,15 +36,69 @@ func TestEncode(t *testing.T) { msgID uint16 expData []byte }{ - {name: "basic", + /*{name: "basic", msg: &MyMsg{Index: 1, Label: []byte("Abcdef"), Port: 1000}, msgID: 100, expData: []byte{0x00, 0x64, 0x00, 0x01, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8}, + },*/ + {name: "show version", + msg: &vpe.ShowVersion{}, + msgID: 743, + expData: []byte{0x02, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }, + {name: "ip route", + msg: &ip.IPRouteAddDel{ + IsAdd: true, + IsMultipath: true, + Route: ip.IPRoute{ + TableID: 0, + StatsIndex: 0, + Prefix: ip.Prefix{}, + NPaths: 0, + Paths: []ip.FibPath{ + { + SwIfIndex: 0, + TableID: 0, + RpfID: 0, + Weight: 0, + Preference: 0, + Type: 0, + Flags: 0, + Proto: 0, + Nh: ip.FibPathNh{}, + NLabels: 5, + LabelStack: [16]ip.FibMplsLabel{ + { + IsUniform: 1, + Label: 2, + TTL: 3, + Exp: 4, + }, + }, + }, + }, + }, + }, + msgID: 743, + expData: []byte{0x02, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, }, + /*{name: "sr", + msg: &sr.SrPolicyAdd{ + BsidAddr: sr.IP6Address{}, + Weight: 0, + IsEncap: false, + IsSpray: false, + FibTable: 0, + Sids: sr.Srv6SidList{}, + }, + msgID: 99, + expData: []byte{0x00, 0x64, 0x00, 0x01, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8}, + },*/ } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - c := &MsgCodec{} + c := &codec.MsgCodec{} + //c := &codec.NewCodec{} data, err := c.EncodeMsg(test.msg, test.msgID) if err != nil { @@ -52,7 +112,7 @@ func TestEncode(t *testing.T) { } func TestEncodePanic(t *testing.T) { - c := &MsgCodec{} + c := &codec.MsgCodec{} msg := &MyMsg{Index: 1, Label: []byte("thisIsLongerThan16Bytes"), Port: 1000} @@ -61,3 +121,16 @@ func TestEncodePanic(t *testing.T) { t.Fatalf("expected non-nil error, got: %v", err) } } + +func TestEncodeSr(t *testing.T) { + msg := sr.Srv6SidList{ + NumSids: 0, + Weight: 0, + //Sids: nil, + } + buf := new(bytes.Buffer) + + if err := struc.Pack(buf, msg); err != nil { + t.Fatal(err) + } +}