mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #7079 from LK4D4/state_tests
Tests on container state changing
This commit is contained in:
commit
615f211084
1 changed files with 66 additions and 0 deletions
|
@ -1295,3 +1295,69 @@ func TestAttachStdOutAndErrTTYMode(t *testing.T) {
|
||||||
|
|
||||||
logDone("run - Attach stderr and stdout with -t")
|
logDone("run - Attach stderr and stdout with -t")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestState(t *testing.T) {
|
||||||
|
defer deleteAllContainers()
|
||||||
|
cmd := exec.Command(dockerBinary, "run", "-d", "busybox", "top")
|
||||||
|
|
||||||
|
out, _, err := runCommandWithOutput(cmd)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err, out)
|
||||||
|
}
|
||||||
|
id := strings.TrimSpace(out)
|
||||||
|
state, err := inspectField(id, "State.Running")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if state != "true" {
|
||||||
|
t.Fatal("Container state is 'not running'")
|
||||||
|
}
|
||||||
|
pid1, err := inspectField(id, "State.Pid")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if pid1 == "0" {
|
||||||
|
t.Fatal("Container state Pid 0")
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd = exec.Command(dockerBinary, "stop", id)
|
||||||
|
out, _, err = runCommandWithOutput(cmd)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err, out)
|
||||||
|
}
|
||||||
|
state, err = inspectField(id, "State.Running")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if state != "false" {
|
||||||
|
t.Fatal("Container state is 'running'")
|
||||||
|
}
|
||||||
|
pid2, err := inspectField(id, "State.Pid")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if pid2 == pid1 {
|
||||||
|
t.Fatalf("Container state Pid %s, but expected %s", pid2, pid1)
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd = exec.Command(dockerBinary, "start", id)
|
||||||
|
out, _, err = runCommandWithOutput(cmd)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err, out)
|
||||||
|
}
|
||||||
|
state, err = inspectField(id, "State.Running")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if state != "true" {
|
||||||
|
t.Fatal("Container state is 'not running'")
|
||||||
|
}
|
||||||
|
pid3, err := inspectField(id, "State.Pid")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if pid3 == pid1 {
|
||||||
|
t.Fatalf("Container state Pid %s, but expected %s", pid2, pid1)
|
||||||
|
}
|
||||||
|
logDone("run - test container state.")
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue