Skip to content

Commit

Permalink
Merge branch 'master' of github.com:openconfig/gnmitest
Browse files Browse the repository at this point in the history
  • Loading branch information
robshakir committed Apr 28, 2020
2 parents 580d296 + 1aa1ac6 commit bf381dd
Show file tree
Hide file tree
Showing 32 changed files with 105,564 additions and 56,552 deletions.
5 changes: 4 additions & 1 deletion cmd/gnmitest_cli/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,16 @@ var (
// Dialer to use while calling into gnmitest service. It can be overridden
// by an external package to use a custom dialer.
Dialer = grpc.Dial
// Opts is a list of grpc.DialOption passed the the Dialer. It can be
// overridden by an external package to use custom options.
Opts = []grpc.DialOption{grpc.WithInsecure()}
)

// runSuite dials into given address(a) and calls Run RPC of gnmitest service
// with the given suite proto(s). It returns a test report if running suite is
// successful. Otherwise an error is returned.
func runSuite(ctx context.Context, a string, s *spb.Suite) (*rpb.Report, error) {
conn, err := Dialer(a, grpc.WithInsecure())
conn, err := Dialer(a, Opts...)
if err != nil {
return nil, fmt.Errorf("dial func failed for %q; %v", a, err)
}
Expand Down
38 changes: 25 additions & 13 deletions cmd/gnmitest_service/gnmitest_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"io/ioutil"
"net"
"path/filepath"
"reflect"
"strings"
"testing"
"time"
Expand All @@ -24,6 +23,7 @@ import (
"github.com/openconfig/ygot/testutil"
"github.com/openconfig/ygot/ytypes"
"google.golang.org/grpc"
"google.golang.org/protobuf/testing/protocmp"

gpb "github.com/openconfig/gnmi/proto/gnmi"
fpb "github.com/openconfig/gnmi/testing/fake/proto"
Expand Down Expand Up @@ -173,12 +173,14 @@ func TestIntegration(t *testing.T) {
return
}

if diff := cmp.Diff(got, want, cmp.FilterPath(func(p cmp.Path) bool {
if p.Last().Type() == reflect.TypeOf(&gpb.GetResponse{}) {
return true
}
return false
}, cmp.Comparer(func(a, b *gpb.GetResponse) bool { return testutil.GetResponseEqual(a, b) }))); diff != "" {
if diff := cmp.Diff(got, want, protocmp.FilterMessage(proto.MessageV2(&gpb.GetResponse{}),
cmp.Comparer(func(ma, mb protocmp.Message) bool {
a := new(gpb.GetResponse)
proto.Merge(a, ma)
b := new(gpb.GetResponse)
proto.Merge(b, mb)
return testutil.GetResponseEqual(a, b)
})), protocmp.Transform()); diff != "" {
t.Fatalf("did not get expected report proto, diff(-got,+want):\n%s", diff)
}
})
Expand Down Expand Up @@ -359,12 +361,22 @@ func TestIntegrationWithFakeGNMIAgent(t *testing.T) {
return
}

if diff := cmp.Diff(got, want, cmp.FilterPath(func(p cmp.Path) bool {
if p.Last().Type() == reflect.TypeOf(&gpb.GetResponse{}) {
return true
}
return false
}, cmp.Comparer(func(a, b *gpb.GetResponse) bool { return testutil.GetResponseEqual(a, b) }))); diff != "" {
if diff := cmp.Diff(got, want, protocmp.FilterField(proto.MessageV2(&rpb.TestError{}), "message",
cmp.Comparer(func(a, b string) bool {
// If the error was produced by rpc, avoid direct string
// comparison since there is no guarantee of output stability.
if strings.HasPrefix(a, "rpc error:") || strings.HasPrefix(b, "rpc error:") {
return strings.HasPrefix(a, "rpc error:") && strings.HasPrefix(b, "rpc error:")
}
return a == b
})), protocmp.FilterMessage(proto.MessageV2(&gpb.GetResponse{}),
cmp.Comparer(func(ma, mb protocmp.Message) bool {
a := new(gpb.GetResponse)
proto.Merge(a, ma)
b := new(gpb.GetResponse)
proto.Merge(b, mb)
return testutil.GetResponseEqual(a, b)
})), protocmp.Transform()); diff != "" {
t.Fatalf("did not get expected report proto, diff(-got,+want):\n%s", diff)
}
})
Expand Down
57 changes: 48 additions & 9 deletions cmd/gnmitest_service/testdata/fail-subscribe-report.txtpb
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ results {
}
result: FAIL
subscribe {
errors: {
message: "did not receive update for path /interfaces/interface/state/admin-status"
}
errors: {
message: "did not receive update for path /interfaces/interface/state/admin-status"
}
status: EARLY_FINISHED
}
}
Expand Down Expand Up @@ -111,9 +111,9 @@ results {
}
result: FAIL
subscribe {
errors: {
message: "no nodes found for requested path elem: <\n name: \"interfaces\"\n>\nelem: <\n name: \"interface\"\n key: <\n key: \"name\"\n value: \"eth2\"\n >\n>\n"
}
errors: {
message: "no nodes found for requested path elem: <\n name: \"interfaces\"\n>\nelem: <\n name: \"interface\"\n key: <\n key: \"name\"\n value: \"eth2\"\n >\n>\n"
}
status: EARLY_FINISHED
}
}
Expand Down Expand Up @@ -187,9 +187,48 @@ results {
}
result: FAIL
subscribe {
errors: {
message: "/interfaces/interface[name=eth0]/state/description: got nil data for path, /interfaces/interface[name=eth1]/state/description: got nil data for path"
}
errors: {
path {
elem {
name: "interfaces"
}
elem {
name: "interface"
key {
key: "name"
value: "eth0"
}
}
elem {
name: "state"
}
elem {
name: "description"
}
}
message: "got nil data for path"
}
errors: {
path {
elem {
name: "interfaces"
}
elem {
name: "interface"
key {
key: "name"
value: "eth1"
}
}
elem {
name: "state"
}
elem {
name: "description"
}
}
message: "got nil data for path"
}
status: EARLY_FINISHED
}
}
Expand Down
5 changes: 2 additions & 3 deletions common/gnmi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,11 @@ import (
"github.com/golang/protobuf/proto"
"github.com/kylelemons/godebug/pretty"
"github.com/openconfig/gnmi/errdiff"
"github.com/openconfig/gnmi/unimplemented"
"github.com/openconfig/gnmitest/creds"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"

gpb "github.com/openconfig/gnmi/proto/gnmi"
"github.com/openconfig/gnmitest/creds"
tpb "github.com/openconfig/gnmitest/proto/tests"
)

Expand All @@ -41,7 +40,7 @@ var (
)

type gnmiServer struct {
unimplemented.Server
gpb.UnimplementedGNMIServer
}

// Get implements the Get RPC for the faked gNMI server.
Expand Down
5 changes: 3 additions & 2 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import (
"testing"
"time"

"github.com/kylelemons/godebug/pretty"
"github.com/golang/protobuf/proto"
"github.com/google/go-cmp/cmp"
"github.com/openconfig/gnmitest/schemas/openconfig/register"

spb "github.com/openconfig/gnmitest/proto/suite"
Expand Down Expand Up @@ -241,7 +242,7 @@ func TestSetOverridden(t *testing.T) {
if tt.wantErr {
continue
}
if diff := pretty.Compare(tt.outSuite, tt.inSuite); diff != "" {
if diff := cmp.Diff(tt.outSuite, tt.inSuite, cmp.Comparer(proto.Equal)); diff != "" {
t.Errorf("test %s: setOverridden() returned diff (want -> got): %s", tt.desc, diff)
}
}
Expand Down
16 changes: 16 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module github.com/openconfig/gnmitest

go 1.14

require (
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/golang/protobuf v1.4.0
github.com/google/go-cmp v0.4.0
github.com/kylelemons/godebug v1.1.0
github.com/openconfig/gnmi v0.0.0-20200414194230-1597cc0f2600
github.com/openconfig/goyang v0.0.0-20200328051049-f3d50fd25b33
github.com/openconfig/ygot v0.7.3
google.golang.org/genproto v0.0.0-20200428115010-c45acf45369a
google.golang.org/grpc v1.29.1
google.golang.org/protobuf v1.21.0
)
95 changes: 95 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/cenkalti/backoff/v4 v4.0.0 h1:6VeaLF9aI+MAUQ95106HwWzYZgJJpZ4stumjj6RFYAU=
github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0 h1:oOuy+ugB+P/kBdUnG5QaMXSIyJ1q38wWSojYCb3z5VQ=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/protobuf v3.11.4+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/openconfig/gnmi v0.0.0-20200414194230-1597cc0f2600 h1:EO0ADDEFlykRo0dVFbFglXO16iDoD60IxPJyttU49Ko=
github.com/openconfig/gnmi v0.0.0-20200414194230-1597cc0f2600/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU=
github.com/openconfig/goyang v0.0.0-20200328051049-f3d50fd25b33 h1:giwoPW7W3APrb2JUksjek+rAiSryYHMv+bzvh5UZRm8=
github.com/openconfig/goyang v0.0.0-20200328051049-f3d50fd25b33/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU=
github.com/openconfig/ygot v0.6.0/go.mod h1:o30svNf7O0xK+R35tlx95odkDmZWS9JyWWQSmIhqwAs=
github.com/openconfig/ygot v0.7.3 h1:quwFRwgRjKNsYU2NdnW483LLSQ5Y+GuY8UXICIClJL0=
github.com/openconfig/ygot v0.7.3/go.mod h1:U5806JUYdoshmrER+M8jpP758i8j+rt4mOFZTHPwtkQ=
github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200319113533-08878b785e9c/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200428115010-c45acf45369a h1:ykRcNp3dotYGpAEIYeWCGaefklVjVy/rnSvM3zNh6j8=
google.golang.org/genproto v0.0.0-20200428115010-c45acf45369a/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0 h1:qdOKuR/EIArgaWNjetjgTzgVTAZ+S/WXVrq9HW9zimw=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
Loading

0 comments on commit bf381dd

Please sign in to comment.