github.com/adityamillind98/moby@v23.0.0-rc.4+incompatible/integration-cli/docker_cli_plugins_logdriver_test.go (about) 1 package main 2 3 import ( 4 "context" 5 "strings" 6 "testing" 7 8 "github.com/docker/docker/client" 9 "gotest.tools/v3/assert" 10 ) 11 12 type DockerCLIPluginLogDriverSuite struct { 13 ds *DockerSuite 14 } 15 16 func (s *DockerCLIPluginLogDriverSuite) TearDownTest(c *testing.T) { 17 s.ds.TearDownTest(c) 18 } 19 20 func (s *DockerCLIPluginLogDriverSuite) OnTimeout(c *testing.T) { 21 s.ds.OnTimeout(c) 22 } 23 24 func (s *DockerCLIPluginLogDriverSuite) TestPluginLogDriver(c *testing.T) { 25 testRequires(c, IsAmd64, DaemonIsLinux) 26 27 pluginName := "cpuguy83/docker-logdriver-test:latest" 28 29 dockerCmd(c, "plugin", "install", pluginName) 30 dockerCmd(c, "run", "--log-driver", pluginName, "--name=test", "busybox", "echo", "hello") 31 out, _ := dockerCmd(c, "logs", "test") 32 assert.Equal(c, strings.TrimSpace(out), "hello") 33 34 dockerCmd(c, "start", "-a", "test") 35 out, _ = dockerCmd(c, "logs", "test") 36 assert.Equal(c, strings.TrimSpace(out), "hello\nhello") 37 38 dockerCmd(c, "rm", "test") 39 dockerCmd(c, "plugin", "disable", pluginName) 40 dockerCmd(c, "plugin", "rm", pluginName) 41 } 42 43 // Make sure log drivers are listed in info, and v2 plugins are not. 44 func (s *DockerCLIPluginLogDriverSuite) TestPluginLogDriverInfoList(c *testing.T) { 45 testRequires(c, IsAmd64, DaemonIsLinux) 46 pluginName := "cpuguy83/docker-logdriver-test" 47 48 dockerCmd(c, "plugin", "install", pluginName) 49 50 cli, err := client.NewClientWithOpts(client.FromEnv) 51 assert.NilError(c, err) 52 defer cli.Close() 53 54 info, err := cli.Info(context.Background()) 55 assert.NilError(c, err) 56 57 drivers := strings.Join(info.Plugins.Log, " ") 58 assert.Assert(c, strings.Contains(drivers, "json-file")) 59 assert.Assert(c, !strings.Contains(drivers, pluginName)) 60 }