Browse Source

Merge pull request #37636 from thaJeztah/add_swarm_label_tests

Add unit test for swarm labels on containers
Sebastiaan van Stijn 6 years ago
parent
commit
3bd1e7b59b
1 changed files with 45 additions and 0 deletions
  1. 45 0
      daemon/cluster/executor/container/container_test.go

+ 45 - 0
daemon/cluster/executor/container/container_test.go

@@ -35,3 +35,48 @@ func TestIsolationConversion(t *testing.T) {
 		})
 	}
 }
+
+func TestContainerLabels(t *testing.T) {
+	c := &containerConfig{
+		task: &swarmapi.Task{
+			ID: "real-task.id",
+			Spec: swarmapi.TaskSpec{
+				Runtime: &swarmapi.TaskSpec_Container{
+					Container: &swarmapi.ContainerSpec{
+						Labels: map[string]string{
+							"com.docker.swarm.task":         "user-specified-task",
+							"com.docker.swarm.task.id":      "user-specified-task.id",
+							"com.docker.swarm.task.name":    "user-specified-task.name",
+							"com.docker.swarm.node.id":      "user-specified-node.id",
+							"com.docker.swarm.service.id":   "user-specified-service.id",
+							"com.docker.swarm.service.name": "user-specified-service.name",
+							"this-is-a-user-label":          "this is a user label's value",
+						},
+					},
+				},
+			},
+			ServiceID: "real-service.id",
+			Slot:      123,
+			NodeID:    "real-node.id",
+			Annotations: swarmapi.Annotations{
+				Name: "real-service.name.123.real-task.id",
+			},
+			ServiceAnnotations: swarmapi.Annotations{
+				Name: "real-service.name",
+			},
+		},
+	}
+
+	expected := map[string]string{
+		"com.docker.swarm.task":         "",
+		"com.docker.swarm.task.id":      "real-task.id",
+		"com.docker.swarm.task.name":    "real-service.name.123.real-task.id",
+		"com.docker.swarm.node.id":      "real-node.id",
+		"com.docker.swarm.service.id":   "real-service.id",
+		"com.docker.swarm.service.name": "real-service.name",
+		"this-is-a-user-label":          "this is a user label's value",
+	}
+
+	labels := c.labels()
+	assert.DeepEqual(t, expected, labels)
+}