Fix unit tests 93/20993/1
authorOndrej Fabry <ofabry@cisco.com>
Thu, 1 Aug 2019 04:19:33 +0000 (06:19 +0200)
committerOndrej Fabry <ofabry@cisco.com>
Thu, 1 Aug 2019 04:19:33 +0000 (06:19 +0200)
Change-Id: I49e0ec8420cf2563b77ec2b5a9cf9674286d5e5d
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
cmd/binapi-generator/generate_test.go
cmd/binapi-generator/main.go
core/channel_test.go

index e68b54a..bff5406 100644 (file)
@@ -16,6 +16,7 @@ package main
 
 import (
        "bufio"
+       "io/ioutil"
        "os"
        "testing"
 
@@ -24,7 +25,7 @@ import (
 
 func TestGetInputFiles(t *testing.T) {
        RegisterTestingT(t)
-       result, err := getInputFiles("testdata")
+       result, err := getInputFiles("testdata", 1)
        Expect(err).ShouldNot(HaveOccurred())
        Expect(result).To(HaveLen(3))
        for _, file := range result {
@@ -34,7 +35,7 @@ func TestGetInputFiles(t *testing.T) {
 
 func TestGetInputFilesError(t *testing.T) {
        RegisterTestingT(t)
-       result, err := getInputFiles("nonexisting_directory")
+       result, err := getInputFiles("nonexisting_directory", 1)
        Expect(err).Should(HaveOccurred())
        Expect(result).To(BeNil())
 }
@@ -112,9 +113,9 @@ func TestGetContextInterfaceJson(t *testing.T) {
 
 func TestReadJson(t *testing.T) {
        RegisterTestingT(t)
-       inputData, err := readFile("testdata/af_packet.api.json")
+       inputData, err := ioutil.ReadFile("testdata/af_packet.api.json")
        Expect(err).ShouldNot(HaveOccurred())
-       result, err := parseJSON(inputData)
+       result, err := parseInputJSON(inputData)
        Expect(err).ShouldNot(HaveOccurred())
        Expect(result).ToNot(BeNil())
        Expect(result.Len()).To(BeEquivalentTo(5))
@@ -122,9 +123,9 @@ func TestReadJson(t *testing.T) {
 
 func TestReadJsonError(t *testing.T) {
        RegisterTestingT(t)
-       inputData, err := readFile("testdata/input-read-json-error.json")
+       inputData, err := ioutil.ReadFile("testdata/input-read-json-error.json")
        Expect(err).ShouldNot(HaveOccurred())
-       result, err := parseJSON(inputData)
+       result, err := parseInputJSON(inputData)
        Expect(err).Should(HaveOccurred())
        Expect(result).To(BeNil())
 }
@@ -136,9 +137,9 @@ func TestGeneratePackage(t *testing.T) {
        testCtx.packageName = "test-package-name"
 
        // prepare input/output output files
-       inputData, err := readFile("testdata/ip.api.json")
+       inputData, err := ioutil.ReadFile("testdata/ip.api.json")
        Expect(err).ShouldNot(HaveOccurred())
-       jsonRoot, err := parseJSON(inputData)
+       jsonRoot, err := parseInputJSON(inputData)
        Expect(err).ShouldNot(HaveOccurred())
        testCtx.packageData, err = parsePackage(testCtx, jsonRoot)
        Expect(err).ShouldNot(HaveOccurred())
@@ -161,9 +162,9 @@ func TestGenerateMessageType(t *testing.T) {
        testCtx.packageName = "test-package-name"
 
        // prepare input/output output files
-       inputData, err := readFile("testdata/ip.api.json")
+       inputData, err := ioutil.ReadFile("testdata/ip.api.json")
        Expect(err).ShouldNot(HaveOccurred())
-       jsonRoot, err := parseJSON(inputData)
+       jsonRoot, err := parseInputJSON(inputData)
        Expect(err).ShouldNot(HaveOccurred())
        outDir := "test_output_directory"
        outFile, err := os.Create(outDir)
index 89a2b2d..d46001d 100644 (file)
@@ -116,6 +116,14 @@ func getInputFiles(inputDir string, deep int) (files []string, err error) {
        return files, nil
 }
 
+func parseInputJSON(inputData []byte) (*jsongo.JSONNode, error) {
+       jsonRoot := new(jsongo.JSONNode)
+       if err := json.Unmarshal(inputData, jsonRoot); err != nil {
+               return nil, fmt.Errorf("unmarshalling JSON failed: %v", err)
+       }
+       return jsonRoot, nil
+}
+
 // generateFromFile generates Go package from one input JSON file
 func generateFromFile(inputFile, outputDir string) error {
        // create generator context
@@ -142,9 +150,9 @@ func generateFromFile(inputFile, outputDir string) error {
                return fmt.Errorf("reading input file %s failed: %v", ctx.inputFile, err)
        }
        // parse JSON data into objects
-       jsonRoot := new(jsongo.JSONNode)
-       if err := json.Unmarshal(ctx.inputData, jsonRoot); err != nil {
-               return fmt.Errorf("unmarshalling JSON failed: %v", err)
+       jsonRoot, err := parseInputJSON(ctx.inputData)
+       if err != nil {
+               return fmt.Errorf("parsing JSON input failed: %v", err)
        }
        ctx.packageData, err = parsePackage(ctx, jsonRoot)
        if err != nil {
index ba761b3..7e721cd 100644 (file)
@@ -18,14 +18,13 @@ import (
        "testing"
        "time"
 
+       . "github.com/onsi/gomega"
+
        "git.fd.io/govpp.git/adapter/mock"
+       "git.fd.io/govpp.git/api"
        "git.fd.io/govpp.git/examples/binapi/interfaces"
        "git.fd.io/govpp.git/examples/binapi/memif"
-       "git.fd.io/govpp.git/examples/binapi/tap"
        "git.fd.io/govpp.git/examples/binapi/vpe"
-
-       "git.fd.io/govpp.git/api"
-       . "github.com/onsi/gomega"
 )
 
 type testCtx struct {
@@ -56,93 +55,6 @@ func (ctx *testCtx) teardownTest() {
        ctx.conn.Disconnect()
 }
 
-func TestRequestReplyTapConnect(t *testing.T) {
-       ctx := setupTest(t)
-       defer ctx.teardownTest()
-
-       // mock reply
-       ctx.mockVpp.MockReply(&tap.TapConnectReply{
-               SwIfIndex: 1,
-       })
-
-       request := &tap.TapConnect{
-               TapName:      []byte("test-tap-name"),
-               UseRandomMac: 1,
-       }
-       reply := &tap.TapConnectReply{}
-
-       err := ctx.ch.SendRequest(request).ReceiveReply(reply)
-       Expect(err).ShouldNot(HaveOccurred())
-       Expect(reply.Retval).To(BeEquivalentTo(0),
-               "Incorrect Retval value for TapConnectReply")
-       Expect(reply.SwIfIndex).To(BeEquivalentTo(1),
-               "Incorrect SwIfIndex value for TapConnectReply")
-}
-
-func TestRequestReplyTapModify(t *testing.T) {
-       ctx := setupTest(t)
-       defer ctx.teardownTest()
-
-       // mock reply
-       ctx.mockVpp.MockReply(&tap.TapModifyReply{
-               SwIfIndex: 2,
-       })
-
-       request := &tap.TapModify{
-               TapName:           []byte("test-tap-modify"),
-               UseRandomMac:      1,
-               CustomDevInstance: 1,
-       }
-       reply := &tap.TapModifyReply{}
-
-       err := ctx.ch.SendRequest(request).ReceiveReply(reply)
-       Expect(err).ShouldNot(HaveOccurred())
-       Expect(reply.Retval).To(BeEquivalentTo(0),
-               "Incorrect Retval value for TapModifyReply")
-       Expect(reply.SwIfIndex).To(BeEquivalentTo(2),
-               "Incorrect SwIfIndex value for TapModifyReply")
-}
-
-func TestRequestReplyTapDelete(t *testing.T) {
-       ctx := setupTest(t)
-       defer ctx.teardownTest()
-
-       // mock reply
-       ctx.mockVpp.MockReply(&tap.TapDeleteReply{})
-
-       request := &tap.TapDelete{
-               SwIfIndex: 3,
-       }
-       reply := &tap.TapDeleteReply{}
-
-       err := ctx.ch.SendRequest(request).ReceiveReply(reply)
-       Expect(err).ShouldNot(HaveOccurred())
-       Expect(reply.Retval).To(BeEquivalentTo(0),
-               "Incorrect Retval value for TapDeleteReply")
-}
-
-func TestRequestReplySwInterfaceTapDump(t *testing.T) {
-       ctx := setupTest(t)
-       defer ctx.teardownTest()
-
-       // mock reply
-       byteName := []byte("dev-name-test")
-       ctx.mockVpp.MockReply(&tap.SwInterfaceTapDetails{
-               SwIfIndex: 25,
-               DevName:   byteName,
-       })
-
-       request := &tap.SwInterfaceTapDump{}
-       reply := &tap.SwInterfaceTapDetails{}
-
-       err := ctx.ch.SendRequest(request).ReceiveReply(reply)
-       Expect(err).ShouldNot(HaveOccurred())
-       Expect(reply.SwIfIndex).To(BeEquivalentTo(25),
-               "Incorrect SwIfIndex value for SwInterfaceTapDetails")
-       Expect(reply.DevName).ToNot(BeEquivalentTo(byteName),
-               "Incorrect DevName value for SwInterfaceTapDetails")
-}
-
 func TestRequestReplyMemifCreate(t *testing.T) {
        ctx := setupTest(t)
        defer ctx.teardownTest()
@@ -208,35 +120,6 @@ func TestRequestReplyMemifDetails(t *testing.T) {
                "Incorrect Role value for MemifDetails")
 }
 
-func TestMultiRequestReplySwInterfaceTapDump(t *testing.T) {
-       ctx := setupTest(t)
-       defer ctx.teardownTest()
-
-       // mock reply
-       var msgs []api.Message
-       for i := 1; i <= 10; i++ {
-               msgs = append(msgs, &tap.SwInterfaceTapDetails{
-                       SwIfIndex: uint32(i),
-                       DevName:   []byte("dev-name-test"),
-               })
-       }
-       ctx.mockVpp.MockReply(msgs...)
-       ctx.mockVpp.MockReply(&ControlPingReply{})
-
-       reqCtx := ctx.ch.SendMultiRequest(&tap.SwInterfaceTapDump{})
-       cnt := 0
-       for {
-               msg := &tap.SwInterfaceTapDetails{}
-               stop, err := reqCtx.ReceiveReply(msg)
-               if stop {
-                       break
-               }
-               Expect(err).ShouldNot(HaveOccurred())
-               cnt++
-       }
-       Expect(cnt).To(BeEquivalentTo(10))
-}
-
 func TestMultiRequestReplySwInterfaceMemifDump(t *testing.T) {
        ctx := setupTest(t)
        defer ctx.teardownTest()
@@ -479,16 +362,16 @@ func TestReceiveReplyAfterTimeout(t *testing.T) {
                },
                // normal reply for next request
                mock.MsgWithContext{
-                       Msg:    &tap.TapConnectReply{},
+                       Msg:    &interfaces.SwInterfaceSetFlagsReply{},
                        SeqNum: 3,
                },
        )
 
-       req := &tap.TapConnect{
-               TapName:      []byte("test-tap-name"),
-               UseRandomMac: 1,
+       req := &interfaces.SwInterfaceSetFlags{
+               SwIfIndex:   1,
+               AdminUpDown: 1,
        }
-       reply := &tap.TapConnectReply{}
+       reply := &interfaces.SwInterfaceSetFlagsReply{}
 
        // should succeed
        err = ctx.ch.SendRequest(req).ReceiveReply(reply)
@@ -554,13 +437,13 @@ func TestReceiveReplyAfterTimeoutMultiRequest(t *testing.T) {
        ctx.mockVpp.MockReplyWithContext(msgs...)
 
        // normal reply for next request
-       ctx.mockVpp.MockReplyWithContext(mock.MsgWithContext{Msg: &tap.TapConnectReply{}, SeqNum: 3})
+       ctx.mockVpp.MockReplyWithContext(mock.MsgWithContext{Msg: &interfaces.SwInterfaceSetFlagsReply{}, SeqNum: 3})
 
-       req := &tap.TapConnect{
-               TapName:      []byte("test-tap-name"),
-               UseRandomMac: 1,
+       req := &interfaces.SwInterfaceSetFlags{
+               SwIfIndex:   1,
+               AdminUpDown: 1,
        }
-       reply := &tap.TapConnectReply{}
+       reply := &interfaces.SwInterfaceSetFlagsReply{}
 
        // should succeed
        err = ctx.ch.SendRequest(req).ReceiveReply(reply)