. "github.com/onsi/gomega"
+ "git.fd.io/govpp.git/binapi/ip_types"
"git.fd.io/govpp.git/binapigen/vppapi"
)
-const testOutputDir = "test_output_directory"
+const testOutputDir = "test_output_dir"
-func GenerateFromFile(file, outputDir string, opts Options) error {
+func GenerateFromFile(file string, opts Options) error {
apifile, err := vppapi.ParseFile(file)
if err != nil {
return err
}
-
- g, err := New(opts, []*vppapi.File{apifile})
+ gen, err := New(opts, []*vppapi.File{apifile}, nil)
if err != nil {
return err
}
- for _, file := range g.Files {
+ for _, file := range gen.Files {
if !file.Generate {
continue
}
- GenerateBinapi(g, file, outputDir)
- if file.Service != nil {
- GenerateRPC(g, file, outputDir)
- }
+ GenerateAPI(gen, file)
}
-
- if err = g.Generate(); err != nil {
+ if err = gen.Generate(); err != nil {
return err
}
-
return nil
}
-func TestGenerateFromFile(t *testing.T) {
+func TestGenerateFromFileACL(t *testing.T) {
RegisterTestingT(t)
// remove directory created during test
defer os.RemoveAll(testOutputDir)
- err := GenerateFromFile("vppapi/testdata/acl.api.json", testOutputDir, Options{FilesToGenerate: []string{"acl"}})
+ opts := Options{OutputDir: testOutputDir}
+ err := GenerateFromFile("vppapi/testdata/acl.api.json", opts)
Expect(err).ShouldNot(HaveOccurred())
fileInfo, err := os.Stat(testOutputDir + "/acl/acl.ba.go")
Expect(err).ShouldNot(HaveOccurred())
Expect(fileInfo.Name()).To(BeEquivalentTo("acl.ba.go"))
}
+func TestGenerateFromFileIP(t *testing.T) {
+ RegisterTestingT(t)
+
+ // remove directory created during test
+ defer os.RemoveAll(testOutputDir)
+
+ opts := Options{OutputDir: testOutputDir}
+ err := GenerateFromFile("vppapi/testdata/ip.api.json", opts)
+ Expect(err).ShouldNot(HaveOccurred())
+ fileInfo, err := os.Stat(testOutputDir + "/ip/ip.ba.go")
+ Expect(err).ShouldNot(HaveOccurred())
+ Expect(fileInfo.IsDir()).To(BeFalse())
+ Expect(fileInfo.Name()).To(BeEquivalentTo("ip.ba.go"))
+}
+
func TestGenerateFromFileInputError(t *testing.T) {
RegisterTestingT(t)
- err := GenerateFromFile("vppapi/testdata/nonexisting.json", testOutputDir, Options{})
+ opts := Options{OutputDir: testOutputDir}
+ err := GenerateFromFile("vppapi/testdata/nonexisting.json", opts)
Expect(err).Should(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("unsupported"))
}
func TestGenerateFromFileReadJsonError(t *testing.T) {
RegisterTestingT(t)
- err := GenerateFromFile("vppapi/testdata/input-read-json-error.json", testOutputDir, Options{})
+ opts := Options{OutputDir: testOutputDir}
+ err := GenerateFromFile("vppapi/testdata/input-read-json-error.json", opts)
Expect(err).Should(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("unsupported"))
}
os.RemoveAll(testOutputDir)
}()
- err := GenerateFromFile("vppapi/testdata/input-generate-error.json", testOutputDir, Options{})
+ opts := Options{OutputDir: testOutputDir}
+ err := GenerateFromFile("vppapi/testdata/input-generate-error.json", opts)
Expect(err).Should(HaveOccurred())
}
+func TestAddress(t *testing.T) {
+ RegisterTestingT(t)
+
+ addr := ip_types.AddressUnionIP4(ip_types.IP4Address{10, 20, 0, 1})
+ t.Logf("addr: %v (%#v)", addr, addr)
+
+ ip4 := addr.GetIP4()
+ t.Logf("ip4: %v", ip4)
+ addr.SetIP4(ip_types.IP4Address{192, 168, 1, 1})
+ t.Logf("ip4: %v", addr.GetIP4())
+
+ Expect(addr.GetIP4()).To(Equal(ip_types.IP4Address{192, 168, 1, 1}))
+}
+
/*func TestGetContext(t *testing.T) {
RegisterTestingT(t)
outDir := "test_output_directory"
// prepare writer
writer := bufio.NewWriter(outFile)
Expect(writer.Buffered()).To(BeZero())
- err = generateFileBinapi(testCtx, writer)
+ err = GenerateFileBinapi(testCtx, writer)
Expect(err).ShouldNot(HaveOccurred())
}
writer := bufio.NewWriter(outFile)
for _, msg := range testCtx.file.Messages {
- generateMessage(testCtx, writer, &msg)
+ genMessage(testCtx, writer, &msg)
Expect(writer.Buffered()).ToNot(BeZero())
}
}*/
for i := 0; i < types.Len(); i++ {
typ := types.At(i)
Expect(writer.Buffered()).To(BeZero())
- err := generateMessage(testCtx, writer, typ, false)
+ err := genMessage(testCtx, writer, typ, false)
Expect(err).ShouldNot(HaveOccurred())
Expect(writer.Buffered()).ToNot(BeZero())
// prepare writer
writer := bufio.NewWriter(outFile)
Expect(writer.Buffered()).To(BeZero())
- generatePackageHeader(testCtx, writer, inFile)
+ genPackageComment(testCtx, writer, inFile)
Expect(writer.Buffered()).ToNot(BeZero())
}