Browse code

Add integration tests for client- and daemon-side auto-remove

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 32dbb5c46569fbd404a88775c5eb58b5da0b9240)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2017/03/09 20:29:20
Showing 1 changed files
... ...
@@ -4135,6 +4135,30 @@ func (s *DockerSuite) TestRunRmAndWait(c *check.C) {
4135 4135
 	c.Assert(code, checker.Equals, 0)
4136 4136
 }
4137 4137
 
4138
+// Test that auto-remove is performed by the daemon (API 1.25 and above)
4139
+func (s *DockerSuite) TestRunRm(c *check.C) {
4140
+	name := "miss-me-when-im-gone"
4141
+	dockerCmd(c, "run", "--name="+name, "--rm", "busybox")
4142
+
4143
+	_, err := inspectFieldWithError(name, "name")
4144
+	c.Assert(err, checker.Not(check.IsNil))
4145
+	c.Assert(err.Error(), checker.Contains, "No such object: "+name)
4146
+}
4147
+
4148
+// Test that auto-remove is performed by the client on API versions that do not support daemon-side api-remove (API < 1.25)
4149
+func (s *DockerSuite) TestRunRmPre125Api(c *check.C) {
4150
+	name := "miss-me-when-im-gone"
4151
+	result := icmd.RunCmd(icmd.Cmd{
4152
+		Command: binaryWithArgs("run", "--name="+name, "--rm", "busybox"),
4153
+		Env:     appendBaseEnv(false, "DOCKER_API_VERSION=1.24"),
4154
+	})
4155
+	c.Assert(result, icmd.Matches, icmd.Success)
4156
+
4157
+	_, err := inspectFieldWithError(name, "name")
4158
+	c.Assert(err, checker.Not(check.IsNil))
4159
+	c.Assert(err.Error(), checker.Contains, "No such object: "+name)
4160
+}
4161
+
4138 4162
 // Test case for #23498
4139 4163
 func (s *DockerSuite) TestRunUnsetEntrypoint(c *check.C) {
4140 4164
 	testRequires(c, DaemonIsLinux)