github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/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/Prakhar-Agarwal-byte/moby/client"
     9  	"github.com/Prakhar-Agarwal-byte/moby/integration-cli/cli"
    10  	"github.com/Prakhar-Agarwal-byte/moby/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")
    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  }