Merge pull request #34613 from dnephin/remove-pkg-testutil-cmd
Remove pkg testutil cmd
This commit is contained in:
commit
a5631c75e1
48 changed files with 129 additions and 245 deletions
|
@ -5,7 +5,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/integration-cli/cli/build/fakecontext"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
type testingT interface {
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/daemon"
|
||||
"github.com/docker/docker/integration-cli/environment"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
|
|
|
@ -23,10 +23,10 @@ import (
|
|||
"github.com/docker/docker/opts"
|
||||
"github.com/docker/docker/pkg/ioutils"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/docker/go-connections/sockets"
|
||||
"github.com/docker/go-connections/tlsconfig"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/stretchr/testify/require"
|
||||
"golang.org/x/net/context"
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
const attachWait = 5 * time.Second
|
||||
|
@ -168,7 +168,7 @@ func (s *DockerSuite) TestAttachPausedContainer(c *check.C) {
|
|||
dockerCmd(c, "pause", "test")
|
||||
|
||||
result := dockerCmdWithResult("attach", "test")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
Error: "exit status 1",
|
||||
ExitCode: 1,
|
||||
Err: "You cannot attach to a paused container, unpause it first",
|
||||
|
|
|
@ -25,8 +25,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli/build/fakestorage"
|
||||
"github.com/docker/docker/pkg/archive"
|
||||
"github.com/docker/docker/pkg/stringutils"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
)
|
||||
|
||||
|
@ -3866,7 +3866,7 @@ func (s *DockerSuite) TestBuildDockerfileOutsideContext(c *check.C) {
|
|||
filepath.Join(ctx, "dockerfile2"),
|
||||
} {
|
||||
result := dockerCmdWithResult("build", "-t", name, "--no-cache", "-f", dockerfilePath, ".")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
Err: "must be within the build context",
|
||||
ExitCode: 1,
|
||||
})
|
||||
|
|
|
@ -19,9 +19,9 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
"github.com/docker/docker/integration-cli/cli/build/fakecontext"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
units "github.com/docker/go-units"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestBuildResourceConstraintsAreUsed(c *check.C) {
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -14,9 +14,9 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
"github.com/docker/docker/integration-cli/cli/build/fakecontext"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/docker/go-connections/nat"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// Make sure we can create a simple container with some args
|
||||
|
|
|
@ -9,8 +9,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/pkg/mount"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
|
|
|
@ -34,11 +34,11 @@ import (
|
|||
"github.com/docker/docker/opts"
|
||||
"github.com/docker/docker/pkg/mount"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
units "github.com/docker/go-units"
|
||||
"github.com/docker/libnetwork/iptables"
|
||||
"github.com/docker/libtrust"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/kr/pty"
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
@ -834,7 +834,7 @@ func (s *DockerDaemonSuite) TestDaemonDefaultNetworkInvalidClusterConfig(c *chec
|
|||
|
||||
// Start daemon with docker0 bridge
|
||||
result := icmd.RunCommand("ifconfig", defaultNetworkBridge)
|
||||
c.Assert(result, icmd.Matches, icmd.Success)
|
||||
result.Assert(c, icmd.Success)
|
||||
|
||||
s.d.Restart(c, fmt.Sprintf("--cluster-store=%s", discoveryBackend))
|
||||
}
|
||||
|
@ -2105,7 +2105,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartWithUnpausedRunningContainer(t *che
|
|||
ctrBinary,
|
||||
"--address", "unix:///var/run/docker/libcontainerd/docker-containerd.sock",
|
||||
"containers", "resume", cid)
|
||||
t.Assert(result, icmd.Matches, icmd.Success)
|
||||
result.Assert(t, icmd.Success)
|
||||
|
||||
// Give time to containerd to process the command if we don't
|
||||
// the resume event might be received after we do the inspect
|
||||
|
|
|
@ -18,9 +18,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
@ -70,7 +69,7 @@ func (s *DockerSuite) TestEventsUntag(c *check.C) {
|
|||
Command: []string{dockerBinary, "events", "--since=1"},
|
||||
Timeout: time.Millisecond * 2500,
|
||||
})
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Timeout: true})
|
||||
result.Assert(c, icmd.Expected{Timeout: true})
|
||||
|
||||
events := strings.Split(result.Stdout(), "\n")
|
||||
nEvents := len(events)
|
||||
|
@ -264,7 +263,7 @@ func (s *DockerSuite) TestEventsImageLoad(c *check.C) {
|
|||
dockerCmd(c, "load", "-i", "saveimg.tar")
|
||||
|
||||
result := icmd.RunCommand("rm", "-rf", "saveimg.tar")
|
||||
c.Assert(result, icmd.Matches, icmd.Success)
|
||||
result.Assert(c, icmd.Success)
|
||||
|
||||
out, _ = dockerCmd(c, "images", "-q", "--no-trunc", myImageName)
|
||||
imageID := strings.TrimSpace(out)
|
||||
|
@ -788,7 +787,7 @@ func (s *DockerSuite) TestEventsFormat(c *check.C) {
|
|||
func (s *DockerSuite) TestEventsFormatBadFunc(c *check.C) {
|
||||
// make sure it fails immediately, without receiving any event
|
||||
result := dockerCmdWithResult("events", "--format", "{{badFuncString .}}")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
Error: "exit status 64",
|
||||
ExitCode: 64,
|
||||
Err: "Error parsing format: template: :1: function \"badFuncString\" not defined",
|
||||
|
@ -798,7 +797,7 @@ func (s *DockerSuite) TestEventsFormatBadFunc(c *check.C) {
|
|||
func (s *DockerSuite) TestEventsFormatBadField(c *check.C) {
|
||||
// make sure it fails immediately, without receiving any event
|
||||
result := dockerCmdWithResult("events", "--format", "{{.badFieldString}}")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
Error: "exit status 64",
|
||||
ExitCode: 64,
|
||||
Err: "Error parsing format: template: :1:2: executing \"\" at <.badFieldString>: can't evaluate field badFieldString in type *events.Message",
|
||||
|
|
|
@ -18,8 +18,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
@ -133,7 +133,7 @@ func (s *DockerSuite) TestExecExitStatus(c *check.C) {
|
|||
runSleepingContainer(c, "-d", "--name", "top")
|
||||
|
||||
result := icmd.RunCommand(dockerBinary, "exec", "top", "sh", "-c", "exit 23")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{ExitCode: 23, Error: "exit status 23"})
|
||||
result.Assert(c, icmd.Expected{ExitCode: 23, Error: "exit status 23"})
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestExecPausedContainer(c *check.C) {
|
||||
|
|
|
@ -5,8 +5,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// export an image and try to import it into a new one
|
||||
|
|
|
@ -13,8 +13,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestImagesEnsureImageIsListed(c *check.C) {
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestImportDisplay(c *check.C) {
|
||||
|
@ -138,5 +138,5 @@ func (s *DockerSuite) TestImportWithQuotedChanges(c *check.C) {
|
|||
image := strings.TrimSpace(result.Stdout())
|
||||
|
||||
result = cli.DockerCmd(c, "run", "--rm", image, "true")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: icmd.None})
|
||||
result.Assert(c, icmd.Expected{Out: icmd.None})
|
||||
}
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func checkValidGraphDriver(c *check.C, name string) {
|
||||
|
|
|
@ -8,8 +8,8 @@ import (
|
|||
"github.com/docker/docker/client"
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/pkg/jsonlog"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// This used to work, it test a log of PageSize-1 (gh#4851)
|
||||
|
|
|
@ -20,7 +20,6 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/daemon"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/docker/docker/runconfig"
|
||||
"github.com/docker/libnetwork/driverapi"
|
||||
remoteapi "github.com/docker/libnetwork/drivers/remote/api"
|
||||
|
@ -28,6 +27,7 @@ import (
|
|||
remoteipam "github.com/docker/libnetwork/ipams/remote/api"
|
||||
"github.com/docker/libnetwork/netlabel"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/vishvananda/netlink"
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
@ -482,7 +482,7 @@ func (s *DockerSuite) TestDockerNetworkInspectWithID(c *check.C) {
|
|||
|
||||
func (s *DockerSuite) TestDockerInspectMultipleNetwork(c *check.C) {
|
||||
result := dockerCmdWithResult("network", "inspect", "host", "none")
|
||||
c.Assert(result, icmd.Matches, icmd.Success)
|
||||
result.Assert(c, icmd.Success)
|
||||
|
||||
networkResources := []types.NetworkResource{}
|
||||
err := json.Unmarshal([]byte(result.Stdout()), &networkResources)
|
||||
|
@ -494,7 +494,7 @@ func (s *DockerSuite) TestDockerInspectMultipleNetworksIncludingNonexistent(c *c
|
|||
// non-existent network was not at the beginning of the inspect list
|
||||
// This should print an error, return an exitCode 1 and print the host network
|
||||
result := dockerCmdWithResult("network", "inspect", "host", "nonexistent")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
ExitCode: 1,
|
||||
Err: "Error: No such network: nonexistent",
|
||||
Out: "host",
|
||||
|
@ -508,7 +508,7 @@ func (s *DockerSuite) TestDockerInspectMultipleNetworksIncludingNonexistent(c *c
|
|||
// Only one non-existent network to inspect
|
||||
// Should print an error and return an exitCode, nothing else
|
||||
result = dockerCmdWithResult("network", "inspect", "nonexistent")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
ExitCode: 1,
|
||||
Err: "Error: No such network: nonexistent",
|
||||
Out: "[]",
|
||||
|
@ -517,7 +517,7 @@ func (s *DockerSuite) TestDockerInspectMultipleNetworksIncludingNonexistent(c *c
|
|||
// non-existent network was at the beginning of the inspect list
|
||||
// Should not fail fast, and still print host network but print an error
|
||||
result = dockerCmdWithResult("network", "inspect", "nonexistent", "host")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
ExitCode: 1,
|
||||
Err: "Error: No such network: nonexistent",
|
||||
Out: "host",
|
||||
|
|
|
@ -16,8 +16,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/daemon"
|
||||
"github.com/docker/docker/integration-cli/fixtures/plugin"
|
||||
"github.com/docker/docker/integration-cli/request"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestCLIProxyDisableProxyUnixSock(c *check.C) {
|
||||
|
|
|
@ -14,8 +14,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestPsListContainersBase(c *check.C) {
|
||||
|
@ -206,7 +206,7 @@ func (s *DockerSuite) TestPsListContainersFilterStatus(c *check.C) {
|
|||
c.Assert(containerOut, checker.Equals, secondID)
|
||||
|
||||
result := cli.Docker(cli.Args("ps", "-a", "-q", "--filter=status=rubbish"), cli.WithTimeout(time.Second*60))
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
ExitCode: 1,
|
||||
Err: "Invalid filter 'status=rubbish'",
|
||||
})
|
||||
|
|
|
@ -15,8 +15,8 @@ import (
|
|||
"github.com/docker/distribution/manifest/schema2"
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/opencontainers/go-digest"
|
||||
)
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerTrustSuite) TestTrustedPull(c *check.C) {
|
||||
|
|
|
@ -16,8 +16,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// Pushing an image to a private registry.
|
||||
|
|
|
@ -5,8 +5,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestRenameStoppedContainer(c *check.C) {
|
||||
|
@ -63,7 +63,7 @@ func (s *DockerSuite) TestRenameCheckNames(c *check.C) {
|
|||
c.Assert(name, checker.Equals, "/"+newName, check.Commentf("Failed to rename container %s", name))
|
||||
|
||||
result := dockerCmdWithResult("inspect", "-f={{.Name}}", "--type=container", "first_name")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
ExitCode: 1,
|
||||
Err: "No such container: first_name",
|
||||
})
|
||||
|
|
|
@ -9,8 +9,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestRmiWithContainerFails(c *check.C) {
|
||||
|
|
|
@ -28,12 +28,12 @@ import (
|
|||
"github.com/docker/docker/pkg/mount"
|
||||
"github.com/docker/docker/pkg/stringid"
|
||||
"github.com/docker/docker/pkg/stringutils"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/docker/docker/runconfig"
|
||||
"github.com/docker/go-connections/nat"
|
||||
"github.com/docker/libnetwork/resolvconf"
|
||||
"github.com/docker/libnetwork/types"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
libcontainerUser "github.com/opencontainers/runc/libcontainer/user"
|
||||
)
|
||||
|
||||
|
@ -1798,7 +1798,7 @@ func (s *DockerSuite) TestRunInteractiveWithRestartPolicy(c *check.C) {
|
|||
}()
|
||||
|
||||
result = icmd.WaitOnCmd(60*time.Second, result)
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{ExitCode: 11})
|
||||
result.Assert(c, icmd.Expected{ExitCode: 11})
|
||||
}
|
||||
|
||||
// Test for #2267
|
||||
|
|
|
@ -23,8 +23,8 @@ import (
|
|||
"github.com/docker/docker/pkg/mount"
|
||||
"github.com/docker/docker/pkg/parsers"
|
||||
"github.com/docker/docker/pkg/sysinfo"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/kr/pty"
|
||||
)
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
)
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/kr/pty"
|
||||
)
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/daemon"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
type logMessage struct {
|
||||
|
@ -287,7 +287,7 @@ func (s *DockerSwarmSuite) TestServiceLogsTTY(c *check.C) {
|
|||
result = icmd.RunCmd(cmd)
|
||||
// for some reason there is carriage return in the output. i think this is
|
||||
// just expected.
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: "out\r\nerr\r\n"})
|
||||
result.Assert(c, icmd.Expected{Out: "out\r\nerr\r\n"})
|
||||
}
|
||||
|
||||
func (s *DockerSwarmSuite) TestServiceLogsNoHangDeletedContainer(c *check.C) {
|
||||
|
@ -307,7 +307,7 @@ func (s *DockerSwarmSuite) TestServiceLogsNoHangDeletedContainer(c *check.C) {
|
|||
))
|
||||
|
||||
// confirm that the command succeeded
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{})
|
||||
result.Assert(c, icmd.Expected{})
|
||||
// get the service id
|
||||
id := strings.TrimSpace(result.Stdout())
|
||||
c.Assert(id, checker.Not(checker.Equals), "")
|
||||
|
@ -322,9 +322,9 @@ func (s *DockerSwarmSuite) TestServiceLogsNoHangDeletedContainer(c *check.C) {
|
|||
containerID := strings.TrimSpace(result.Stdout())
|
||||
c.Assert(containerID, checker.Not(checker.Equals), "")
|
||||
result = icmd.RunCmd(d.Command("stop", containerID))
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: containerID})
|
||||
result.Assert(c, icmd.Expected{Out: containerID})
|
||||
result = icmd.RunCmd(d.Command("rm", containerID))
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: containerID})
|
||||
result.Assert(c, icmd.Expected{Out: containerID})
|
||||
|
||||
// run logs. use tail 2 to make sure we don't try to get a bunch of logs
|
||||
// somehow and slow down execution time
|
||||
|
@ -336,7 +336,7 @@ func (s *DockerSwarmSuite) TestServiceLogsNoHangDeletedContainer(c *check.C) {
|
|||
// then, assert that the result matches expected. if the command timed out,
|
||||
// if the command is timed out, result.Timeout will be true, but the
|
||||
// Expected defaults to false
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{})
|
||||
result.Assert(c, icmd.Expected{})
|
||||
}
|
||||
|
||||
func (s *DockerSwarmSuite) TestServiceLogsDetails(c *check.C) {
|
||||
|
@ -376,12 +376,12 @@ func (s *DockerSwarmSuite) TestServiceLogsDetails(c *check.C) {
|
|||
// in this case, we should get details and we should get log message, but
|
||||
// there will also be context as details (which will fall after the detail
|
||||
// we inserted in alphabetical order
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: "asdf=test1"})
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: "LogLine"})
|
||||
result.Assert(c, icmd.Expected{Out: "asdf=test1"})
|
||||
result.Assert(c, icmd.Expected{Out: "LogLine"})
|
||||
|
||||
// call service logs with details. this time, don't pass raw
|
||||
result = icmd.RunCmd(d.Command("service", "logs", "--details", id))
|
||||
// in this case, we should get details space logmessage as well. the context
|
||||
// is part of the pretty part of the logline
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Out: "asdf=test1 LogLine"})
|
||||
result.Assert(c, icmd.Expected{Out: "asdf=test1 LogLine"})
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// Regression test for https://github.com/docker/docker/issues/7843
|
||||
|
|
|
@ -22,12 +22,12 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/daemon"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/docker/libnetwork/driverapi"
|
||||
"github.com/docker/libnetwork/ipamapi"
|
||||
remoteipam "github.com/docker/libnetwork/ipams/remote/api"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/fs"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/vishvananda/netlink"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
|
|
@ -4,8 +4,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestTopMultipleArgs(c *check.C) {
|
||||
|
@ -20,7 +20,7 @@ func (s *DockerSuite) TestTopMultipleArgs(c *check.C) {
|
|||
expected = icmd.Expected{Out: "PID"}
|
||||
}
|
||||
result := dockerCmdWithResult("top", cleanedContainerID, "-o", "pid")
|
||||
c.Assert(result, icmd.Matches, expected)
|
||||
result.Assert(c, expected)
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestTopNonPrivileged(c *check.C) {
|
||||
|
|
|
@ -6,8 +6,8 @@ import (
|
|||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
func (s *DockerSuite) TestUpdateRestartPolicy(c *check.C) {
|
||||
|
|
|
@ -14,8 +14,8 @@ import (
|
|||
"github.com/docker/docker/client"
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli/build"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
@ -58,7 +58,7 @@ func (s *DockerSuite) TestVolumeCLIInspectMulti(c *check.C) {
|
|||
dockerCmd(c, "volume", "create", "test3")
|
||||
|
||||
result := dockerCmdWithResult("volume", "inspect", "--format={{ .Name }}", "test1", "test2", "doesnotexist", "test3")
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{
|
||||
result.Assert(c, icmd.Expected{
|
||||
ExitCode: 1,
|
||||
Err: "No such volume: doesnotexist",
|
||||
})
|
||||
|
|
|
@ -7,8 +7,8 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// non-blocking wait with 0 exit code
|
||||
|
|
|
@ -9,8 +9,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/pkg/parsers/kernel"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
// ensure Kernel version is >= v3.9 for macvlan support
|
||||
|
@ -382,7 +382,7 @@ func (s *DockerSuite) TestDockerNetworkMacVlanBridgeInternalMode(c *check.C) {
|
|||
|
||||
// access outside of the network should fail
|
||||
result := cli.Docker(cli.Args("exec", "first", "ping", "-c", "1", "-w", "1", "8.8.8.8"), cli.WithTimeout(time.Second))
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Timeout: true})
|
||||
result.Assert(c, icmd.Expected{Timeout: true})
|
||||
|
||||
// intra-network communications should succeed
|
||||
cli.DockerCmd(c, "exec", "second", "ping", "-c", "1", "first")
|
||||
|
@ -421,7 +421,7 @@ func (s *DockerSuite) TestDockerNetworkIpvlanL2InternalMode(c *check.C) {
|
|||
|
||||
// access outside of the network should fail
|
||||
result := cli.Docker(cli.Args("exec", "first", "ping", "-c", "1", "-w", "1", "8.8.8.8"), cli.WithTimeout(time.Second))
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Timeout: true})
|
||||
result.Assert(c, icmd.Expected{Timeout: true})
|
||||
// intra-network communications should succeed
|
||||
cli.DockerCmd(c, "exec", "second", "ping", "-c", "1", "first")
|
||||
}
|
||||
|
@ -461,7 +461,7 @@ func (s *DockerSuite) TestDockerNetworkIpvlanL3InternalMode(c *check.C) {
|
|||
|
||||
// access outside of the network should fail
|
||||
result := cli.Docker(cli.Args("exec", "first", "ping", "-c", "1", "-w", "1", "8.8.8.8"), cli.WithTimeout(time.Second))
|
||||
c.Assert(result, icmd.Matches, icmd.Expected{Timeout: true})
|
||||
result.Assert(c, icmd.Expected{Timeout: true})
|
||||
// intra-network communications should succeed
|
||||
cli.DockerCmd(c, "exec", "second", "ping", "-c", "1", "first")
|
||||
}
|
||||
|
|
|
@ -21,8 +21,8 @@ import (
|
|||
"github.com/docker/docker/integration-cli/daemon"
|
||||
"github.com/docker/docker/integration-cli/registry"
|
||||
"github.com/docker/docker/integration-cli/request"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/filters"
|
||||
"github.com/docker/docker/client"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/integration-cli/fixtures/load"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
type protectedElements struct {
|
||||
|
|
|
@ -18,9 +18,9 @@ import (
|
|||
"github.com/docker/docker/integration-cli/cli"
|
||||
"github.com/docker/docker/integration-cli/fixtures/plugin"
|
||||
"github.com/docker/docker/integration-cli/request"
|
||||
icmd "github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/docker/go-connections/tlsconfig"
|
||||
"github.com/go-check/check"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
)
|
||||
|
||||
var notaryBinary = "notary"
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/docker/docker/pkg/stringutils"
|
||||
"github.com/docker/docker/pkg/testutil/cmd"
|
||||
"github.com/gotestyourself/gotestyourself/icmd"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
|
@ -20,15 +20,15 @@ func getPrefixAndSlashFromDaemonPlatform() (prefix, slash string) {
|
|||
}
|
||||
|
||||
// TODO: update code to call cmd.RunCmd directly, and remove this function
|
||||
// Deprecated: use pkg/testutil/cmd instead
|
||||
// Deprecated: use gotestyourself/gotestyourself/icmd
|
||||
func runCommandWithOutput(execCmd *exec.Cmd) (string, int, error) {
|
||||
result := cmd.RunCmd(transformCmd(execCmd))
|
||||
result := icmd.RunCmd(transformCmd(execCmd))
|
||||
return result.Combined(), result.ExitCode, result.Error
|
||||
}
|
||||
|
||||
// Temporary shim for migrating commands to the new function
|
||||
func transformCmd(execCmd *exec.Cmd) cmd.Cmd {
|
||||
return cmd.Cmd{
|
||||
func transformCmd(execCmd *exec.Cmd) icmd.Cmd {
|
||||
return icmd.Cmd{
|
||||
Command: execCmd.Args,
|
||||
Env: execCmd.Env,
|
||||
Dir: execCmd.Dir,
|
||||
|
|
|
@ -1,118 +0,0 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestRunCommand(t *testing.T) {
|
||||
// TODO Windows: Port this test
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Skip("Needs porting to Windows")
|
||||
}
|
||||
|
||||
var cmd string
|
||||
if runtime.GOOS == "solaris" {
|
||||
cmd = "gls"
|
||||
} else {
|
||||
cmd = "ls"
|
||||
}
|
||||
result := RunCommand(cmd)
|
||||
result.Assert(t, Expected{})
|
||||
|
||||
result = RunCommand("doesnotexists")
|
||||
expectedError := `exec: "doesnotexists": executable file not found`
|
||||
result.Assert(t, Expected{ExitCode: 127, Error: expectedError})
|
||||
|
||||
result = RunCommand(cmd, "-z")
|
||||
result.Assert(t, Expected{
|
||||
ExitCode: 2,
|
||||
Error: "exit status 2",
|
||||
Err: "invalid option",
|
||||
})
|
||||
assert.Contains(t, result.Combined(), "invalid option")
|
||||
}
|
||||
|
||||
func TestRunCommandWithCombined(t *testing.T) {
|
||||
// TODO Windows: Port this test
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Skip("Needs porting to Windows")
|
||||
}
|
||||
|
||||
result := RunCommand("ls", "-a")
|
||||
result.Assert(t, Expected{})
|
||||
|
||||
assert.Contains(t, result.Combined(), "..")
|
||||
assert.Contains(t, result.Stdout(), "..")
|
||||
}
|
||||
|
||||
func TestRunCommandWithTimeoutFinished(t *testing.T) {
|
||||
// TODO Windows: Port this test
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Skip("Needs porting to Windows")
|
||||
}
|
||||
|
||||
result := RunCmd(Cmd{
|
||||
Command: []string{"ls", "-a"},
|
||||
Timeout: 50 * time.Millisecond,
|
||||
})
|
||||
result.Assert(t, Expected{Out: ".."})
|
||||
}
|
||||
|
||||
func TestRunCommandWithTimeoutKilled(t *testing.T) {
|
||||
// TODO Windows: Port this test
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Skip("Needs porting to Windows")
|
||||
}
|
||||
|
||||
command := []string{"sh", "-c", "while true ; do echo 1 ; sleep .5 ; done"}
|
||||
result := RunCmd(Cmd{Command: command, Timeout: 1250 * time.Millisecond})
|
||||
result.Assert(t, Expected{Timeout: true})
|
||||
|
||||
ones := strings.Split(result.Stdout(), "\n")
|
||||
assert.Len(t, ones, 4)
|
||||
}
|
||||
|
||||
func TestRunCommandWithErrors(t *testing.T) {
|
||||
result := RunCommand("/foobar")
|
||||
result.Assert(t, Expected{Error: "foobar", ExitCode: 127})
|
||||
}
|
||||
|
||||
func TestRunCommandWithStdoutStderr(t *testing.T) {
|
||||
result := RunCommand("echo", "hello", "world")
|
||||
result.Assert(t, Expected{Out: "hello world\n", Err: None})
|
||||
}
|
||||
|
||||
func TestRunCommandWithStdoutStderrError(t *testing.T) {
|
||||
result := RunCommand("doesnotexists")
|
||||
|
||||
expected := `exec: "doesnotexists": executable file not found`
|
||||
result.Assert(t, Expected{Out: None, Err: None, ExitCode: 127, Error: expected})
|
||||
|
||||
switch runtime.GOOS {
|
||||
case "windows":
|
||||
expected = "ls: unknown option"
|
||||
case "solaris":
|
||||
expected = "gls: invalid option"
|
||||
default:
|
||||
expected = "ls: invalid option"
|
||||
}
|
||||
|
||||
var cmd string
|
||||
if runtime.GOOS == "solaris" {
|
||||
cmd = "gls"
|
||||
} else {
|
||||
cmd = "ls"
|
||||
}
|
||||
result = RunCommand(cmd, "-z")
|
||||
result.Assert(t, Expected{
|
||||
Out: None,
|
||||
Err: expected,
|
||||
ExitCode: 2,
|
||||
Error: "exit status 2",
|
||||
})
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
package cmd
|
||||
/*Package icmd executes binaries and provides convenient assertions for testing the results.
|
||||
*/
|
||||
package icmd
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
@ -10,19 +12,14 @@ import (
|
|||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/docker/docker/pkg/system"
|
||||
"github.com/go-check/check"
|
||||
)
|
||||
|
||||
type testingT interface {
|
||||
Fatalf(string, ...interface{})
|
||||
}
|
||||
|
||||
const (
|
||||
// None is a token to inform Result.Assert that the output should be empty
|
||||
None string = "<NOTHING>"
|
||||
)
|
||||
// None is a token to inform Result.Assert that the output should be empty
|
||||
const None string = "[NOTHING]"
|
||||
|
||||
type lockedBuffer struct {
|
||||
m sync.RWMutex
|
||||
|
@ -70,6 +67,7 @@ func (r *Result) Assert(t testingT, exp Expected) *Result {
|
|||
|
||||
// Compare returns a formatted error with the command, stdout, stderr, exit
|
||||
// code, and any failed expectations
|
||||
// nolint: gocyclo
|
||||
func (r *Result) Compare(exp Expected) error {
|
||||
errors := []string{}
|
||||
add := func(format string, args ...interface{}) {
|
||||
|
@ -151,7 +149,8 @@ type Expected struct {
|
|||
Err string
|
||||
}
|
||||
|
||||
// Success is the default expected result
|
||||
// Success is the default expected result. A Success result is one with a 0
|
||||
// ExitCode.
|
||||
var Success = Expected{}
|
||||
|
||||
// Stdout returns the stdout of the process as a string
|
||||
|
@ -169,46 +168,14 @@ func (r *Result) Combined() string {
|
|||
return r.outBuffer.String() + r.errBuffer.String()
|
||||
}
|
||||
|
||||
// SetExitError sets Error and ExitCode based on Error
|
||||
func (r *Result) SetExitError(err error) {
|
||||
func (r *Result) setExitError(err error) {
|
||||
if err == nil {
|
||||
return
|
||||
}
|
||||
r.Error = err
|
||||
r.ExitCode = system.ProcessExitCode(err)
|
||||
r.ExitCode = processExitCode(err)
|
||||
}
|
||||
|
||||
type matches struct{}
|
||||
|
||||
// Info returns the CheckerInfo
|
||||
func (m *matches) Info() *check.CheckerInfo {
|
||||
return &check.CheckerInfo{
|
||||
Name: "CommandMatches",
|
||||
Params: []string{"result", "expected"},
|
||||
}
|
||||
}
|
||||
|
||||
// Check compares a result against the expected
|
||||
func (m *matches) Check(params []interface{}, names []string) (bool, string) {
|
||||
result, ok := params[0].(*Result)
|
||||
if !ok {
|
||||
return false, fmt.Sprintf("result must be a *Result, not %T", params[0])
|
||||
}
|
||||
expected, ok := params[1].(Expected)
|
||||
if !ok {
|
||||
return false, fmt.Sprintf("expected must be an Expected, not %T", params[1])
|
||||
}
|
||||
|
||||
err := result.Compare(expected)
|
||||
if err == nil {
|
||||
return true, ""
|
||||
}
|
||||
return false, err.Error()
|
||||
}
|
||||
|
||||
// Matches is a gocheck.Checker for comparing a Result against an Expected
|
||||
var Matches = &matches{}
|
||||
|
||||
// Cmd contains the arguments and options for a process to run as part of a test
|
||||
// suite.
|
||||
type Cmd struct {
|
||||
|
@ -226,7 +193,7 @@ func Command(command string, args ...string) Cmd {
|
|||
}
|
||||
|
||||
// RunCmd runs a command and returns a Result
|
||||
func RunCmd(cmd Cmd, cmdOperators ...func(*Cmd)) *Result {
|
||||
func RunCmd(cmd Cmd, cmdOperators ...CmdOp) *Result {
|
||||
for _, op := range cmdOperators {
|
||||
op(&cmd)
|
||||
}
|
||||
|
@ -237,7 +204,7 @@ func RunCmd(cmd Cmd, cmdOperators ...func(*Cmd)) *Result {
|
|||
return WaitOnCmd(cmd.Timeout, result)
|
||||
}
|
||||
|
||||
// RunCommand parses a command line and runs it, returning a result
|
||||
// RunCommand runs a command with default options, and returns a result
|
||||
func RunCommand(command string, args ...string) *Result {
|
||||
return RunCmd(Command(command, args...))
|
||||
}
|
||||
|
@ -248,7 +215,7 @@ func StartCmd(cmd Cmd) *Result {
|
|||
if result.Error != nil {
|
||||
return result
|
||||
}
|
||||
result.SetExitError(result.Cmd.Start())
|
||||
result.setExitError(result.Cmd.Start())
|
||||
return result
|
||||
}
|
||||
|
||||
|
@ -283,7 +250,7 @@ func buildCmd(cmd Cmd) *Result {
|
|||
// only wait until the timeout.
|
||||
func WaitOnCmd(timeout time.Duration, result *Result) *Result {
|
||||
if timeout == time.Duration(0) {
|
||||
result.SetExitError(result.Cmd.Wait())
|
||||
result.setExitError(result.Cmd.Wait())
|
||||
return result
|
||||
}
|
||||
|
||||
|
@ -301,7 +268,7 @@ func WaitOnCmd(timeout time.Duration, result *Result) *Result {
|
|||
}
|
||||
result.Timeout = true
|
||||
case err := <-done:
|
||||
result.SetExitError(err)
|
||||
result.setExitError(err)
|
||||
}
|
||||
return result
|
||||
}
|
32
vendor/github.com/gotestyourself/gotestyourself/icmd/exitcode.go
generated
vendored
Normal file
32
vendor/github.com/gotestyourself/gotestyourself/icmd/exitcode.go
generated
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
package icmd
|
||||
|
||||
import (
|
||||
"os/exec"
|
||||
"syscall"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// getExitCode returns the ExitStatus of a process from the error returned by
|
||||
// exec.Run(). If the exit status could not be parsed an error is returned.
|
||||
func getExitCode(err error) (int, error) {
|
||||
if exiterr, ok := err.(*exec.ExitError); ok {
|
||||
if procExit, ok := exiterr.Sys().(syscall.WaitStatus); ok {
|
||||
return procExit.ExitStatus(), nil
|
||||
}
|
||||
}
|
||||
return 0, errors.Wrap(err, "failed to get exit code")
|
||||
}
|
||||
|
||||
func processExitCode(err error) (exitCode int) {
|
||||
if err == nil {
|
||||
return 0
|
||||
}
|
||||
exitCode, exiterr := getExitCode(err)
|
||||
if exiterr != nil {
|
||||
// TODO: Fix this so we check the error's text.
|
||||
// we've failed to retrieve exit code, so we set it to 127
|
||||
return 127
|
||||
}
|
||||
return exitCode
|
||||
}
|
4
vendor/github.com/gotestyourself/gotestyourself/icmd/ops.go
generated
vendored
Normal file
4
vendor/github.com/gotestyourself/gotestyourself/icmd/ops.go
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
package icmd
|
||||
|
||||
// CmdOp is an operation which modified a Cmd structure used to execute commands
|
||||
type CmdOp func(*Cmd)
|
Loading…
Reference in a new issue