Skip to content

Add test coverage for connections to device.#126

Merged
robshakir merged 2 commits intomainfrom
integrationt
Mar 15, 2022
Merged

Add test coverage for connections to device.#126
robshakir merged 2 commits intomainfrom
integrationt

Conversation

@robshakir
Copy link
Copy Markdown
Member

  * (M) device/device.go
  * (M) device/device_test.go
    - add a check that gNMI updates are handled properly by the device.
  * (M) gnmit/gnmit.go
  * (M) gnmit/gnmit_test.go
    - Ensure that TLS credentials are handled properly.
    - return errors when cache update is not correctly handled.

@bstoll PTAL.

You can verify that this works using:

▶ cd $GOPATH/src/github.com/openconfig/gribigo/cmd/rtr && go build
▶ ./rtr  -cert ../../testcommon/testdata/server.cert -key ../../testcommon/testdata/server.key -alsologtostderr

To validate gNMI - using the listen address returned for gNMI, and gnmi_cli from github.com/openconfig/gnmi:

▶ ./gnmi_cli -t DUT -a 127.0.0.1:63840 -q "/" -insecure -dt s -qt o
DUT/meta/targetLeaves, 0
DUT/meta/targetLeavesUpdated, 2
DUT/meta/targetLeavesAdded, 0
DUT/meta/targetLeavesDeleted, 0
DUT/meta/connected, true
DUT/meta/sync, false
DUT/meta/latestTimestamp, 1646841252483835000
DUT/meta/targetLeavesStale, 0
DUT/meta/targetLeavesSuppressed, 0
DUT/meta/targetSize, 1975
DUT/meta/targetLeavesEmpty, 0
DUT/meta/connectedAddress, 

To validate gRIBI - using the listen address returned for gRIBI:

▶ cd $GOPATH/src/github.com/openconfig/gribigo/demo/ipv4
▶ go test -args --run --addr="127.0.0.1:63839" 
E0309 10:57:47.115324   65321 client.go:308] got error receiving message, rpc error: code = Canceled desc = grpc: the client connection is closing
PASS
ok  	github.com/openconfig/gribigo/demo/ipv4	2.710s

After this test, re-running the gNMI validation should show the AFT populated (running it during will show it being added, with -qt s rather than -qt o):

▶ ./gnmi_cli -t DUT -a 127.0.0.1:63840 -q "/" -insecure -dt s -qt o
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hops/next-hop/1/index, 1
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hops/next-hop/1/state/ip-address, 192.0.2.1
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hops/next-hop/1/state/index, 1
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hop-groups/next-hop-group/42/state/id, 42
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hop-groups/next-hop-group/42/id, 42
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hop-groups/next-hop-group/42/next-hops/next-hop/1/state/index, 1
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hop-groups/next-hop-group/42/next-hops/next-hop/1/index, 1
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/next-hop-groups/next-hop-group/42/next-hops/next-hop/1/state/weight, 1
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/ipv4-unicast/ipv4-entry/1.1.1.1/32/state/next-hop-group, 42
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/ipv4-unicast/ipv4-entry/1.1.1.1/32/state/prefix, 1.1.1.1/32
DUT/openconfig/network-instances/network-instance/DEFAULT/afts/ipv4-unicast/ipv4-entry/1.1.1.1/32/prefix, 1.1.1.1/32
DUT/meta/targetSize, 3914
DUT/meta/targetLeavesEmpty, 0
DUT/meta/connectedAddress, 
DUT/meta/connected, true
DUT/meta/sync, false
DUT/meta/latestTimestamp, 1646841252483835000
DUT/meta/targetLeavesStale, 1
DUT/meta/targetLeavesSuppressed, 0
DUT/meta/targetLeaves, 3
DUT/meta/targetLeavesUpdated, 13
DUT/meta/targetLeavesAdded, 3
DUT/meta/targetLeavesDeleted, 0

PTAL and let me know if you have issues here. There's one potential fix in here, so please test on this branch. This also adds integration tests.

  * (M) device/device.go
  * (M) device/device_test.go
    - add a check that gNMI updates are handled properly by the device.
  * (M) gnmit/gnmit.go
  * (M) gnmit/gnmit_test.go
    - Ensure that TLS credentials are handled properly.
    - return errors when cache update is not correctly handled.
@robshakir robshakir requested a review from bstoll March 9, 2022 16:00
@robshakir robshakir merged commit df51e07 into main Mar 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants