X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=cmd%2Fbinapi-generator%2Fgenerate_test.go;h=bac5b51e060c4e10334ae9fcb1e671aa8c8154b8;hb=3ef6f210edcf7dd753733d46ec3f2dd5dc795b61;hp=c1181f079751e6aefe664aab58679cfee6805b37;hpb=a3bb834db727a3ac9a1ffcfeae9265e5dead851f;p=govpp.git diff --git a/cmd/binapi-generator/generate_test.go b/cmd/binapi-generator/generate_test.go index c1181f0..bac5b51 100644 --- a/cmd/binapi-generator/generate_test.go +++ b/cmd/binapi-generator/generate_test.go @@ -15,6 +15,7 @@ package main import ( + "bufio" "os" "testing" @@ -25,7 +26,7 @@ func TestGetInputFiles(t *testing.T) { RegisterTestingT(t) result, err := getInputFiles("testdata") Expect(err).ShouldNot(HaveOccurred()) - Expect(result).To(HaveLen(5)) + Expect(result).To(HaveLen(3)) for _, file := range result { Expect(file).To(BeAnExistingFile()) } @@ -45,10 +46,10 @@ func TestGenerateFromFile(t *testing.T) { defer os.RemoveAll(outDir) err := generateFromFile("testdata/acl.api.json", outDir) Expect(err).ShouldNot(HaveOccurred()) - fileInfo, err := os.Stat(outDir + "/acl/acl.go") + fileInfo, err := os.Stat(outDir + "/acl/acl.ba.go") Expect(err).ShouldNot(HaveOccurred()) Expect(fileInfo.IsDir()).To(BeFalse()) - Expect(fileInfo.Name()).To(BeEquivalentTo("acl.go")) + Expect(fileInfo.Name()).To(BeEquivalentTo("acl.ba.go")) } func TestGenerateFromFileInputError(t *testing.T) { @@ -56,7 +57,7 @@ func TestGenerateFromFileInputError(t *testing.T) { outDir := "test_output_directory" err := generateFromFile("testdata/nonexisting.json", outDir) Expect(err).Should(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("reading data from file failed")) + Expect(err.Error()).To(ContainSubstring("invalid input file name")) } func TestGenerateFromFileReadJsonError(t *testing.T) { @@ -64,7 +65,7 @@ func TestGenerateFromFileReadJsonError(t *testing.T) { outDir := "test_output_directory" err := generateFromFile("testdata/input-read-json-error.json", outDir) Expect(err).Should(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("JSON unmarshall failed")) + Expect(err.Error()).To(ContainSubstring("invalid input file name")) } func TestGenerateFromFileGeneratePackageError(t *testing.T) { @@ -87,7 +88,7 @@ func TestGetContext(t *testing.T) { result, err := getContext("testdata/af_packet.api.json", outDir) Expect(err).ShouldNot(HaveOccurred()) Expect(result).ToNot(BeNil()) - Expect(result.outputFile).To(BeEquivalentTo(outDir + "/af_packet/af_packet.go")) + Expect(result.outputFile).To(BeEquivalentTo(outDir + "/af_packet/af_packet.ba.go")) } func TestGetContextNoJsonFile(t *testing.T) { @@ -102,12 +103,11 @@ func TestGetContextNoJsonFile(t *testing.T) { func TestGetContextInterfaceJson(t *testing.T) { RegisterTestingT(t) outDir := "test_output_directory" - result, err := getContext("testdata/interface.json", outDir) + result, err := getContext("testdata/ip.api.json", outDir) Expect(err).ShouldNot(HaveOccurred()) Expect(result).ToNot(BeNil()) Expect(result.outputFile) - Expect(result.outputFile).To(BeEquivalentTo(outDir + "/interfaces/interfaces.go")) - + Expect(result.outputFile).To(BeEquivalentTo(outDir + "/ip/ip.ba.go")) } func TestReadJson(t *testing.T) { @@ -129,7 +129,6 @@ func TestReadJsonError(t *testing.T) { Expect(result).To(BeNil()) } -/* func TestGeneratePackage(t *testing.T) { RegisterTestingT(t) // prepare context @@ -139,10 +138,13 @@ func TestGeneratePackage(t *testing.T) { // prepare input/output output files inputData, err := readFile("testdata/ip.api.json") Expect(err).ShouldNot(HaveOccurred()) - testCtx.inputBuff = bytes.NewBuffer(inputData) - inFile, _ := parseJSON(inputData) + jsonRoot, err := parseJSON(inputData) + Expect(err).ShouldNot(HaveOccurred()) + testCtx.packageData, err = parsePackage(testCtx, jsonRoot) + Expect(err).ShouldNot(HaveOccurred()) outDir := "test_output_directory" - outFile, _ := os.Create(outDir) + outFile, err := os.Create(outDir) + Expect(err).ShouldNot(HaveOccurred()) defer os.RemoveAll(outDir) // prepare writer @@ -152,7 +154,6 @@ func TestGeneratePackage(t *testing.T) { Expect(err).ShouldNot(HaveOccurred()) } - func TestGenerateMessageType(t *testing.T) { RegisterTestingT(t) // prepare context @@ -162,32 +163,25 @@ func TestGenerateMessageType(t *testing.T) { // prepare input/output output files inputData, err := readFile("testdata/ip.api.json") Expect(err).ShouldNot(HaveOccurred()) - testCtx.inputBuff = bytes.NewBuffer(inputData) - inFile, _ := parseJSON(inputData) + jsonRoot, err := parseJSON(inputData) + Expect(err).ShouldNot(HaveOccurred()) outDir := "test_output_directory" - outFile, _ := os.Create(outDir) + outFile, err := os.Create(outDir) + Expect(err).ShouldNot(HaveOccurred()) + testCtx.packageData, err = parsePackage(testCtx, jsonRoot) + Expect(err).ShouldNot(HaveOccurred()) defer os.RemoveAll(outDir) // prepare writer writer := bufio.NewWriter(outFile) - types := inFile.Map("types") - testCtx.types = map[string]string{ - "u32": "sw_if_index", - "u8": "weight", - } - Expect(types.Len()).To(BeEquivalentTo(1)) - for i := 0; i < types.Len(); i++ { - typ := types.At(i) - Expect(writer.Buffered()).To(BeZero()) - err := generateMessage(testCtx, writer, typ, true) - Expect(err).ShouldNot(HaveOccurred()) + for _, msg := range testCtx.packageData.Messages { + generateMessage(testCtx, writer, &msg) Expect(writer.Buffered()).ToNot(BeZero()) - } } -func TestGenerateMessageName(t *testing.T) { +/*func TestGenerateMessageName(t *testing.T) { RegisterTestingT(t) // prepare context testCtx := new(context)