Bugfix: only use io.Copy in hijack if attaching both stdout and stderr
Add regression tests to ensure issue is fixed. Docker-DCO-1.1-Signed-off-by: Matt Heon <mheon@redhat.com> (github: mheon) Upstream-commit: 1476f295aca20e1c35383c133219d54a5373183f Component: engine
This commit is contained in:
committed by
Matthew Heon
parent
bcb367a385
commit
e650e69f7d
@@ -1218,3 +1218,51 @@ func TestDnsOptionsBasedOnHostResolvConf(t *testing.T) {
|
||||
|
||||
logDone("run - dns options based on host resolv.conf")
|
||||
}
|
||||
|
||||
// Regression test for #6983
|
||||
func TestAttachStdErrOnlyTTYMode(t *testing.T) {
|
||||
cmd := exec.Command(dockerBinary, "run", "-t", "-a", "stderr", "busybox", "true")
|
||||
|
||||
exitCode, err := runCommand(cmd)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if exitCode != 0 {
|
||||
t.Fatalf("Container should have exited with error code 0")
|
||||
}
|
||||
|
||||
deleteAllContainers()
|
||||
|
||||
logDone("run - Attach stderr only with -t")
|
||||
}
|
||||
|
||||
// Regression test for #6983
|
||||
func TestAttachStdOutOnlyTTYMode(t *testing.T) {
|
||||
cmd := exec.Command(dockerBinary, "run", "-t", "-a", "stdout", "busybox", "true")
|
||||
|
||||
exitCode, err := runCommand(cmd)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if exitCode != 0 {
|
||||
t.Fatalf("Container should have exited with error code 0")
|
||||
}
|
||||
|
||||
deleteAllContainers()
|
||||
|
||||
logDone("run - Attach stdout only with -t")
|
||||
}
|
||||
|
||||
// Regression test for #6983
|
||||
func TestAttachStdOutAndErrTTYMode(t *testing.T) {
|
||||
cmd := exec.Command(dockerBinary, "run", "-t", "-a", "stdout", "-a", "stderr", "busybox", "true")
|
||||
|
||||
exitCode, err := runCommand(cmd)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if exitCode != 0 {
|
||||
t.Fatalf("Container should have exited with error code 0")
|
||||
}
|
||||
|
||||
deleteAllContainers()
|
||||
|
||||
logDone("run - Attach stderr and stdout with -t")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user