Explorar el Código

Add more tests for labels on containers

Signed-off-by: Darren Shepherd <darren@rancher.com>
Darren Shepherd hace 10 años
padre
commit
5de1298f41
Se han modificado 1 ficheros con 21 adiciones y 1 borrados
  1. 21 1
      integration-cli/docker_cli_ps_test.go

+ 21 - 1
integration-cli/docker_cli_ps_test.go

@@ -414,7 +414,7 @@ func TestPsListContainersFilterName(t *testing.T) {
 
 func TestPsListContainersFilterLabel(t *testing.T) {
 	// start container
-	runCmd := exec.Command(dockerBinary, "run", "-d", "-l", "match=me", "busybox")
+	runCmd := exec.Command(dockerBinary, "run", "-d", "-l", "match=me", "-l", "second=tag", "busybox")
 	out, _, err := runCommandWithOutput(runCmd)
 	if err != nil {
 		t.Fatal(out, err)
@@ -445,6 +445,26 @@ func TestPsListContainersFilterLabel(t *testing.T) {
 		t.Fatalf("Expected id %s, got %s for exited filter, output: %q", firstID, containerOut, out)
 	}
 
+	// filter containers by two labels
+	runCmd = exec.Command(dockerBinary, "ps", "-a", "-q", "--no-trunc", "--filter=label=match=me", "--filter=label=second=tag")
+	if out, _, err = runCommandWithOutput(runCmd); err != nil {
+		t.Fatal(out, err)
+	}
+	containerOut = strings.TrimSpace(out)
+	if containerOut != firstID {
+		t.Fatalf("Expected id %s, got %s for exited filter, output: %q", firstID, containerOut, out)
+	}
+
+	// filter containers by two labels, but expect not found because of AND behavior
+	runCmd = exec.Command(dockerBinary, "ps", "-a", "-q", "--no-trunc", "--filter=label=match=me", "--filter=label=second=tag-no")
+	if out, _, err = runCommandWithOutput(runCmd); err != nil {
+		t.Fatal(out, err)
+	}
+	containerOut = strings.TrimSpace(out)
+	if containerOut != "" {
+		t.Fatalf("Expected nothing, got %s for exited filter, output: %q", containerOut, out)
+	}
+
 	// filter containers by exact key
 	runCmd = exec.Command(dockerBinary, "ps", "-a", "-q", "--no-trunc", "--filter=label=match")
 	if out, _, err = runCommandWithOutput(runCmd); err != nil {