Browse code

Merge pull request #51837 from 2003Aditya/TestSwarmCAHash

migrate TestAPISwarmCAHash to Integration Test

Rob Murray authored on 2026/02/15 20:04:30
Showing 2 changed files
... ...
@@ -183,22 +183,6 @@ func (s *DockerSwarmSuite) TestUpdateSwarmAddExternalCA(c *testing.T) {
183 183
 	assert.Equal(c, info.Cluster.Spec.CAConfig.ExternalCAs[1].CACert, "cacert")
184 184
 }
185 185
 
186
-func (s *DockerSwarmSuite) TestAPISwarmCAHash(c *testing.T) {
187
-	ctx := testutil.GetContext(c)
188
-	d1 := s.AddDaemon(ctx, c, true, true)
189
-	d2 := s.AddDaemon(ctx, c, false, false)
190
-	splitToken := strings.Split(d1.JoinTokens(c).Worker, "-")
191
-	splitToken[2] = "1kxftv4ofnc6mt30lmgipg6ngf9luhwqopfk1tz6bdmnkubg0e"
192
-	replacementToken := strings.Join(splitToken, "-")
193
-	c2 := d2.NewClientT(c)
194
-	_, err := c2.SwarmJoin(testutil.GetContext(c), client.SwarmJoinOptions{
195
-		ListenAddr:  d2.SwarmListenAddr(),
196
-		JoinToken:   replacementToken,
197
-		RemoteAddrs: []string{d1.SwarmListenAddr()},
198
-	})
199
-	assert.ErrorContains(c, err, "remote CA does not match fingerprint")
200
-}
201
-
202 186
 func (s *DockerSwarmSuite) TestAPISwarmPromoteDemote(c *testing.T) {
203 187
 	ctx := testutil.GetContext(c)
204 188
 	d1 := s.AddDaemon(ctx, c, false, false)
205 189
new file mode 100644
... ...
@@ -0,0 +1,36 @@
0
+package service
1
+
2
+import (
3
+	"strings"
4
+	"testing"
5
+
6
+	"github.com/moby/moby/client"
7
+	"github.com/moby/moby/v2/integration/internal/swarm"
8
+	"github.com/moby/moby/v2/internal/testutil/daemon"
9
+	"gotest.tools/v3/assert"
10
+	"gotest.tools/v3/skip"
11
+)
12
+
13
+func TestSwarmCAHash(t *testing.T) {
14
+	skip.If(t, strings.HasPrefix(testEnv.FirewallBackendDriver(), "nftables"), "swarm cannot be used with nftables")
15
+	ctx := setupTest(t)
16
+
17
+	d1 := swarm.NewSwarm(ctx, t, testEnv)
18
+	defer d1.Stop(t)
19
+	d2 := daemon.New(t)
20
+	d2.Start(t)
21
+	defer d2.Stop(t)
22
+
23
+	splitToken := strings.Split(d1.JoinTokens(t).Worker, "-")
24
+	splitToken[2] = "1kxftv4ofnc6mt30lmgipg6ngf9luhwqopfk1tz6bdmnkubg0e"
25
+	replacementToken := strings.Join(splitToken, "-")
26
+	c2 := d2.NewClientT(t)
27
+	defer c2.Close()
28
+
29
+	_, err := c2.SwarmJoin(ctx, client.SwarmJoinOptions{
30
+		ListenAddr:  d2.SwarmListenAddr(),
31
+		JoinToken:   replacementToken,
32
+		RemoteAddrs: []string{d1.SwarmListenAddr()},
33
+	})
34
+	assert.ErrorContains(t, err, "remote CA does not match fingerprint")
35
+}