docker_cli_plugins_logdriver_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "strings"
  4. "github.com/docker/docker/client"
  5. "github.com/docker/docker/integration-cli/checker"
  6. "github.com/go-check/check"
  7. "golang.org/x/net/context"
  8. )
  9. func (s *DockerSuite) TestPluginLogDriver(c *check.C) {
  10. testRequires(c, IsAmd64, DaemonIsLinux)
  11. pluginName := "cpuguy83/docker-logdriver-test:latest"
  12. dockerCmd(c, "plugin", "install", pluginName)
  13. dockerCmd(c, "run", "--log-driver", pluginName, "--name=test", "busybox", "echo", "hello")
  14. out, _ := dockerCmd(c, "logs", "test")
  15. c.Assert(strings.TrimSpace(out), checker.Equals, "hello")
  16. dockerCmd(c, "start", "-a", "test")
  17. out, _ = dockerCmd(c, "logs", "test")
  18. c.Assert(strings.TrimSpace(out), checker.Equals, "hello\nhello")
  19. dockerCmd(c, "rm", "test")
  20. dockerCmd(c, "plugin", "disable", pluginName)
  21. dockerCmd(c, "plugin", "rm", pluginName)
  22. }
  23. // Make sure log drivers are listed in info, and v2 plugins are not.
  24. func (s *DockerSuite) TestPluginLogDriverInfoList(c *check.C) {
  25. testRequires(c, IsAmd64, DaemonIsLinux)
  26. pluginName := "cpuguy83/docker-logdriver-test"
  27. dockerCmd(c, "plugin", "install", pluginName)
  28. cli, err := client.NewEnvClient()
  29. c.Assert(err, checker.IsNil)
  30. defer cli.Close()
  31. info, err := cli.Info(context.Background())
  32. c.Assert(err, checker.IsNil)
  33. drivers := strings.Join(info.Plugins.Log, " ")
  34. c.Assert(drivers, checker.Contains, "json-file")
  35. c.Assert(drivers, checker.Not(checker.Contains), pluginName)
  36. }