mirror of https://github.com/docker/cli.git
86 lines
2.1 KiB
Go
86 lines
2.1 KiB
Go
package multi
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/docker/cli/e2eengine"
|
|
|
|
"gotest.tools/icmd"
|
|
)
|
|
|
|
func TestDockerEngineOnContainerdMultiTest(t *testing.T) {
|
|
defer func() {
|
|
err := e2eengine.CleanupEngine(t)
|
|
if err != nil {
|
|
t.Errorf("Failed to cleanup engine: %s", err)
|
|
}
|
|
}()
|
|
|
|
t.Log("Attempt engine init without experimental")
|
|
// First init
|
|
result := icmd.RunCmd(icmd.Command("docker", "engine", "init"),
|
|
func(c *icmd.Cmd) {
|
|
c.Env = append(c.Env, "DOCKER_CLI_EXPERIMENTAL=disabled")
|
|
})
|
|
result.Assert(t, icmd.Expected{
|
|
Out: "",
|
|
Err: "docker engine init is only supported",
|
|
ExitCode: 1,
|
|
})
|
|
|
|
t.Log("First engine init")
|
|
// First init
|
|
result = icmd.RunCmd(icmd.Command("docker", "engine", "init"),
|
|
func(c *icmd.Cmd) {
|
|
c.Env = append(c.Env, "DOCKER_CLI_EXPERIMENTAL=enabled")
|
|
})
|
|
result.Assert(t, icmd.Expected{
|
|
Out: "Success! The docker engine is now running.",
|
|
Err: "",
|
|
ExitCode: 0,
|
|
})
|
|
|
|
t.Log("checking for updates")
|
|
// Check for updates
|
|
result = icmd.RunCmd(icmd.Command("docker", "engine", "check", "--downgrades", "--pre-releases"))
|
|
result.Assert(t, icmd.Expected{
|
|
Out: "VERSION",
|
|
Err: "",
|
|
ExitCode: 0,
|
|
})
|
|
|
|
t.Log("attempt second init (should fail)")
|
|
// Attempt to init a second time and fail
|
|
result = icmd.RunCmd(icmd.Command("docker", "engine", "init"),
|
|
func(c *icmd.Cmd) {
|
|
c.Env = append(c.Env, "DOCKER_CLI_EXPERIMENTAL=enabled")
|
|
})
|
|
result.Assert(t, icmd.Expected{
|
|
Out: "",
|
|
Err: "engine already present",
|
|
ExitCode: 1,
|
|
})
|
|
|
|
t.Log("perform update")
|
|
// Now update and succeed
|
|
targetVersion := os.Getenv("VERSION")
|
|
result = icmd.RunCmd(icmd.Command("docker", "engine", "update", "--version", targetVersion))
|
|
result.Assert(t, icmd.Expected{
|
|
Out: "Success! The docker engine is now running.",
|
|
Err: "",
|
|
ExitCode: 0,
|
|
})
|
|
|
|
t.Log("remove engine")
|
|
result = icmd.RunCmd(icmd.Command("docker", "engine", "rm"),
|
|
func(c *icmd.Cmd) {
|
|
c.Env = append(c.Env, "DOCKER_CLI_EXPERIMENTAL=enabled")
|
|
})
|
|
result.Assert(t, icmd.Expected{
|
|
Out: "",
|
|
Err: "",
|
|
ExitCode: 0,
|
|
})
|
|
}
|