|
@@ -2,7 +2,6 @@ package main
|
|
|
|
|
|
import (
|
|
import (
|
|
"bytes"
|
|
"bytes"
|
|
- "io"
|
|
|
|
"os/exec"
|
|
"os/exec"
|
|
"testing"
|
|
"testing"
|
|
)
|
|
)
|
|
@@ -10,17 +9,8 @@ import (
|
|
func TestLoginWithoutTTY(t *testing.T) {
|
|
func TestLoginWithoutTTY(t *testing.T) {
|
|
cmd := exec.Command(dockerBinary, "login")
|
|
cmd := exec.Command(dockerBinary, "login")
|
|
|
|
|
|
- // create a buffer with text then a new line as a return
|
|
|
|
- buf := bytes.NewBuffer([]byte("buffer test string \n"))
|
|
|
|
-
|
|
|
|
- // use a pipe for stdin and manually copy the data so that
|
|
|
|
- // the process does not get the TTY
|
|
|
|
- in, err := cmd.StdinPipe()
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- // copy the bytes into the commands stdin along with a new line
|
|
|
|
- go io.Copy(in, buf)
|
|
|
|
|
|
+ // Send to stdin so the process does not get the TTY
|
|
|
|
+ cmd.Stdin = bytes.NewBufferString("buffer test string \n")
|
|
|
|
|
|
// run the command and block until it's done
|
|
// run the command and block until it's done
|
|
if err := cmd.Run(); err == nil {
|
|
if err := cmd.Run(); err == nil {
|