X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=cmd%2Fbinapi-generator%2Fgenerate_test.go;h=4bec874a092be6c18da071a06d2d71c4a6e913f5;hb=d4d3b9c6fa67fe454f8d8adc7502b3b645ecab10;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..4bec874 100644 --- a/cmd/binapi-generator/generate_test.go +++ b/cmd/binapi-generator/generate_test.go @@ -15,6 +15,8 @@ package main import ( + "bufio" + "io/ioutil" "os" "testing" @@ -23,9 +25,9 @@ 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(5)) + Expect(result).To(HaveLen(3)) for _, file := range result { Expect(file).To(BeAnExistingFile()) } @@ -33,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()) } @@ -43,28 +45,28 @@ func TestGenerateFromFile(t *testing.T) { outDir := "test_output_directory" // remove directory created during test defer os.RemoveAll(outDir) - err := generateFromFile("testdata/acl.api.json", outDir) + err := generateFromFile("testdata/acl.api.json", outDir, nil) 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) { RegisterTestingT(t) outDir := "test_output_directory" - err := generateFromFile("testdata/nonexisting.json", outDir) + err := generateFromFile("testdata/nonexisting.json", outDir, nil) 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) { RegisterTestingT(t) outDir := "test_output_directory" - err := generateFromFile("testdata/input-read-json-error.json", outDir) + err := generateFromFile("testdata/input-read-json-error.json", outDir, nil) 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) { @@ -77,23 +79,23 @@ func TestGenerateFromFileGeneratePackageError(t *testing.T) { } os.RemoveAll(outDir) }() - err := generateFromFile("testdata/input-generate-error.json", outDir) + err := generateFromFile("testdata/input-generate-error.json", outDir, nil) Expect(err).Should(HaveOccurred()) } func TestGetContext(t *testing.T) { RegisterTestingT(t) outDir := "test_output_directory" - result, err := getContext("testdata/af_packet.api.json", outDir) + result, err := newContext("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) { RegisterTestingT(t) outDir := "test_output_directory" - result, err := getContext("testdata/input.txt", outDir) + result, err := newContext("testdata/input.txt", outDir) Expect(err).Should(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("invalid input file name")) Expect(result).To(BeNil()) @@ -102,19 +104,18 @@ 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 := newContext("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) { 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,14 +123,13 @@ 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()) } -/* func TestGeneratePackage(t *testing.T) { RegisterTestingT(t) // prepare context @@ -137,12 +137,15 @@ 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 := parseInputJSON(inputData) + Expect(err).ShouldNot(HaveOccurred()) + testCtx.packageData, err = parsePackage(testCtx, jsonRoot) Expect(err).ShouldNot(HaveOccurred()) - testCtx.inputBuff = bytes.NewBuffer(inputData) - inFile, _ := parseJSON(inputData) 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 +155,6 @@ func TestGeneratePackage(t *testing.T) { Expect(err).ShouldNot(HaveOccurred()) } - func TestGenerateMessageType(t *testing.T) { RegisterTestingT(t) // prepare context @@ -160,34 +162,27 @@ 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 := parseInputJSON(inputData) Expect(err).ShouldNot(HaveOccurred()) - testCtx.inputBuff = bytes.NewBuffer(inputData) - inFile, _ := parseJSON(inputData) 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)