diff --git a/build/ci/.test.yml b/build/ci/.test.yml index 73fa77886bafa1119038c947c956efc25829ccfd..655c0238a81a1a74f3ecd4446d981accea25e3a4 100644 --- a/build/ci/.test.yml +++ b/build/ci/.test.yml @@ -1,33 +1,31 @@ -integration-test: +.integration-test: &it image: golang:1.14 stage: integration-test - needs: ["apply"] + needs: [ "apply" ] + variables: + - GOSDN_LOG: nolog rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == "integration-test" allow_failure: true - script: - - go test -race $(go list ./... | grep -v /forks/ | grep -v /api/ | grep -v /mocks ) -v -coverprofile=coverage.out after_script: - go tool cover -func=coverage.out -integration-test-merge-request: - image: golang:1.14 - stage: integration-test - allow_failure: true - needs: ["apply"] - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH - script: - - go test -race $(go list ./... | grep -v /forks/ | grep -v /api/ | grep -v /mocks ) -v -coverprofile=coverage.out - after_script: - - go tool cover -func=coverage.out + integration-test:nucleus +<<: *it +script: + - cd ./nucleus + - go test -race -v -coverprofile=coverage.out + unit-test: image: golang:1.14 stage: test allow_failure: true + variables: + - GOSDN_LOG: nolog rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH diff --git a/go.mod b/go.mod index def140ef9e44351a91174fd04bbdd00ca50c7cb8..1383223929d53e4947e16826082287cdfd8d2268 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,9 @@ go 1.14 require ( code.fbi.h-da.de/cocsn/yang-models v0.0.4 github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a - github.com/golang/protobuf v1.4.3 + github.com/golang/protobuf v1.5.0 github.com/google/gnxi v0.0.0-20201221102247-c26672548161 github.com/google/uuid v1.1.2 - github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect github.com/neo4j/neo4j-go-driver v1.8.3 github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802 github.com/openconfig/goyang v0.2.3 @@ -16,9 +15,8 @@ require ( github.com/sirupsen/logrus v1.4.2 github.com/spf13/cobra v1.1.1 github.com/spf13/viper v1.7.1 - github.com/stretchr/objx v0.2.0 // indirect github.com/stretchr/testify v1.6.1 golang.org/x/net v0.0.0-20201216054612-986b41b23924 google.golang.org/grpc v1.34.0 - google.golang.org/protobuf v1.25.0 + google.golang.org/protobuf v1.26.0 ) diff --git a/go.sum b/go.sum index fb45734028ce6f46199366fbb46bdbff2644f1a7..90f7ff82882f30740f6db7f84db843f8df703e08 100644 --- a/go.sum +++ b/go.sum @@ -106,8 +106,9 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -120,8 +121,9 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -187,9 +189,8 @@ github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/reedsolomon v1.9.3/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4= +github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -323,9 +324,8 @@ github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5q github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -515,8 +515,10 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/nucleus/initialise_test.go b/nucleus/initialise_test.go index d2fe0a04b8966fd46329313eaeaa03deeaccca8f..6c90b054e44d009e03542821ced09f46cd65bb49 100644 --- a/nucleus/initialise_test.go +++ b/nucleus/initialise_test.go @@ -31,7 +31,6 @@ var pnd PrincipalNetworkDomain var gnmiMessages map[string]pb.Message var gnmiConfig *gnmi.Config var d Device -var opt *GnmiTransportOptions var startGnmiTarget chan string var stopGnmiTarget chan bool @@ -39,7 +38,6 @@ var args string var argsNotFound string var mockContext = mock.MatchedBy(func(ctx context.Context) bool { return true }) -var gnmiAddress = "141.100.70.171:6030" // TestMain bootstraps all tests. Humongous beast // TODO: Move somewhere more sensible @@ -73,7 +71,6 @@ func TestMain(m *testing.M) { testSetupGnmi() testSetupHTTP() - testSetupIntegration() os.Exit(m.Run()) } diff --git a/cli/integration_test.go b/test/integration/cliIntegration_test.go similarity index 79% rename from cli/integration_test.go rename to test/integration/cliIntegration_test.go index 22794854fc682666c4755c9a591d43ae3519cb3d..26ddc13a2afc4404a0ee62470c205006f5a58961 100644 --- a/cli/integration_test.go +++ b/test/integration/cliIntegration_test.go @@ -1,29 +1,11 @@ -package cli +package integration import ( + "code.fbi.h-da.de/cocsn/gosdn/cli" "os" "testing" ) -const unreachable = "203.0.113.10:6030" - -var testAddress = "141.100.70.171:6030" -var testAPIEndpoint = "http://141.100.70.171:8080" -var testUsername = "admin" -var testPassword = "arista" -var defaultPath = []string{"/system/config/hostname"} - -func testSetupIntegration() { - a := os.Getenv("GOSDN_TEST_ENDPOINT") - if a != "" { - testAddress = a - } - api := os.Getenv("GOSDN_TEST_API_ENDPOINT") - if api != "" { - testAPIEndpoint = api - } -} - func TestMain(m *testing.M) { testSetupIntegration() os.Exit(m.Run()) @@ -64,7 +46,7 @@ func TestCapabilities(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := Capabilities(tt.args.a, tt.args.u, tt.args.p); (err != nil) != tt.wantErr { + if err := cli.Capabilities(tt.args.a, tt.args.u, tt.args.p); (err != nil) != tt.wantErr { t.Errorf("Capabilities() error = %v, wantErr %v", err, tt.wantErr) } }) @@ -109,7 +91,7 @@ func TestGet(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if _, err := Get(tt.args.a, tt.args.u, tt.args.p, tt.args.args...); (err != nil) != tt.wantErr { + if _, err := cli.Get(tt.args.a, tt.args.u, tt.args.p, tt.args.args...); (err != nil) != tt.wantErr { t.Errorf("Get() error = %v, wantErr %v", err, tt.wantErr) } }) @@ -151,7 +133,7 @@ func TestHttpGet(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := HTTPGet(tt.args.apiEndpoint, tt.args.f, tt.args.args...); (err != nil) != tt.wantErr { + if err := cli.HTTPGet(tt.args.apiEndpoint, tt.args.f, tt.args.args...); (err != nil) != tt.wantErr { t.Errorf("HttpGet() error = %v, wantErr %v", err, tt.wantErr) } }) @@ -210,7 +192,7 @@ func TestSet(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := Set(tt.args.a, tt.args.u, tt.args.p, tt.args.typ, tt.args.args...); (err != nil) != tt.wantErr { + if err := cli.Set(tt.args.a, tt.args.u, tt.args.p, tt.args.typ, tt.args.args...); (err != nil) != tt.wantErr { t.Errorf("Set() error = %v, wantErr %v", err, tt.wantErr) } }) diff --git a/cmd/integration_test.go b/test/integration/cmdIntegration_test.go similarity index 61% rename from cmd/integration_test.go rename to test/integration/cmdIntegration_test.go index 1281d8da401866f9a08e52a137b1d13d8c3d9e25..e3e67b7c06796732524ad20172c2347d49b7ed3a 100644 --- a/cmd/integration_test.go +++ b/test/integration/cmdIntegration_test.go @@ -1,17 +1,27 @@ -package cmd +package integration import ( "code.fbi.h-da.de/cocsn/gosdn/cli" + "code.fbi.h-da.de/cocsn/gosdn/forks/goarista/gnmi" + "code.fbi.h-da.de/cocsn/gosdn/nucleus" + "code.fbi.h-da.de/cocsn/gosdn/nucleus/util/proto" guuid "github.com/google/uuid" + gpb "github.com/openconfig/gnmi/proto/gnmi" + log "github.com/sirupsen/logrus" "github.com/spf13/viper" + pb "google.golang.org/protobuf/proto" "os" "testing" ) +const unreachable = "203.0.113.10:6030" + var testAddress = "141.100.70.171:6030" var testAPIEndpoint = "http://141.100.70.171:8080" var testUsername = "admin" var testPassword = "arista" +var defaultPath = []string{"/system/config/hostname"} +var opt *nucleus.GnmiTransportOptions func testSetupIntegration() { a := os.Getenv("GOSDN_TEST_ENDPOINT") @@ -30,11 +40,36 @@ func testSetupIntegration() { if p != "" { testPassword = p } -} -func TestMain(m *testing.M) { - testSetupIntegration() - os.Exit(m.Run()) + gnmiMessages = map[string]pb.Message{ + "./test/proto/cap-resp-arista-ceos": &gpb.CapabilityResponse{}, + "./test/proto/req-full-node": &gpb.GetRequest{}, + "./test/proto/req-full-node-arista-ceos": &gpb.GetRequest{}, + "./test/proto/req-interfaces-arista-ceos": &gpb.GetRequest{}, + "./test/proto/req-interfaces-interface-arista-ceos": &gpb.GetRequest{}, + "./test/proto/req-interfaces-wildcard": &gpb.GetRequest{}, + "./test/proto/resp-full-node": &gpb.GetResponse{}, + "./test/proto/resp-full-node-arista-ceos": &gpb.GetResponse{}, + "./test/proto/resp-interfaces-arista-ceos": &gpb.GetResponse{}, + "./test/proto/resp-interfaces-interface-arista-ceos": &gpb.GetResponse{}, + "./test/proto/resp-interfaces-wildcard": &gpb.GetResponse{}, + "./test/proto/resp-set-system-config-hostname": &gpb.SetResponse{}, + } + for k, v := range gnmiMessages { + if err := proto.Read(k, v); err != nil { + log.Fatalf("error parsing %v: %v", k, err) + } + } + + opt = &nucleus.GnmiTransportOptions{ + Config: gnmi.Config{ + Addr: testAddress, + Username: "admin", + Password: "arista", + Encoding: gpb.Encoding_JSON_IETF, + }, + RespChan: make(chan *gpb.SubscribeResponse), + } } func TestCliIntegration(t *testing.T) { @@ -61,8 +96,8 @@ func TestCliIntegration(t *testing.T) { return } } - cliPnd = viper.GetString("CLI_PND") - cliSbi = viper.GetString("CLI_SBI") + cliPnd := viper.GetString("CLI_PND") + cliSbi := viper.GetString("CLI_SBI") if err := cli.HTTPGet( testAPIEndpoint, diff --git a/nucleus/integration_test.go b/test/integration/nucleusIntegration_test.go similarity index 80% rename from nucleus/integration_test.go rename to test/integration/nucleusIntegration_test.go index b06da3e81e6c0f00305a11f7ba28bece0d1394fe..41159475e169d8c311bbed74873b69b2a4b6f071 100644 --- a/nucleus/integration_test.go +++ b/test/integration/nucleusIntegration_test.go @@ -1,39 +1,25 @@ -package nucleus +package integration import ( "code.fbi.h-da.de/cocsn/gosdn/forks/goarista/gnmi" + "code.fbi.h-da.de/cocsn/gosdn/nucleus" "context" gpb "github.com/openconfig/gnmi/proto/gnmi" - "os" + pb "google.golang.org/protobuf/proto" "reflect" "sort" "testing" "time" ) -func testSetupIntegration() { - a := os.Getenv("GOSDN_TEST_ENDPOINT") - if a != "" { - gnmiAddress = a - } - - opt = &GnmiTransportOptions{ - Config: gnmi.Config{ - Addr: gnmiAddress, - Username: "admin", - Password: "arista", - Encoding: gpb.Encoding_JSON_IETF, - }, - RespChan: make(chan *gpb.SubscribeResponse), - } -} +var gnmiMessages map[string]pb.Message func TestGnmi_SetIntegration(t *testing.T) { if testing.Short() { t.Skip("skipping integration test") } type fields struct { - opt *GnmiTransportOptions + opt *nucleus.GnmiTransportOptions } type args struct { ctx context.Context @@ -48,7 +34,7 @@ func TestGnmi_SetIntegration(t *testing.T) { }{ { name: "destination unreachable", - fields: fields{opt: &GnmiTransportOptions{ + fields: fields{opt: &nucleus.GnmiTransportOptions{ Config: gnmi.Config{ Addr: "203.0.113.10:6030", }, @@ -80,13 +66,13 @@ func TestGnmi_SetIntegration(t *testing.T) { }, }, }, - want: gnmiMessages["../test/proto/resp-set-system-config-hostname"], + want: gnmiMessages["./test/proto/resp-set-system-config-hostname"], wantErr: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - g, err := NewGnmiTransport(tt.fields.opt) + g, err := nucleus.NewGnmiTransport(tt.fields.opt) if err != nil { t.Errorf("NewGnmiTransport() error = %v, wantErr %v", err, tt.wantErr) return @@ -98,14 +84,11 @@ func TestGnmi_SetIntegration(t *testing.T) { } got, ok := resp.(*gpb.SetResponse) if !ok { - t.Error(&ErrInvalidTypeAssertion{ - v: reflect.TypeOf(resp), - t: reflect.TypeOf(&gpb.SetResponse{}), - }) + t.Errorf("want: %v, got %v, error: %v", reflect.TypeOf(&gpb.SetResponse{}), reflect.TypeOf(resp), &nucleus.ErrInvalidTypeAssertion{}) } if err != nil && tt.wantErr { return - } else if got.Prefix.Target != gnmiAddress || + } else if got.Prefix.Target != testAddress || got.Response[0].Op != gpb.UpdateResult_UPDATE { t.Errorf("Set() got = %v, want %v", got, tt.want) } @@ -123,7 +106,7 @@ func TestGnmi_GetIntegration(t *testing.T) { "system/config/hostname", } type fields struct { - opt *GnmiTransportOptions + opt *nucleus.GnmiTransportOptions } type args struct { ctx context.Context @@ -143,12 +126,12 @@ func TestGnmi_GetIntegration(t *testing.T) { ctx: context.Background(), params: paths[:1], }, - want: gnmiMessages["../test/proto/resp-interfaces-arista-ceos"], + want: gnmiMessages["./test/proto/resp-interfaces-arista-ceos"], wantErr: false, }, { name: "destination unreachable", - fields: fields{opt: &GnmiTransportOptions{ + fields: fields{opt: &nucleus.GnmiTransportOptions{ Config: gnmi.Config{ Addr: "203.0.113.10:6030", }, @@ -164,7 +147,7 @@ func TestGnmi_GetIntegration(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - g, err := NewGnmiTransport(tt.fields.opt) + g, err := nucleus.NewGnmiTransport(tt.fields.opt) if err != nil { t.Error(err) return @@ -186,7 +169,7 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { } type fields struct { - opt *GnmiTransportOptions + opt *nucleus.GnmiTransportOptions } type args struct { ctx context.Context @@ -201,7 +184,7 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { { name: "default", fields: fields{ - opt: &GnmiTransportOptions{ + opt: &nucleus.GnmiTransportOptions{ Config: opt.Config, RespChan: make(chan *gpb.SubscribeResponse), }, @@ -217,7 +200,7 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { "/interfaces/interface/name", "/system/config/hostname", }), - Target: gnmiAddress, + Target: testAddress, }, }, wantErr: false, @@ -225,7 +208,7 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { { name: "wrong path", fields: fields{ - opt: &GnmiTransportOptions{ + opt: &nucleus.GnmiTransportOptions{ Config: opt.Config, RespChan: make(chan *gpb.SubscribeResponse), }, @@ -240,7 +223,7 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { "interfaces/interface/name", "ystem/config/hostname", }), - Target: gnmiAddress, + Target: testAddress, }, }, wantErr: true, @@ -248,7 +231,7 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { { name: "destination unreachable", fields: fields{ - opt: &GnmiTransportOptions{ + opt: &nucleus.GnmiTransportOptions{ Config: gnmi.Config{ Addr: "203.0.113.10:6030", }, @@ -264,12 +247,12 @@ func TestGnmi_SubscribeIntegration(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var wantErr = tt.wantErr - g, err := NewGnmiTransport(tt.fields.opt) + g, err := nucleus.NewGnmiTransport(tt.fields.opt) if err != nil { t.Error(err) return } - ctx := context.WithValue(context.Background(), CtxKeyOpts, tt.args.opts) //nolint + ctx := context.WithValue(context.Background(), nucleus.CtxKeyOpts, tt.args.opts) //nolint ctx, cancel := context.WithCancel(ctx) go func() { subErr := g.Subscribe(ctx) @@ -293,7 +276,7 @@ func TestGnmi_CapabilitiesIntegration(t *testing.T) { t.Skip("skipping integration test") } type fields struct { - opt *GnmiTransportOptions + opt *nucleus.GnmiTransportOptions } type args struct { ctx context.Context @@ -309,26 +292,26 @@ func TestGnmi_CapabilitiesIntegration(t *testing.T) { name: "supported models", fields: fields{opt: opt}, args: args{ctx: context.Background()}, - want: gnmiMessages["../test/proto/cap-resp-arista-ceos"].(*gpb.CapabilityResponse).SupportedModels, + want: gnmiMessages["./test/proto/cap-resp-arista-ceos"].(*gpb.CapabilityResponse).SupportedModels, wantErr: false, }, { name: "supported encodings", fields: fields{opt: opt}, args: args{ctx: context.Background()}, - want: gnmiMessages["../test/proto/cap-resp-arista-ceos"].(*gpb.CapabilityResponse).SupportedEncodings, + want: gnmiMessages["./test/proto/cap-resp-arista-ceos"].(*gpb.CapabilityResponse).SupportedEncodings, wantErr: false, }, { name: "gnmi version", fields: fields{opt: opt}, args: args{ctx: context.Background()}, - want: gnmiMessages["../test/proto/cap-resp-arista-ceos"].(*gpb.CapabilityResponse).GNMIVersion, + want: gnmiMessages["./test/proto/cap-resp-arista-ceos"].(*gpb.CapabilityResponse).GNMIVersion, wantErr: false, }, { name: "destination unreachable", - fields: fields{opt: &GnmiTransportOptions{ + fields: fields{opt: &nucleus.GnmiTransportOptions{ Config: gnmi.Config{ Addr: "203.0.113.10:6030", }, @@ -341,7 +324,7 @@ func TestGnmi_CapabilitiesIntegration(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - g, err := NewGnmiTransport(tt.fields.opt) + g, err := nucleus.NewGnmiTransport(tt.fields.opt) if err != nil { t.Error(err) return