Skip to content

Instantly share code, notes, and snippets.

@toravir
Last active September 4, 2019 06:58
Show Gist options
  • Save toravir/1048b1bf59b986a6920f5e00204b68d9 to your computer and use it in GitHub Desktop.
Save toravir/1048b1bf59b986a6920f5e00204b68d9 to your computer and use it in GitHub Desktop.
VPP mock example
package main
import (
"fmt"
"github.com/FDio/govpp/adapter/mock"
"github.com/FDio/govpp"
"try1/binapi/vpe"
)
//go:generate binapi-generator --input-file=./vppApiJson/vpe.api.json --output-dir=binapi
func main () {
adap := mock.NewVppAdapter()
govpp.SetVppAdapter(adap)
conn, err := govpp.Connect("Somename")
if err != nil {
panic(err)
}
defer conn.Disconnect()
ch, err := conn.NewAPIChannel()
if err != nil {
panic(err)
}
defer ch.Close()
replyHandler := func (request mock.MessageDTO) (reply []byte, msgID uint16, ok bool) {
fmt.Println("Request:", request)
resp := &vpe.ShowVersionReply{Program : "Pgm", Version: "Vers..", BuildDate: "Date", BuildDirectory: "Dir"}
fmt.Println("Resp:", resp)
by, _ := adap.ReplyBytes(request, resp)
id, _ := conn.GetMessageID(resp)
return by, id, true
}
adap.MockReplyHandler(replyHandler)
req := &vpe.ShowVersion{}
reply := &vpe.ShowVersionReply{}
if err := ch.SendRequest(req).ReceiveReply(reply); err != nil {
fmt.Println("ERROR:", err)
} else {
//fmt.Printf("Version reply: %+v\n", reply)
fmt.Println("Program:", reply.Program)
fmt.Println("Version:", reply.Version)
fmt.Println("BuildDate:", reply.BuildDate)
fmt.Println("BuildDirectory:", reply.BuildDirectory)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment