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  }