This adds a regression test for https://github.com/moby/moby/issues/24595
make DOCKER_GRAPHDRIVER=vfs TEST_FILTER='TestNetworkList' test-integration
INFO: Testing against a local daemon
=== RUN TestNetworkList
=== RUN TestNetworkList//networks
=== PAUSE TestNetworkList//networks
=== RUN TestNetworkList//networks/
=== PAUSE TestNetworkList//networks/
=== CONT TestNetworkList//networks
=== CONT TestNetworkList//networks/
--- PASS: TestNetworkList (0.05s)
--- PASS: TestNetworkList//networks/ (0.01s)
--- PASS: TestNetworkList//networks (0.01s)
PASS
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| ... | ... |
@@ -3,6 +3,7 @@ package network // import "github.com/docker/docker/integration/network" |
| 3 | 3 |
import ( |
| 4 | 4 |
"bytes" |
| 5 | 5 |
"context" |
| 6 |
+ "encoding/json" |
|
| 6 | 7 |
"net/http" |
| 7 | 8 |
"os/exec" |
| 8 | 9 |
"strings" |
| ... | ... |
@@ -93,6 +94,34 @@ func TestNetworkInvalidJSON(t *testing.T) {
|
| 93 | 93 |
} |
| 94 | 94 |
} |
| 95 | 95 |
|
| 96 |
+// TestNetworkList verifies that /networks returns a list of networks either |
|
| 97 |
+// with, or without a trailing slash (/networks/). Regression test for https://github.com/moby/moby/issues/24595 |
|
| 98 |
+func TestNetworkList(t *testing.T) {
|
|
| 99 |
+ defer setupTest(t)() |
|
| 100 |
+ |
|
| 101 |
+ endpoints := []string{
|
|
| 102 |
+ "/networks", |
|
| 103 |
+ "/networks/", |
|
| 104 |
+ } |
|
| 105 |
+ |
|
| 106 |
+ for _, ep := range endpoints {
|
|
| 107 |
+ t.Run(ep, func(t *testing.T) {
|
|
| 108 |
+ t.Parallel() |
|
| 109 |
+ |
|
| 110 |
+ res, body, err := request.Get(ep, request.JSON) |
|
| 111 |
+ assert.NilError(t, err) |
|
| 112 |
+ assert.Equal(t, res.StatusCode, http.StatusOK) |
|
| 113 |
+ |
|
| 114 |
+ buf, err := request.ReadBody(body) |
|
| 115 |
+ assert.NilError(t, err) |
|
| 116 |
+ var nws []types.NetworkResource |
|
| 117 |
+ err = json.Unmarshal(buf, &nws) |
|
| 118 |
+ assert.NilError(t, err) |
|
| 119 |
+ assert.Assert(t, len(nws) > 0) |
|
| 120 |
+ }) |
|
| 121 |
+ } |
|
| 122 |
+} |
|
| 123 |
+ |
|
| 96 | 124 |
func TestHostIPv4BridgeLabel(t *testing.T) {
|
| 97 | 125 |
skip.If(t, testEnv.OSType == "windows") |
| 98 | 126 |
skip.If(t, testEnv.IsRemoteDaemon) |