@@ -5,41 +5,62 @@ package client
55
66import (
77 "io"
8+ "log"
89 "os"
910 "testing"
1011
1112 "github.com/Azure/azure-container-networking/cni/api"
1213 testutils "github.com/Azure/azure-container-networking/test/utils"
14+ ver "github.com/hashicorp/go-version"
1315 "github.com/stretchr/testify/require"
1416 "k8s.io/utils/exec"
1517)
1618
17- // todo: enable this test in CI, requires built azure vnet
18- func TestGetStateFromAzureCNI (t * testing.T ) {
19- testutils .RequireRootforTest (t )
20-
19+ func TestMain (m * testing.M ) {
20+ testutils .RequireRootforTestMain ()
21+ var err error
2122 // copy test state file to /var/run/azure-vnet.json
2223 in , err := os .Open ("./testresources/azure-vnet-test.json" )
23- require . NoError ( t , err )
24-
25- defer in . Close ()
24+ if err != nil {
25+ return
26+ }
2627
2728 out , err := os .Create ("/var/run/azure-vnet.json" )
28- require .NoError (t , err )
29+ if err != nil {
30+ return
31+ }
2932
33+ exit := 0
3034 defer func () {
31- out .Close ()
35+ if in != nil {
36+ in .Close ()
37+ }
38+
39+ if out != nil {
40+ out .Close ()
41+ }
42+
3243 err := os .Remove ("/var/run/azure-vnet.json" )
33- require .NoError (t , err )
44+ if err != nil {
45+ log .Print (err )
46+ os .Exit (1 )
47+ }
48+
49+ os .Exit (exit )
3450 }()
3551
3652 _ , err = io .Copy (out , in )
37- require .NoError (t , err )
53+ if err != nil {
54+ return
55+ }
56+
57+ exit = m .Run ()
58+ }
3859
39- out .Close ()
60+ // todo: enable this test in CI, requires built azure vnet
61+ func TestGetStateFromAzureCNI (t * testing.T ) {
4062
41- realexec := exec .New ()
42- c := NewCNIClient (realexec )
63+ c := AzureCNIClient {exec : exec .New ()}
4364 state , err := c .GetEndpointState ()
4465 require .NoError (t , err )
4566
@@ -52,3 +73,14 @@ func TestGetStateFromAzureCNI(t *testing.T) {
5273
5374 require .Exactly (t , res , state )
5475}
76+
77+ func TestGetVersion (t * testing.T ) {
78+ c := & AzureCNIClient {exec : exec .New ()}
79+ version , err := c .GetVersion ()
80+ require .NoError (t , err )
81+
82+ expectedVersion , err := ver .NewVersion ("v1.4.0-2-g984c5a5e-dirty" )
83+ require .NoError (t , err )
84+
85+ require .Equal (t , expectedVersion , version )
86+ }
0 commit comments