Skip to content

Commit

Permalink
added
Browse files Browse the repository at this point in the history
  • Loading branch information
mirshahriar committed Apr 25, 2018
1 parent 45af9bb commit a6e81f9
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 12 deletions.
24 changes: 15 additions & 9 deletions cmd/protoc-gen-orm/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,43 @@ import (
)

func main() {

reg := descriptor.NewRegistry()

req, err := generator.ParseRequest(os.Stdin)
if err != nil {
glog.Fatal(err)
}

out, err := generate(req)
if err != nil {
emitError(err)
}

emitFiles(out)
}

func generate(req *plugin.CodeGeneratorRequest) ([]*plugin.CodeGeneratorResponse_File, error) {
var err error
reg := descriptor.NewRegistry()
g := generator.New(reg)

if err = reg.Load(req); err != nil {
emitError(err)
return
return nil, err
}

var targets []*descriptor.File
for _, target := range req.FileToGenerate {
var f *descriptor.File
if f, err = reg.LookupFile(target); err != nil {
glog.Fatal(err)
return nil, err
}
targets = append(targets, f)
}

out, err := g.Generate(targets)
glog.V(1).Info("Processed code generator request")
if err != nil {
emitError(err)
return
return nil, err
}
emitFiles(out)
return out, nil
}

func emitFiles(out []*plugin.CodeGeneratorResponse_File) {
Expand Down
23 changes: 20 additions & 3 deletions cmd/protoc-gen-orm/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,26 @@ package main
import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/golang/protobuf/proto"
plugin "github.com/golang/protobuf/protoc-gen-go/plugin"
)

func TestMainNotNil(t *testing.T) {
assert.NotNil(t, main)
func TestGenerate(t *testing.T) {
src := `
file_to_generate: 'a.proto'
proto_file <
name: 'a.proto'
message_type <
name: 'Example'
>
>
`
req := new(plugin.CodeGeneratorRequest)
if err := proto.UnmarshalText(src, req); err != nil {
t.Fatalf("proto.UnmarshalText(%s, &file) failed with %v; want success", src, err)
}

if _, err := generate(req); err != nil {
t.Errorf("failed to generate with error %v", err)
}
}

0 comments on commit a6e81f9

Please sign in to comment.