mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #7825 from LK4D4/move_integration_to_cli
Move integration to cli
This commit is contained in:
commit
efc6c9ba2f
2 changed files with 54 additions and 83 deletions
|
@ -1772,3 +1772,57 @@ func TestHostsLinkedContainerUpdate(t *testing.T) {
|
||||||
|
|
||||||
logDone("run - /etc/hosts updated in parent when restart")
|
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")
|
||||||
|
}
|
||||||
|
|
|
@ -5,8 +5,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
|
||||||
"path"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
@ -531,84 +529,3 @@ func TestRunErrorBindNonExistingSource(t *testing.T) {
|
||||||
<-c
|
<-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
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue