Procházet zdrojové kódy

Another try to fix InspectExecID

Signed-off-by: Doug Davis <dug@us.ibm.com>
Doug Davis před 10 roky
rodič
revize
fe6a7c8e57
1 změnil soubory, kde provedl 12 přidání a 5 odebrání
  1. 12 5
      integration-cli/docker_cli_exec_test.go

+ 12 - 5
integration-cli/docker_cli_exec_test.go

@@ -316,9 +316,9 @@ func (s *DockerSuite) TestInspectExecID(c *check.C) {
 		c.Fatalf("ExecIDs should be empty, got: %s", out)
 	}
 
-	// Start an exec, have it block waiting for input so we can do some checking
-	cmd := exec.Command(dockerBinary, "exec", "-i", id, "sh", "-c", "read a")
-	execStdin, _ := cmd.StdinPipe()
+	// Start an exec, have it block waiting so we can do some checking
+	cmd := exec.Command(dockerBinary, "exec", id, "sh", "-c",
+		"while ! test -e /tmp/execid1; do sleep 1; done")
 
 	if err = cmd.Start(); err != nil {
 		c.Fatalf("failed to start the exec cmd: %q", err)
@@ -349,8 +349,15 @@ func (s *DockerSuite) TestInspectExecID(c *check.C) {
 		c.Fatalf("failed to get the exec id: %v", err)
 	}
 
-	// End the exec by closing its stdin, and wait for it to end
-	execStdin.Close()
+	// End the exec by creating the missing file
+	err = exec.Command(dockerBinary, "exec", id,
+		"sh", "-c", "touch /tmp/execid1").Run()
+
+	if err != nil {
+		c.Fatalf("failed to run the 2nd exec cmd: %q", err)
+	}
+
+	// Wait for 1st exec to complete
 	cmd.Wait()
 
 	// All execs for the container should be gone now