Skip to content

Commit 7186fd8

Browse files
committed
More libnetwork windows test fixes
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
1 parent 4b98143 commit 7186fd8

File tree

13 files changed

+116
-170
lines changed

13 files changed

+116
-170
lines changed

libnetwork/cmd/ovrouter/ovrouter.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build linux
2+
13
package main
24

35
import (

libnetwork/firewall_test.go

Lines changed: 0 additions & 103 deletions
This file was deleted.

libnetwork/iptables/conntrack.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build linux
2+
13
package iptables
24

35
import (

libnetwork/iptables/firewalld.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build linux
2+
13
package iptables
24

35
import (

libnetwork/iptables/firewalld_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build linux
2+
13
package iptables
24

35
import (

libnetwork/iptables/iptables.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build linux
2+
13
package iptables
24

35
import (

libnetwork/iptables/iptables_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build linux
2+
13
package iptables
24

35
import (

libnetwork/libnetwork_linux_test.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,70 @@ import (
2727
"github.com/vishvananda/netns"
2828
)
2929

30+
var (
31+
origins = netns.None()
32+
testns = netns.None()
33+
)
34+
35+
func createGlobalInstance(t *testing.T) {
36+
var err error
37+
defer close(start)
38+
39+
origins, err = netns.Get()
40+
if err != nil {
41+
t.Fatal(err)
42+
}
43+
44+
if testutils.IsRunningInContainer() {
45+
testns = origins
46+
} else {
47+
testns, err = netns.New()
48+
if err != nil {
49+
t.Fatal(err)
50+
}
51+
}
52+
53+
netOption := options.Generic{
54+
netlabel.GenericData: options.Generic{
55+
"BridgeName": "network",
56+
},
57+
}
58+
59+
net1, err := controller.NetworkByName("testhost")
60+
if err != nil {
61+
t.Fatal(err)
62+
}
63+
64+
net2, err := createTestNetwork("bridge", "network2", netOption, nil, nil)
65+
if err != nil {
66+
t.Fatal(err)
67+
}
68+
69+
_, err = net1.CreateEndpoint("pep1")
70+
if err != nil {
71+
t.Fatal(err)
72+
}
73+
74+
_, err = net2.CreateEndpoint("pep2")
75+
if err != nil {
76+
t.Fatal(err)
77+
}
78+
79+
_, err = net2.CreateEndpoint("pep3")
80+
if err != nil {
81+
t.Fatal(err)
82+
}
83+
84+
if sboxes[first-1], err = controller.NewSandbox(fmt.Sprintf("%drace", first), libnetwork.OptionUseDefaultSandbox()); err != nil {
85+
t.Fatal(err)
86+
}
87+
for thd := first + 1; thd <= last; thd++ {
88+
if sboxes[thd-1], err = controller.NewSandbox(fmt.Sprintf("%drace", thd)); err != nil {
89+
t.Fatal(err)
90+
}
91+
}
92+
}
93+
3094
func TestHost(t *testing.T) {
3195
sbx1, err := controller.NewSandbox("host_c1",
3296
libnetwork.OptionHostname("test1"),

libnetwork/libnetwork_test.go

Lines changed: 27 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import (
88
"net/http/httptest"
99
"os"
1010
"path/filepath"
11+
"sync"
1112
"testing"
1213

1314
"github.com/docker/docker/libnetwork"
1415
"github.com/docker/docker/libnetwork/config"
1516
"github.com/docker/docker/libnetwork/datastore"
1617
"github.com/docker/docker/libnetwork/driverapi"
17-
"github.com/docker/docker/libnetwork/drivers/bridge"
1818
"github.com/docker/docker/libnetwork/ipamapi"
1919
"github.com/docker/docker/libnetwork/netlabel"
2020
"github.com/docker/docker/libnetwork/options"
@@ -23,7 +23,6 @@ import (
2323
"github.com/docker/docker/pkg/plugins"
2424
"github.com/docker/docker/pkg/reexec"
2525
"github.com/sirupsen/logrus"
26-
"github.com/vishvananda/netns"
2726
)
2827

2928
const (
@@ -201,14 +200,36 @@ func TestBridge(t *testing.T) {
201200
t.Fatalf("Unexpected format for port mapping in endpoint operational data")
202201
}
203202
expectedLen := 10
204-
if !bridge.IsV6Listenable() {
203+
if !isV6Listenable() {
205204
expectedLen = 5
206205
}
207206
if len(pm) != expectedLen {
208207
t.Fatalf("Incomplete data for port mapping in endpoint operational data: %d", len(pm))
209208
}
210209
}
211210

211+
var (
212+
v6ListenableCached bool
213+
v6ListenableOnce sync.Once
214+
)
215+
216+
// This is copied from the bridge driver package b/c the bridge driver is not platform agnostic.
217+
func isV6Listenable() bool {
218+
v6ListenableOnce.Do(func() {
219+
ln, err := net.Listen("tcp6", "[::1]:0")
220+
if err != nil {
221+
// When the kernel was booted with `ipv6.disable=1`,
222+
// we get err "listen tcp6 [::1]:0: socket: address family not supported by protocol"
223+
// https://github.com/moby/moby/issues/42288
224+
logrus.Debugf("port_mapping: v6Listenable=false (%v)", err)
225+
} else {
226+
v6ListenableCached = true
227+
ln.Close()
228+
}
229+
})
230+
return v6ListenableCached
231+
}
232+
212233
func TestUnknownDriver(t *testing.T) {
213234
if !testutils.IsRunningInContainer() {
214235
defer testutils.SetupTestOSContext(t)()
@@ -1411,11 +1432,9 @@ func TestValidRemoteDriver(t *testing.T) {
14111432
}
14121433

14131434
var (
1414-
start = make(chan struct{})
1415-
done = make(chan chan struct{}, numThreads-1)
1416-
origins = netns.None()
1417-
testns = netns.None()
1418-
sboxes = make([]libnetwork.Sandbox, numThreads)
1435+
start = make(chan struct{})
1436+
done = make(chan chan struct{}, numThreads-1)
1437+
sboxes = make([]libnetwork.Sandbox, numThreads)
14191438
)
14201439

14211440
const (
@@ -1426,65 +1445,6 @@ const (
14261445
debug = false
14271446
)
14281447

1429-
func createGlobalInstance(t *testing.T) {
1430-
var err error
1431-
defer close(start)
1432-
1433-
origins, err = netns.Get()
1434-
if err != nil {
1435-
t.Fatal(err)
1436-
}
1437-
1438-
if testutils.IsRunningInContainer() {
1439-
testns = origins
1440-
} else {
1441-
testns, err = netns.New()
1442-
if err != nil {
1443-
t.Fatal(err)
1444-
}
1445-
}
1446-
1447-
netOption := options.Generic{
1448-
netlabel.GenericData: options.Generic{
1449-
"BridgeName": "network",
1450-
},
1451-
}
1452-
1453-
net1, err := controller.NetworkByName("testhost")
1454-
if err != nil {
1455-
t.Fatal(err)
1456-
}
1457-
1458-
net2, err := createTestNetwork("bridge", "network2", netOption, nil, nil)
1459-
if err != nil {
1460-
t.Fatal(err)
1461-
}
1462-
1463-
_, err = net1.CreateEndpoint("pep1")
1464-
if err != nil {
1465-
t.Fatal(err)
1466-
}
1467-
1468-
_, err = net2.CreateEndpoint("pep2")
1469-
if err != nil {
1470-
t.Fatal(err)
1471-
}
1472-
1473-
_, err = net2.CreateEndpoint("pep3")
1474-
if err != nil {
1475-
t.Fatal(err)
1476-
}
1477-
1478-
if sboxes[first-1], err = controller.NewSandbox(fmt.Sprintf("%drace", first), libnetwork.OptionUseDefaultSandbox()); err != nil {
1479-
t.Fatal(err)
1480-
}
1481-
for thd := first + 1; thd <= last; thd++ {
1482-
if sboxes[thd-1], err = controller.NewSandbox(fmt.Sprintf("%drace", thd)); err != nil {
1483-
t.Fatal(err)
1484-
}
1485-
}
1486-
}
1487-
14881448
func debugf(format string, a ...interface{}) {
14891449
if debug {
14901450
fmt.Printf(format, a...)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
package libnetwork_test
22

3+
import (
4+
"os"
5+
"path/filepath"
6+
)
7+
38
var specPath = filepath.Join(os.Getenv("programdata"), "docker", "plugins")

0 commit comments

Comments
 (0)