浏览代码

Merge pull request #7825 from LK4D4/move_integration_to_cli

Move integration to cli
Michael Crosby 10 年之前
父节点
当前提交
efc6c9ba2f
共有 2 个文件被更改,包括 54 次插入83 次删除
  1. 54 0
      integration-cli/docker_cli_run_test.go
  2. 0 83
      integration/commands_test.go

+ 54 - 0
integration-cli/docker_cli_run_test.go

@@ -1772,3 +1772,57 @@ func TestHostsLinkedContainerUpdate(t *testing.T) {
 
 	logDone("run - /etc/hosts updated in parent when restart")
 }
+
+// Ensure that CIDFile gets deleted if it's empty
+// Perform this test by making `docker run` fail
+func TestRunCidFileCleanupIfEmpty(t *testing.T) {
+	tmpDir, err := ioutil.TempDir("", "TestRunCidFile")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer os.RemoveAll(tmpDir)
+	tmpCidFile := path.Join(tmpDir, "cid")
+	cmd := exec.Command(dockerBinary, "run", "--cidfile", tmpCidFile, "scratch")
+	out, _, err := runCommandWithOutput(cmd)
+	t.Log(out)
+	if err == nil {
+		t.Fatal("Run without command must fail")
+	}
+
+	if _, err := os.Stat(tmpCidFile); err == nil {
+		t.Fatalf("empty CIDFile '%s' should've been deleted", tmpCidFile)
+	}
+	deleteAllContainers()
+	logDone("run - cleanup empty cidfile on fail")
+}
+
+// #2098 - Docker cidFiles only contain short version of the containerId
+//sudo docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
+// TestRunCidFile tests that run --cidfile returns the longid
+func TestRunCidFileCheckIDLength(t *testing.T) {
+	tmpDir, err := ioutil.TempDir("", "TestRunCidFile")
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpCidFile := path.Join(tmpDir, "cid")
+	defer os.RemoveAll(tmpDir)
+	cmd := exec.Command(dockerBinary, "run", "-d", "--cidfile", tmpCidFile, "busybox", "true")
+	out, _, err := runCommandWithOutput(cmd)
+	if err != nil {
+		t.Fatal(err)
+	}
+	id := strings.TrimSpace(out)
+	buffer, err := ioutil.ReadFile(tmpCidFile)
+	if err != nil {
+		t.Fatal(err)
+	}
+	cid := string(buffer)
+	if len(cid) != 64 {
+		t.Fatalf("--cidfile should be a long id, not '%s'", id)
+	}
+	if cid != id {
+		t.Fatalf("cid must be equal to %s, got %s", id, cid)
+	}
+	deleteAllContainers()
+	logDone("run - cidfile contains long id")
+}

+ 0 - 83
integration/commands_test.go

@@ -5,8 +5,6 @@ import (
 	"fmt"
 	"io"
 	"io/ioutil"
-	"os"
-	"path"
 	"strings"
 	"testing"
 	"time"
@@ -531,84 +529,3 @@ func TestRunErrorBindNonExistingSource(t *testing.T) {
 		<-c
 	})
 }
-
-// #2098 - Docker cidFiles only contain short version of the containerId
-//sudo docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
-// TestRunCidFile tests that run --cidfile returns the longid
-func TestRunCidFileCheckIDLength(t *testing.T) {
-	stdout, stdoutPipe := io.Pipe()
-
-	tmpDir, err := ioutil.TempDir("", "TestRunCidFile")
-	if err != nil {
-		t.Fatal(err)
-	}
-	tmpCidFile := path.Join(tmpDir, "cid")
-
-	cli := client.NewDockerCli(nil, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr, nil)
-	defer cleanup(globalEngine, t)
-
-	c := make(chan struct{})
-	go func() {
-		defer close(c)
-		if err := cli.CmdRun("--cidfile", tmpCidFile, unitTestImageID, "ls"); err != nil {
-			t.Fatal(err)
-		}
-	}()
-
-	defer os.RemoveAll(tmpDir)
-	setTimeout(t, "Reading command output time out", 2*time.Second, func() {
-		cmdOutput, err := bufio.NewReader(stdout).ReadString('\n')
-		if err != nil {
-			t.Fatal(err)
-		}
-		if len(cmdOutput) < 1 {
-			t.Fatalf("'ls' should return something , not '%s'", cmdOutput)
-		}
-		//read the tmpCidFile
-		buffer, err := ioutil.ReadFile(tmpCidFile)
-		if err != nil {
-			t.Fatal(err)
-		}
-		id := string(buffer)
-
-		if len(id) != len("2bf44ea18873287bd9ace8a4cb536a7cbe134bed67e805fdf2f58a57f69b320c") {
-			t.Fatalf("--cidfile should be a long id, not '%s'", id)
-		}
-		//test that its a valid cid? (though the container is gone..)
-		//remove the file and dir.
-	})
-
-	setTimeout(t, "CmdRun timed out", 5*time.Second, func() {
-		<-c
-	})
-
-}
-
-// Ensure that CIDFile gets deleted if it's empty
-// Perform this test by making `docker run` fail
-func TestRunCidFileCleanupIfEmpty(t *testing.T) {
-	tmpDir, err := ioutil.TempDir("", "TestRunCidFile")
-	if err != nil {
-		t.Fatal(err)
-	}
-	tmpCidFile := path.Join(tmpDir, "cid")
-
-	cli := client.NewDockerCli(nil, ioutil.Discard, ioutil.Discard, testDaemonProto, testDaemonAddr, nil)
-	defer cleanup(globalEngine, t)
-
-	c := make(chan struct{})
-	go func() {
-		defer close(c)
-		if err := cli.CmdRun("--cidfile", tmpCidFile, unitTestImageID); err == nil {
-			t.Fatal("running without a command should haveve failed")
-		}
-		if _, err := os.Stat(tmpCidFile); err == nil {
-			t.Fatalf("empty CIDFile '%s' should've been deleted", tmpCidFile)
-		}
-	}()
-	defer os.RemoveAll(tmpDir)
-
-	setTimeout(t, "CmdRun timed out", 5*time.Second, func() {
-		<-c
-	})
-}