17
17
package ovsnl_test
18
18
19
19
import (
20
+ "net"
20
21
"os"
21
22
"testing"
22
23
23
24
"github.com/digitalocean/go-openvswitch/ovsnl"
25
+ "github.com/google/go-cmp/cmp"
24
26
)
25
27
26
28
func TestLinuxClientIntegration (t * testing.T ) {
@@ -34,12 +36,34 @@ func TestLinuxClientIntegration(t *testing.T) {
34
36
}
35
37
defer c .Close ()
36
38
39
+ const (
40
+ ovsSystem = "ovs-system"
41
+ ovsBridge = "ovsbr0"
42
+ )
43
+
44
+ // Ensure required interfaces exist for remaining tests.
45
+ for _ , ifi := range []string {ovsSystem , ovsBridge } {
46
+ if _ , err := net .InterfaceByName (ifi ); err != nil {
47
+ t .Skipf ("failed to check for OVS interface %q: %v" , ifi , err )
48
+ }
49
+ }
50
+
51
+ t .Run ("datapath" , func (t * testing.T ) {
52
+ testClientDatapath (t , c , ovsSystem )
53
+ })
54
+ }
55
+
56
+ func testClientDatapath (t * testing.T , c * ovsnl.Client , datapath string ) {
37
57
dps , err := c .Datapath .List ()
38
58
if err != nil {
39
59
t .Fatalf ("failed to list datapaths: %v" , err )
40
60
}
41
61
42
- for _ , d := range dps {
43
- t .Logf ("datapath: %q, flows: %d" , d .Name , d .Stats .Flows )
62
+ if diff := cmp .Diff (1 , len (dps )); diff != "" {
63
+ t .Fatalf ("unexpected number of datapaths (-want +got):\n %s" , diff )
64
+ }
65
+
66
+ if diff := cmp .Diff (datapath , dps [0 ].Name ); diff != "" {
67
+ t .Fatalf ("unexpected datapath name (-want +got):\n %s" , diff )
44
68
}
45
69
}
0 commit comments