github.com/moby/docker@v26.1.3+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 "github.com/docker/docker/integration-cli/cli" 10 "github.com/docker/docker/testutil" 11 "gotest.tools/v3/assert" 12 ) 13 14 type DockerCLIPluginLogDriverSuite struct { 15 ds *DockerSuite 16 } 17 18 func (s *DockerCLIPluginLogDriverSuite) TearDownTest(ctx context.Context, c *testing.T) { 19 s.ds.TearDownTest(ctx, c) 20 } 21 22 func (s *DockerCLIPluginLogDriverSuite) OnTimeout(c *testing.T) { 23 s.ds.OnTimeout(c) 24 } 25 26 func (s *DockerCLIPluginLogDriverSuite) TestPluginLogDriver(c *testing.T) { 27 testRequires(c, IsAmd64, DaemonIsLinux) 28 29 const pluginName = "cpuguy83/docker-logdriver-test:latest" 30 31 cli.DockerCmd(c, "plugin", "install", pluginName) 32 cli.DockerCmd(c, "run", "--log-driver", pluginName, "--name=test", "busybox", "echo", "hello") 33 out := cli.DockerCmd(c, "logs", "test").Combined() 34 assert.Equal(c, strings.TrimSpace(out), "hello") 35 36 cli.DockerCmd(c, "start", "-a", "test") 37 out = cli.DockerCmd(c, "logs", "test").Combined() 38 assert.Equal(c, strings.TrimSpace(out), "hello\nhello") //nolint:dupword 39 40 cli.DockerCmd(c, "rm", "test") 41 cli.DockerCmd(c, "plugin", "disable", pluginName) 42 cli.DockerCmd(c, "plugin", "rm", pluginName) 43 } 44 45 // Make sure log drivers are listed in info, and v2 plugins are not. 46 func (s *DockerCLIPluginLogDriverSuite) TestPluginLogDriverInfoList(c *testing.T) { 47 testRequires(c, IsAmd64, DaemonIsLinux) 48 const pluginName = "cpuguy83/docker-logdriver-test" 49 50 cli.DockerCmd(c, "plugin", "install", pluginName) 51 52 apiClient, err := client.NewClientWithOpts(client.FromEnv) 53 assert.NilError(c, err) 54 defer apiClient.Close() 55 56 info, err := apiClient.Info(testutil.GetContext(c)) 57 assert.NilError(c, err) 58 59 drivers := strings.Join(info.Plugins.Log, " ") 60 assert.Assert(c, strings.Contains(drivers, "json-file")) 61 assert.Assert(c, !strings.Contains(drivers, pluginName)) 62 }