From 3b1f73fbcd2ed938c499893f318467f14b63085a Mon Sep 17 00:00:00 2001 From: Doug Davis Date: Sat, 16 May 2015 11:04:25 -0700 Subject: [PATCH] Remove use of 'bash' from our tests Not 100% sure why our Windows test don't complain about some of these, I'm guessing it because we have bash as part of some git package, but either way we really shouldn't require bash to run our tests unless we really need to - which in these cases we don't Signed-off-by: Doug Davis --- integration-cli/docker_cli_inspect_test.go | 3 ++- integration-cli/docker_cli_run_test.go | 3 ++- .../docker_cli_save_load_unix_test.go | 26 ++++++++++++------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/integration-cli/docker_cli_inspect_test.go b/integration-cli/docker_cli_inspect_test.go index 58c61a9d0f..3b60f38821 100644 --- a/integration-cli/docker_cli_inspect_test.go +++ b/integration-cli/docker_cli_inspect_test.go @@ -69,7 +69,8 @@ func (s *DockerSuite) TestInspectImageFilterInt(c *check.C) { } func (s *DockerSuite) TestInspectContainerFilterInt(c *check.C) { - runCmd := exec.Command("bash", "-c", `echo "blahblah" | docker run -i -a stdin busybox cat`) + runCmd := exec.Command(dockerBinary, "run", "-i", "-a", "stdin", "busybox", "cat") + runCmd.Stdin = strings.NewReader("blahblah") out, _, _, err := runCommandWithStdoutStderr(runCmd) if err != nil { c.Fatalf("failed to run container: %v, output: %q", err, out) diff --git a/integration-cli/docker_cli_run_test.go b/integration-cli/docker_cli_run_test.go index af0bebd472..b96903d3dc 100644 --- a/integration-cli/docker_cli_run_test.go +++ b/integration-cli/docker_cli_run_test.go @@ -179,7 +179,8 @@ func (s *DockerSuite) TestRunExitCodeOne(c *check.C) { // it should be possible to pipe in data via stdin to a process running in a container // some versions of lxc might make this test fail func (s *DockerSuite) TestRunStdinPipe(c *check.C) { - runCmd := exec.Command("bash", "-c", `echo "blahblah" | docker run -i -a stdin busybox cat`) + runCmd := exec.Command(dockerBinary, "run", "-i", "-a", "stdin", "busybox", "cat") + runCmd.Stdin = strings.NewReader("blahblah") out, _, _, err := runCommandWithStdoutStderr(runCmd) if err != nil { c.Fatalf("failed to run container: %v, output: %q", err, out) diff --git a/integration-cli/docker_cli_save_load_unix_test.go b/integration-cli/docker_cli_save_load_unix_test.go index 658666d6b8..43f367bf11 100644 --- a/integration-cli/docker_cli_save_load_unix_test.go +++ b/integration-cli/docker_cli_save_load_unix_test.go @@ -4,7 +4,7 @@ package main import ( "bytes" - "fmt" + "io/ioutil" "os" "os/exec" "strings" @@ -41,17 +41,25 @@ func (s *DockerSuite) TestSaveAndLoadRepoStdout(c *check.C) { c.Fatalf("the repo should exist before saving it: %s, %v", before, err) } - saveCmdTemplate := `%v save %v > /tmp/foobar-save-load-test.tar` - saveCmdFinal := fmt.Sprintf(saveCmdTemplate, dockerBinary, repoName) - saveCmd := exec.Command("bash", "-c", saveCmdFinal) - if out, _, err = runCommandWithOutput(saveCmd); err != nil { - c.Fatalf("failed to save repo: %s, %v", out, err) + tmpFile, err := ioutil.TempFile("", "foobar-save-load-test.tar") + c.Assert(err, check.IsNil) + defer os.Remove(tmpFile.Name()) + + saveCmd := exec.Command(dockerBinary, "save", repoName) + saveCmd.Stdout = tmpFile + + if _, err = runCommand(saveCmd); err != nil { + c.Fatalf("failed to save repo: %v", err) } + tmpFile, err = os.Open(tmpFile.Name()) + c.Assert(err, check.IsNil) + deleteImages(repoName) - loadCmdFinal := `cat /tmp/foobar-save-load-test.tar | docker load` - loadCmd := exec.Command("bash", "-c", loadCmdFinal) + loadCmd := exec.Command(dockerBinary, "load") + loadCmd.Stdin = tmpFile + if out, _, err = runCommandWithOutput(loadCmd); err != nil { c.Fatalf("failed to load repo: %s, %v", out, err) } @@ -69,8 +77,6 @@ func (s *DockerSuite) TestSaveAndLoadRepoStdout(c *check.C) { deleteContainer(cleanedContainerID) deleteImages(repoName) - os.Remove("/tmp/foobar-save-load-test.tar") - pty, tty, err := pty.Open() if err != nil { c.Fatalf("Could not open pty: %v", err)