|
17 | 17 | package network
|
18 | 18 |
|
19 | 19 | import (
|
| 20 | + "encoding/json" |
20 | 21 | "fmt"
|
21 | 22 | "net"
|
22 | 23 | "strings"
|
@@ -107,6 +108,51 @@ func TestNetworkCreate(t *testing.T) {
|
107 | 108 | }
|
108 | 109 | },
|
109 | 110 | },
|
| 111 | + { |
| 112 | + Description: "internal enabled", |
| 113 | + Setup: func(data test.Data, helpers test.Helpers) { |
| 114 | + helpers.Ensure("network", "create", "--internal", data.Identifier()) |
| 115 | + netw := nerdtest.InspectNetwork(helpers, data.Identifier()) |
| 116 | + assert.Equal(t, len(netw.IPAM.Config), 1) |
| 117 | + data.Labels().Set("subnet", netw.IPAM.Config[0].Subnet) |
| 118 | + }, |
| 119 | + Cleanup: func(data test.Data, helpers test.Helpers) { |
| 120 | + helpers.Anyhow("network", "rm", data.Identifier()) |
| 121 | + }, |
| 122 | + Command: func(data test.Data, helpers test.Helpers) test.TestableCommand { |
| 123 | + return helpers.Command("run", "--rm", "--net", data.Identifier(), testutil.CommonImage, "ip", "route") |
| 124 | + }, |
| 125 | + Expected: func(data test.Data, helpers test.Helpers) *test.Expected { |
| 126 | + return &test.Expected{ |
| 127 | + ExitCode: 0, |
| 128 | + Output: func(stdout string, t tig.T) { |
| 129 | + assert.Assert(t, strings.Contains(stdout, data.Labels().Get("subnet"))) |
| 130 | + assert.Assert(t, !strings.Contains(stdout, "default ")) |
| 131 | + |
| 132 | + nativeNet := nerdtest.InspectNetworkNative(helpers, data.Identifier()) |
| 133 | + var cni struct { |
| 134 | + Plugins []struct { |
| 135 | + Type string `json:"type"` |
| 136 | + IsGW bool `json:"isGateway"` |
| 137 | + IPMasq bool `json:"ipMasq"` |
| 138 | + } `json:"plugins"` |
| 139 | + } |
| 140 | + _ = json.Unmarshal(nativeNet.CNI, &cni) |
| 141 | + // bridge plugin assertions and no portmap |
| 142 | + foundBridge := false |
| 143 | + for _, p := range cni.Plugins { |
| 144 | + assert.Assert(t, p.Type != "portmap") |
| 145 | + if p.Type == "bridge" { |
| 146 | + foundBridge = true |
| 147 | + assert.Assert(t, !p.IsGW) |
| 148 | + assert.Assert(t, !p.IPMasq) |
| 149 | + } |
| 150 | + } |
| 151 | + assert.Assert(t, foundBridge) |
| 152 | + }, |
| 153 | + } |
| 154 | + }, |
| 155 | + }, |
110 | 156 | }
|
111 | 157 |
|
112 | 158 | testCase.Run(t)
|
|
0 commit comments