1
0
mirror of https://github.com/moby/moby.git synced 2025-08-01 05:47:11 +03:00

Use check in params so we don't ignore errors

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
Vincent Demeester
2016-12-08 10:56:29 +01:00
parent 9468d687ac
commit bcad3d5212
9 changed files with 59 additions and 90 deletions

View File

@ -44,12 +44,14 @@ func (s *DockerSuite) OnTimeout(c *check.C) {
} }
func (s *DockerSuite) TearDownTest(c *check.C) { func (s *DockerSuite) TearDownTest(c *check.C) {
unpauseAllContainers() unpauseAllContainers(c)
deleteAllContainers() deleteAllContainers(c)
deleteAllImages() deleteAllImages(c)
deleteAllVolumes() deleteAllVolumes(c)
deleteAllNetworks() deleteAllNetworks(c)
deleteAllPlugins() if daemonPlatform == "linux" {
deleteAllPlugins(c)
}
} }
func init() { func init() {

View File

@ -346,7 +346,7 @@ func (s *DockerSuite) TestGetStoppedContainerStats(c *check.C) {
func (s *DockerSuite) TestContainerAPIPause(c *check.C) { func (s *DockerSuite) TestContainerAPIPause(c *check.C) {
// Problematic on Windows as Windows does not support pause // Problematic on Windows as Windows does not support pause
testRequires(c, DaemonIsLinux) testRequires(c, DaemonIsLinux)
defer unpauseAllContainers() defer unpauseAllContainers(c)
out, _ := dockerCmd(c, "run", "-d", "busybox", "sleep", "30") out, _ := dockerCmd(c, "run", "-d", "busybox", "sleep", "30")
ContainerID := strings.TrimSpace(out) ContainerID := strings.TrimSpace(out)

View File

@ -155,7 +155,7 @@ func (s *DockerSuite) TestAttachDisconnect(c *check.C) {
func (s *DockerSuite) TestAttachPausedContainer(c *check.C) { func (s *DockerSuite) TestAttachPausedContainer(c *check.C) {
testRequires(c, IsPausable) testRequires(c, IsPausable)
defer unpauseAllContainers() defer unpauseAllContainers(c)
runSleepingContainer(c, "-d", "--name=test") runSleepingContainer(c, "-d", "--name=test")
dockerCmd(c, "pause", "test") dockerCmd(c, "pause", "test")

View File

@ -39,7 +39,7 @@ func (s *DockerSuite) TestCommitWithoutPause(c *check.C) {
//test commit a paused container should not unpause it after commit //test commit a paused container should not unpause it after commit
func (s *DockerSuite) TestCommitPausedContainer(c *check.C) { func (s *DockerSuite) TestCommitPausedContainer(c *check.C) {
testRequires(c, DaemonIsLinux) testRequires(c, DaemonIsLinux)
defer unpauseAllContainers() defer unpauseAllContainers(c)
out, _ := dockerCmd(c, "run", "-i", "-d", "busybox") out, _ := dockerCmd(c, "run", "-i", "-d", "busybox")
cleanedContainerID := strings.TrimSpace(out) cleanedContainerID := strings.TrimSpace(out)

View File

@ -139,7 +139,7 @@ func (s *DockerSuite) TestExecExitStatus(c *check.C) {
func (s *DockerSuite) TestExecPausedContainer(c *check.C) { func (s *DockerSuite) TestExecPausedContainer(c *check.C) {
testRequires(c, IsPausable) testRequires(c, IsPausable)
defer unpauseAllContainers() defer unpauseAllContainers(c)
out, _ := runSleepingContainer(c, "-d", "--name", "testing") out, _ := runSleepingContainer(c, "-d", "--name", "testing")
ContainerID := strings.TrimSpace(out) ContainerID := strings.TrimSpace(out)
@ -388,7 +388,7 @@ func (s *DockerSuite) TestRunMutableNetworkFiles(c *check.C) {
// Not applicable on Windows to Windows CI. // Not applicable on Windows to Windows CI.
testRequires(c, SameHostDaemon, DaemonIsLinux) testRequires(c, SameHostDaemon, DaemonIsLinux)
for _, fn := range []string{"resolv.conf", "hosts"} { for _, fn := range []string{"resolv.conf", "hosts"} {
deleteAllContainers() deleteAllContainers(c)
content, err := runCommandAndReadContainerFile(fn, exec.Command(dockerBinary, "run", "-d", "--name", "c1", "busybox", "sh", "-c", fmt.Sprintf("echo success >/etc/%s && top", fn))) content, err := runCommandAndReadContainerFile(fn, exec.Command(dockerBinary, "run", "-d", "--name", "c1", "busybox", "sh", "-c", fmt.Sprintf("echo success >/etc/%s && top", fn)))
c.Assert(err, checker.IsNil) c.Assert(err, checker.IsNil)

View File

@ -54,7 +54,7 @@ func (s *DockerSuite) TestInspectDefault(c *check.C) {
func (s *DockerSuite) TestInspectStatus(c *check.C) { func (s *DockerSuite) TestInspectStatus(c *check.C) {
if daemonPlatform != "windows" { if daemonPlatform != "windows" {
defer unpauseAllContainers() defer unpauseAllContainers(c)
} }
out, _ := runSleepingContainer(c, "-d") out, _ := runSleepingContainer(c, "-d")
out = strings.TrimSpace(out) out = strings.TrimSpace(out)

View File

@ -9,7 +9,7 @@ import (
func (s *DockerSuite) TestPause(c *check.C) { func (s *DockerSuite) TestPause(c *check.C) {
testRequires(c, IsPausable) testRequires(c, IsPausable)
defer unpauseAllContainers() defer unpauseAllContainers(c)
name := "testeventpause" name := "testeventpause"
runSleepingContainer(c, "-d", "--name", name) runSleepingContainer(c, "-d", "--name", name)
@ -31,7 +31,7 @@ func (s *DockerSuite) TestPause(c *check.C) {
func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) { func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) {
testRequires(c, IsPausable) testRequires(c, IsPausable)
defer unpauseAllContainers() defer unpauseAllContainers(c)
containers := []string{ containers := []string{
"testpausewithmorecontainers1", "testpausewithmorecontainers1",

View File

@ -96,7 +96,7 @@ func (s *DockerSuite) TestStartRecordError(c *check.C) {
func (s *DockerSuite) TestStartPausedContainer(c *check.C) { func (s *DockerSuite) TestStartPausedContainer(c *check.C) {
// Windows does not support pausing containers // Windows does not support pausing containers
testRequires(c, IsPausable) testRequires(c, IsPausable)
defer unpauseAllContainers() defer unpauseAllContainers(c)
runSleepingContainer(c, "-d", "--name", "testing") runSleepingContainer(c, "-d", "--name", "testing")

View File

@ -26,6 +26,7 @@ import (
volumetypes "github.com/docker/docker/api/types/volume" volumetypes "github.com/docker/docker/api/types/volume"
"github.com/docker/docker/opts" "github.com/docker/docker/opts"
"github.com/docker/docker/pkg/httputils" "github.com/docker/docker/pkg/httputils"
"github.com/docker/docker/pkg/integration/checker"
icmd "github.com/docker/docker/pkg/integration/cmd" icmd "github.com/docker/docker/pkg/integration/cmd"
"github.com/docker/docker/pkg/ioutils" "github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/stringutils" "github.com/docker/docker/pkg/stringutils"
@ -245,29 +246,20 @@ func getAllContainers() (string, error) {
return out, err return out, err
} }
func deleteAllContainers() error { func deleteAllContainers(c *check.C) {
containers, err := getAllContainers() containers, err := getAllContainers()
if err != nil { c.Assert(err, checker.IsNil, check.Commentf("containers: %v", containers))
fmt.Println(containers)
return err
}
if containers == "" {
return nil
}
err = deleteContainer(strings.Split(strings.TrimSpace(containers), "\n")...) if containers != "" {
if err != nil { err = deleteContainer(strings.Split(strings.TrimSpace(containers), "\n")...)
fmt.Println(err.Error()) c.Assert(err, checker.IsNil)
} }
return err
} }
func deleteAllNetworks() error { func deleteAllNetworks(c *check.C) {
networks, err := getAllNetworks() networks, err := getAllNetworks()
if err != nil { c.Assert(err, check.IsNil)
return err var errs []string
}
var errors []string
for _, n := range networks { for _, n := range networks {
if n.Name == "bridge" || n.Name == "none" || n.Name == "host" { if n.Name == "bridge" || n.Name == "none" || n.Name == "host" {
continue continue
@ -278,17 +270,14 @@ func deleteAllNetworks() error {
} }
status, b, err := sockRequest("DELETE", "/networks/"+n.Name, nil) status, b, err := sockRequest("DELETE", "/networks/"+n.Name, nil)
if err != nil { if err != nil {
errors = append(errors, err.Error()) errs = append(errs, err.Error())
continue continue
} }
if status != http.StatusNoContent { if status != http.StatusNoContent {
errors = append(errors, fmt.Sprintf("error deleting network %s: %s", n.Name, string(b))) errs = append(errs, fmt.Sprintf("error deleting network %s: %s", n.Name, string(b)))
} }
} }
if len(errors) > 0 { c.Assert(errs, checker.HasLen, 0, check.Commentf(strings.Join(errs, "\n")))
return fmt.Errorf(strings.Join(errors, "\n"))
}
return nil
} }
func getAllNetworks() ([]types.NetworkResource, error) { func getAllNetworks() ([]types.NetworkResource, error) {
@ -303,26 +292,26 @@ func getAllNetworks() ([]types.NetworkResource, error) {
return networks, nil return networks, nil
} }
func deleteAllPlugins() error { func deleteAllPlugins(c *check.C) {
plugins, err := getAllPlugins() plugins, err := getAllPlugins()
if err != nil { c.Assert(err, checker.IsNil)
return err var errs []string
}
var errors []string
for _, p := range plugins { for _, p := range plugins {
status, b, err := sockRequest("DELETE", "/plugins/"+p.Name+":"+p.Tag+"?force=1", nil) pluginName := p.Name
tag := p.Tag
if tag == "" {
tag = "latest"
}
status, b, err := sockRequest("DELETE", "/plugins/"+pluginName+":"+tag+"?force=1", nil)
if err != nil { if err != nil {
errors = append(errors, err.Error()) errs = append(errs, err.Error())
continue continue
} }
if status != http.StatusNoContent { if status != http.StatusOK {
errors = append(errors, fmt.Sprintf("error deleting plugin %s: %s", p.Name, string(b))) errs = append(errs, fmt.Sprintf("error deleting plugin %s: %s", p.Name, string(b)))
} }
} }
if len(errors) > 0 { c.Assert(errs, checker.HasLen, 0, check.Commentf(strings.Join(errs, "\n")))
return fmt.Errorf(strings.Join(errors, "\n"))
}
return nil
} }
func getAllPlugins() (types.PluginsListResponse, error) { func getAllPlugins() (types.PluginsListResponse, error) {
@ -337,26 +326,21 @@ func getAllPlugins() (types.PluginsListResponse, error) {
return plugins, nil return plugins, nil
} }
func deleteAllVolumes() error { func deleteAllVolumes(c *check.C) {
volumes, err := getAllVolumes() volumes, err := getAllVolumes()
if err != nil { c.Assert(err, checker.IsNil)
return err var errs []string
}
var errors []string
for _, v := range volumes { for _, v := range volumes {
status, b, err := sockRequest("DELETE", "/volumes/"+v.Name, nil) status, b, err := sockRequest("DELETE", "/volumes/"+v.Name, nil)
if err != nil { if err != nil {
errors = append(errors, err.Error()) errs = append(errs, err.Error())
continue continue
} }
if status != http.StatusNoContent { if status != http.StatusNoContent {
errors = append(errors, fmt.Sprintf("error deleting volume %s: %s", v.Name, string(b))) errs = append(errs, fmt.Sprintf("error deleting volume %s: %s", v.Name, string(b)))
} }
} }
if len(errors) > 0 { c.Assert(errs, checker.HasLen, 0, check.Commentf(strings.Join(errs, "\n")))
return fmt.Errorf(strings.Join(errors, "\n"))
}
return nil
} }
func getAllVolumes() ([]*types.Volume, error) { func getAllVolumes() ([]*types.Volume, error) {
@ -373,13 +357,11 @@ func getAllVolumes() ([]*types.Volume, error) {
var protectedImages = map[string]struct{}{} var protectedImages = map[string]struct{}{}
func deleteAllImages() error { func deleteAllImages(c *check.C) {
cmd := exec.Command(dockerBinary, "images") cmd := exec.Command(dockerBinary, "images")
cmd.Env = appendBaseEnv(true) cmd.Env = appendBaseEnv(true)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { c.Assert(err, checker.IsNil)
return err
}
lines := strings.Split(string(out), "\n")[1:] lines := strings.Split(string(out), "\n")[1:]
var imgs []string var imgs []string
for _, l := range lines { for _, l := range lines {
@ -389,21 +371,16 @@ func deleteAllImages() error {
fields := strings.Fields(l) fields := strings.Fields(l)
imgTag := fields[0] + ":" + fields[1] imgTag := fields[0] + ":" + fields[1]
if _, ok := protectedImages[imgTag]; !ok { if _, ok := protectedImages[imgTag]; !ok {
if fields[0] == "<none>" { if fields[0] == "<none>" || fields[1] == "<none>" {
imgs = append(imgs, fields[2]) imgs = append(imgs, fields[2])
continue continue
} }
imgs = append(imgs, imgTag) imgs = append(imgs, imgTag)
} }
} }
if len(imgs) == 0 { if len(imgs) != 0 {
return nil dockerCmd(c, append([]string{"rmi", "-f"}, imgs...)...)
} }
args := append([]string{"rmi", "-f"}, imgs...)
if err := exec.Command(dockerBinary, args...).Run(); err != nil {
return err
}
return nil
} }
func getPausedContainers() (string, error) { func getPausedContainers() (string, error) {
@ -428,28 +405,21 @@ func getSliceOfPausedContainers() ([]string, error) {
return []string{out}, err return []string{out}, err
} }
func unpauseContainer(container string) error { func unpauseContainer(c *check.C, container string) {
return icmd.RunCommand(dockerBinary, "unpause", container).Error dockerCmd(c, "unpause", container)
} }
func unpauseAllContainers() error { func unpauseAllContainers(c *check.C) {
containers, err := getPausedContainers() containers, err := getPausedContainers()
if err != nil { c.Assert(err, checker.IsNil, check.Commentf("containers: %v", containers))
fmt.Println(containers)
return err
}
containers = strings.Replace(containers, "\n", " ", -1) containers = strings.Replace(containers, "\n", " ", -1)
containers = strings.Trim(containers, " ") containers = strings.Trim(containers, " ")
containerList := strings.Split(containers, " ") containerList := strings.Split(containers, " ")
for _, value := range containerList { for _, value := range containerList {
if err = unpauseContainer(value); err != nil { unpauseContainer(c, value)
return err
}
} }
return nil
} }
func deleteImages(images ...string) error { func deleteImages(images ...string) error {
@ -490,10 +460,7 @@ func dockerCmdWithStdoutStderr(c *check.C, args ...string) (string, string, int)
} }
result := icmd.RunCommand(dockerBinary, args...) result := icmd.RunCommand(dockerBinary, args...)
// TODO: why is c ever nil? c.Assert(result, icmd.Matches, icmd.Success)
if c != nil {
c.Assert(result, icmd.Matches, icmd.Success)
}
return result.Stdout(), result.Stderr(), result.ExitCode return result.Stdout(), result.Stderr(), result.ExitCode
} }