mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Remove SameHostDaemon, use testEnv.IsLocalDaemon instead
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
362f737e1c
commit
43b15e924f
36 changed files with 172 additions and 176 deletions
|
@ -125,7 +125,7 @@ func (s *DockerRegistrySuite) OnTimeout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerRegistrySuite) SetUpTest(c *check.C) {
|
func (s *DockerRegistrySuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, RegistryHosting, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, RegistryHosting, testEnv.IsLocalDaemon)
|
||||||
s.reg = registry.NewV2(c)
|
s.reg = registry.NewV2(c)
|
||||||
s.reg.WaitReady(c)
|
s.reg.WaitReady(c)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
|
@ -158,7 +158,7 @@ func (s *DockerSchema1RegistrySuite) OnTimeout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSchema1RegistrySuite) SetUpTest(c *check.C) {
|
func (s *DockerSchema1RegistrySuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, RegistryHosting, NotArm64, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, RegistryHosting, NotArm64, testEnv.IsLocalDaemon)
|
||||||
s.reg = registry.NewV2(c, registry.Schema1)
|
s.reg = registry.NewV2(c, registry.Schema1)
|
||||||
s.reg.WaitReady(c)
|
s.reg.WaitReady(c)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
|
@ -191,7 +191,7 @@ func (s *DockerRegistryAuthHtpasswdSuite) OnTimeout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerRegistryAuthHtpasswdSuite) SetUpTest(c *check.C) {
|
func (s *DockerRegistryAuthHtpasswdSuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, RegistryHosting, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, RegistryHosting, testEnv.IsLocalDaemon)
|
||||||
s.reg = registry.NewV2(c, registry.Htpasswd)
|
s.reg = registry.NewV2(c, registry.Htpasswd)
|
||||||
s.reg.WaitReady(c)
|
s.reg.WaitReady(c)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
|
@ -226,7 +226,7 @@ func (s *DockerRegistryAuthTokenSuite) OnTimeout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerRegistryAuthTokenSuite) SetUpTest(c *check.C) {
|
func (s *DockerRegistryAuthTokenSuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, RegistryHosting, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, RegistryHosting, testEnv.IsLocalDaemon)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,12 +266,12 @@ func (s *DockerDaemonSuite) OnTimeout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) SetUpTest(c *check.C) {
|
func (s *DockerDaemonSuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TearDownTest(c *check.C) {
|
func (s *DockerDaemonSuite) TearDownTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
if s.d != nil {
|
if s.d != nil {
|
||||||
s.d.Stop(c)
|
s.d.Stop(c)
|
||||||
}
|
}
|
||||||
|
@ -318,7 +318,7 @@ func (s *DockerSwarmSuite) OnTimeout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSwarmSuite) SetUpTest(c *check.C) {
|
func (s *DockerSwarmSuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSwarmSuite) AddDaemon(c *check.C, joinSwarm, manager bool) *daemon.Daemon {
|
func (s *DockerSwarmSuite) AddDaemon(c *check.C, joinSwarm, manager bool) *daemon.Daemon {
|
||||||
|
|
|
@ -1252,7 +1252,7 @@ func (s *DockerSuite) TestContainerAPIDeleteConflict(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestContainerAPIDeleteRemoveVolume(c *check.C) {
|
func (s *DockerSuite) TestContainerAPIDeleteRemoveVolume(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
vol := "/testvolume"
|
vol := "/testvolume"
|
||||||
if testEnv.OSType == "windows" {
|
if testEnv.OSType == "windows" {
|
||||||
|
@ -1426,7 +1426,7 @@ func (s *DockerSuite) TestPutContainerArchiveErrSymlinkInVolumeToReadOnlyRootfs(
|
||||||
// Windows does not support read-only rootfs
|
// Windows does not support read-only rootfs
|
||||||
// Requires local volume mount bind.
|
// Requires local volume mount bind.
|
||||||
// --read-only + userns has remount issues
|
// --read-only + userns has remount issues
|
||||||
testRequires(c, SameHostDaemon, NotUserNamespace, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, NotUserNamespace, DaemonIsLinux)
|
||||||
|
|
||||||
testVol := getTestDir(c, "test-put-container-archive-err-symlink-in-volume-to-read-only-rootfs-")
|
testVol := getTestDir(c, "test-put-container-archive-err-symlink-in-volume-to-read-only-rootfs-")
|
||||||
defer os.RemoveAll(testVol)
|
defer os.RemoveAll(testVol)
|
||||||
|
@ -1797,7 +1797,7 @@ func (s *DockerSuite) TestContainersAPICreateMountsValidation(c *check.C) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if SameHostDaemon() {
|
if testEnv.IsLocalDaemon() {
|
||||||
tmpDir, err := ioutils.TempDir("", "test-mounts-api")
|
tmpDir, err := ioutils.TempDir("", "test-mounts-api")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
@ -1900,7 +1900,7 @@ func (s *DockerSuite) TestContainersAPICreateMountsValidation(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestContainerAPICreateMountsBindRead(c *check.C) {
|
func (s *DockerSuite) TestContainerAPICreateMountsBindRead(c *check.C) {
|
||||||
testRequires(c, NotUserNamespace, SameHostDaemon)
|
testRequires(c, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
// also with data in the host side
|
// also with data in the host side
|
||||||
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
||||||
destPath := prefix + slash + "foo"
|
destPath := prefix + slash + "foo"
|
||||||
|
@ -1988,7 +1988,7 @@ func (s *DockerSuite) TestContainersAPICreateMountsCreate(c *check.C) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if SameHostDaemon() {
|
if testEnv.IsLocalDaemon() {
|
||||||
// setup temp dir for testing binds
|
// setup temp dir for testing binds
|
||||||
tmpDir1, err := ioutil.TempDir("", "test-mounts-api-1")
|
tmpDir1, err := ioutil.TempDir("", "test-mounts-api-1")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *DockerSuite) TestContainersAPICreateMountsBindNamedPipe(c *check.C) {
|
func (s *DockerSuite) TestContainersAPICreateMountsBindNamedPipe(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsWindowsAtLeastBuild(16299)) // Named pipe support was added in RS3
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsWindowsAtLeastBuild(16299)) // Named pipe support was added in RS3
|
||||||
|
|
||||||
// Create a host pipe to map into the container
|
// Create a host pipe to map into the container
|
||||||
hostPipeName := fmt.Sprintf(`\\.\pipe\docker-cli-test-pipe-%x`, rand.Uint64())
|
hostPipeName := fmt.Sprintf(`\\.\pipe\docker-cli-test-pipe-%x`, rand.Uint64())
|
||||||
|
|
|
@ -212,7 +212,7 @@ func (s *DockerSuite) TestExecAPIStartInvalidCommand(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestExecStateCleanup(c *check.C) {
|
func (s *DockerSuite) TestExecStateCleanup(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
// This test checks accidental regressions. Not part of stable API.
|
// This test checks accidental regressions. Not part of stable API.
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@ func (s *DockerSuite) TestAPIImagesImportBadSrc(c *check.C) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testRequires(c, Network, SameHostDaemon)
|
testRequires(c, Network, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
server := httptest.NewServer(http.NewServeMux())
|
server := httptest.NewServer(http.NewServeMux())
|
||||||
defer server.Close()
|
defer server.Close()
|
||||||
|
|
|
@ -97,7 +97,7 @@ func (s *DockerSuite) TestAPIStatsStoppedContainerInGoroutines(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestAPIStatsNetworkStats(c *check.C) {
|
func (s *DockerSuite) TestAPIStatsNetworkStats(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
out := runSleepingContainer(c)
|
out := runSleepingContainer(c)
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
@ -165,7 +165,7 @@ func (s *DockerSuite) TestAPIStatsNetworkStats(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestAPIStatsNetworkStatsVersioning(c *check.C) {
|
func (s *DockerSuite) TestAPIStatsNetworkStatsVersioning(c *check.C) {
|
||||||
// Windows doesn't support API versions less than 1.25, so no point testing 1.17 .. 1.21
|
// Windows doesn't support API versions less than 1.25, so no point testing 1.17 .. 1.21
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out := runSleepingContainer(c)
|
out := runSleepingContainer(c)
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
|
|
@ -538,7 +538,7 @@ func (s *DockerSwarmSuite) TestAPISwarmServicePlacementPrefs(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSwarmSuite) TestAPISwarmServicesStateReporting(c *check.C) {
|
func (s *DockerSwarmSuite) TestAPISwarmServicesStateReporting(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
|
|
||||||
d1 := s.AddDaemon(c, true, true)
|
d1 := s.AddDaemon(c, true, true)
|
||||||
|
|
|
@ -16,7 +16,7 @@ import (
|
||||||
|
|
||||||
// #9860 Make sure attach ends when container ends (with no errors)
|
// #9860 Make sure attach ends when container ends (with no errors)
|
||||||
func (s *DockerSuite) TestAttachClosedOnContainerStop(c *check.C) {
|
func (s *DockerSuite) TestAttachClosedOnContainerStop(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-dti", "busybox", "/bin/sh", "-c", `trap 'exit 0' SIGTERM; while true; do sleep 1; done`)
|
out, _ := dockerCmd(c, "run", "-dti", "busybox", "/bin/sh", "-c", `trap 'exit 0' SIGTERM; while true; do sleep 1; done`)
|
||||||
|
|
||||||
|
|
|
@ -1047,7 +1047,7 @@ func (s *DockerSuite) TestBuildAddBadLinksVolume(c *check.C) {
|
||||||
// Issue #5270 - ensure we throw a better error than "unexpected EOF"
|
// Issue #5270 - ensure we throw a better error than "unexpected EOF"
|
||||||
// when we can't access files in the context.
|
// when we can't access files in the context.
|
||||||
func (s *DockerSuite) TestBuildWithInaccessibleFilesInContext(c *check.C) {
|
func (s *DockerSuite) TestBuildWithInaccessibleFilesInContext(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, UnixCli, SameHostDaemon) // test uses chown/chmod: not available on windows
|
testRequires(c, DaemonIsLinux, UnixCli, testEnv.IsLocalDaemon) // test uses chown/chmod: not available on windows
|
||||||
|
|
||||||
{
|
{
|
||||||
name := "testbuildinaccessiblefiles"
|
name := "testbuildinaccessiblefiles"
|
||||||
|
@ -1510,7 +1510,7 @@ func (s *DockerSuite) TestBuildPATH(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestBuildContextCleanup(c *check.C) {
|
func (s *DockerSuite) TestBuildContextCleanup(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
name := "testbuildcontextcleanup"
|
name := "testbuildcontextcleanup"
|
||||||
entries, err := ioutil.ReadDir(filepath.Join(testEnv.DaemonInfo.DockerRootDir, "tmp"))
|
entries, err := ioutil.ReadDir(filepath.Join(testEnv.DaemonInfo.DockerRootDir, "tmp"))
|
||||||
|
@ -1532,7 +1532,7 @@ func (s *DockerSuite) TestBuildContextCleanup(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestBuildContextCleanupFailedBuild(c *check.C) {
|
func (s *DockerSuite) TestBuildContextCleanupFailedBuild(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
name := "testbuildcontextcleanup"
|
name := "testbuildcontextcleanup"
|
||||||
entries, err := ioutil.ReadDir(filepath.Join(testEnv.DaemonInfo.DockerRootDir, "tmp"))
|
entries, err := ioutil.ReadDir(filepath.Join(testEnv.DaemonInfo.DockerRootDir, "tmp"))
|
||||||
|
@ -3971,7 +3971,7 @@ func (s *DockerSuite) TestBuildEmptyStringVolume(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestBuildContainerWithCgroupParent(c *check.C) {
|
func (s *DockerSuite) TestBuildContainerWithCgroupParent(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
cgroupParent := "test"
|
cgroupParent := "test"
|
||||||
data, err := ioutil.ReadFile("/proc/self/cgroup")
|
data, err := ioutil.ReadFile("/proc/self/cgroup")
|
||||||
|
|
|
@ -256,7 +256,7 @@ func (s *DockerSuite) TestCpFromSymlinkToDirectory(c *check.C) {
|
||||||
// container.
|
// container.
|
||||||
func (s *DockerSuite) TestCpToSymlinkToDirectory(c *check.C) {
|
func (s *DockerSuite) TestCpToSymlinkToDirectory(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, SameHostDaemon) // Requires local volume mount bind.
|
testRequires(c, testEnv.IsLocalDaemon) // Requires local volume mount bind.
|
||||||
|
|
||||||
testVol, err := ioutil.TempDir("", "test-cp-to-symlink-to-dir-")
|
testVol, err := ioutil.TempDir("", "test-cp-to-symlink-to-dir-")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -379,7 +379,7 @@ func (s *DockerSuite) TestCpSymlinkComponent(c *check.C) {
|
||||||
|
|
||||||
// Check that cp with unprivileged user doesn't return any error
|
// Check that cp with unprivileged user doesn't return any error
|
||||||
func (s *DockerSuite) TestCpUnprivilegedUser(c *check.C) {
|
func (s *DockerSuite) TestCpUnprivilegedUser(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
testRequires(c, UnixCli) // uses chmod/su: not available on windows
|
testRequires(c, UnixCli) // uses chmod/su: not available on windows
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", "touch "+cpTestName)
|
out, _ := dockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", "touch "+cpTestName)
|
||||||
|
@ -404,7 +404,7 @@ func (s *DockerSuite) TestCpUnprivilegedUser(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestCpSpecialFiles(c *check.C) {
|
func (s *DockerSuite) TestCpSpecialFiles(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
outDir, err := ioutil.TempDir("", "cp-test-special-files")
|
outDir, err := ioutil.TempDir("", "cp-test-special-files")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -453,7 +453,7 @@ func (s *DockerSuite) TestCpVolumePath(c *check.C) {
|
||||||
// stat /tmp/cp-test-volumepath851508420/test gets permission denied for the user
|
// stat /tmp/cp-test-volumepath851508420/test gets permission denied for the user
|
||||||
testRequires(c, NotUserNamespace)
|
testRequires(c, NotUserNamespace)
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
tmpDir, err := ioutil.TempDir("", "cp-test-volumepath")
|
tmpDir, err := ioutil.TempDir("", "cp-test-volumepath")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -560,7 +560,7 @@ func (s *DockerSuite) TestCpToStdout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestCpNameHasColon(c *check.C) {
|
func (s *DockerSuite) TestCpNameHasColon(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", "echo lololol > /te:s:t")
|
out, _ := dockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", "echo lololol > /te:s:t")
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ func (s *DockerSuite) TestCpToSymlinkDestination(c *check.C) {
|
||||||
// stat /tmp/test-cp-to-symlink-destination-262430901/vol3 gets permission denied for the user
|
// stat /tmp/test-cp-to-symlink-destination-262430901/vol3 gets permission denied for the user
|
||||||
testRequires(c, NotUserNamespace)
|
testRequires(c, NotUserNamespace)
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, SameHostDaemon) // Requires local volume mount bind.
|
testRequires(c, testEnv.IsLocalDaemon) // Requires local volume mount bind.
|
||||||
|
|
||||||
testVol := getTestDir(c, "test-cp-to-symlink-destination-")
|
testVol := getTestDir(c, "test-cp-to-symlink-destination-")
|
||||||
defer os.RemoveAll(testVol)
|
defer os.RemoveAll(testVol)
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *DockerSuite) TestCpToContainerWithPermissions(c *check.C) {
|
func (s *DockerSuite) TestCpToContainerWithPermissions(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
tmpDir := getTestDir(c, "test-cp-to-host-with-permissions")
|
tmpDir := getTestDir(c, "test-cp-to-host-with-permissions")
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
@ -39,7 +39,7 @@ func (s *DockerSuite) TestCpToContainerWithPermissions(c *check.C) {
|
||||||
|
|
||||||
// Check ownership is root, both in non-userns and userns enabled modes
|
// Check ownership is root, both in non-userns and userns enabled modes
|
||||||
func (s *DockerSuite) TestCpCheckDestOwnership(c *check.C) {
|
func (s *DockerSuite) TestCpCheckDestOwnership(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
tmpVolDir := getTestDir(c, "test-cp-tmpvol")
|
tmpVolDir := getTestDir(c, "test-cp-tmpvol")
|
||||||
containerID := makeTestContainer(c,
|
containerID := makeTestContainer(c,
|
||||||
testContainerOptions{volumes: []string{fmt.Sprintf("%s:/tmpvol", tmpVolDir)}})
|
testContainerOptions{volumes: []string{fmt.Sprintf("%s:/tmpvol", tmpVolDir)}})
|
||||||
|
|
|
@ -291,7 +291,7 @@ func containerStartOutputEquals(c *check.C, containerID, contents string) (err e
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultVolumes(tmpDir string) []string {
|
func defaultVolumes(tmpDir string) []string {
|
||||||
if SameHostDaemon() {
|
if testEnv.IsLocalDaemon() {
|
||||||
return []string{
|
return []string{
|
||||||
"/vol1",
|
"/vol1",
|
||||||
fmt.Sprintf("%s:/vol2", tmpDir),
|
fmt.Sprintf("%s:/vol2", tmpDir),
|
||||||
|
|
|
@ -171,7 +171,7 @@ func (s *DockerSuite) TestCreateEchoStdout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestCreateVolumesCreated(c *check.C) {
|
func (s *DockerSuite) TestCreateVolumesCreated(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
||||||
|
|
||||||
name := "test_create_volume"
|
name := "test_create_volume"
|
||||||
|
@ -249,7 +249,7 @@ func (s *DockerSuite) TestCreateRM(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestCreateModeIpcContainer(c *check.C) {
|
func (s *DockerSuite) TestCreateModeIpcContainer(c *check.C) {
|
||||||
// Uses Linux specific functionality (--ipc)
|
// Uses Linux specific functionality (--ipc)
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "create", "busybox")
|
out, _ := dockerCmd(c, "create", "busybox")
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
|
|
@ -121,7 +121,7 @@ func (s *DockerDaemonSuite) TestDaemonShutdownLiveRestoreWithPlugins(c *check.C)
|
||||||
|
|
||||||
// TestDaemonShutdownWithPlugins shuts down running plugins.
|
// TestDaemonShutdownWithPlugins shuts down running plugins.
|
||||||
func (s *DockerDaemonSuite) TestDaemonShutdownWithPlugins(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonShutdownWithPlugins(c *check.C) {
|
||||||
testRequires(c, IsAmd64, Network, SameHostDaemon)
|
testRequires(c, IsAmd64, Network, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
s.d.Start(c)
|
s.d.Start(c)
|
||||||
if out, err := s.d.Cmd("plugin", "install", "--grant-all-permissions", pName); err != nil {
|
if out, err := s.d.Cmd("plugin", "install", "--grant-all-permissions", pName); err != nil {
|
||||||
|
@ -159,7 +159,7 @@ func (s *DockerDaemonSuite) TestDaemonShutdownWithPlugins(c *check.C) {
|
||||||
|
|
||||||
// TestDaemonKillWithPlugins leaves plugins running.
|
// TestDaemonKillWithPlugins leaves plugins running.
|
||||||
func (s *DockerDaemonSuite) TestDaemonKillWithPlugins(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonKillWithPlugins(c *check.C) {
|
||||||
testRequires(c, IsAmd64, Network, SameHostDaemon)
|
testRequires(c, IsAmd64, Network, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
s.d.Start(c)
|
s.d.Start(c)
|
||||||
if out, err := s.d.Cmd("plugin", "install", "--grant-all-permissions", pName); err != nil {
|
if out, err := s.d.Cmd("plugin", "install", "--grant-all-permissions", pName); err != nil {
|
||||||
|
|
|
@ -413,7 +413,7 @@ func (s *DockerDaemonSuite) TestDaemonIPv6Enabled(c *check.C) {
|
||||||
// that running containers are given a link-local and global IPv6 address
|
// that running containers are given a link-local and global IPv6 address
|
||||||
func (s *DockerDaemonSuite) TestDaemonIPv6FixedCIDR(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonIPv6FixedCIDR(c *check.C) {
|
||||||
// IPv6 setup is messing with local bridge address.
|
// IPv6 setup is messing with local bridge address.
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Delete the docker0 bridge if its left around from previous daemon. It has to be recreated with
|
// Delete the docker0 bridge if its left around from previous daemon. It has to be recreated with
|
||||||
// ipv6 enabled
|
// ipv6 enabled
|
||||||
deleteInterface(c, "docker0")
|
deleteInterface(c, "docker0")
|
||||||
|
@ -440,7 +440,7 @@ func (s *DockerDaemonSuite) TestDaemonIPv6FixedCIDR(c *check.C) {
|
||||||
// the running containers are given an IPv6 address derived from the MAC address and the ipv6 fixed CIDR
|
// the running containers are given an IPv6 address derived from the MAC address and the ipv6 fixed CIDR
|
||||||
func (s *DockerDaemonSuite) TestDaemonIPv6FixedCIDRAndMac(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonIPv6FixedCIDRAndMac(c *check.C) {
|
||||||
// IPv6 setup is messing with local bridge address.
|
// IPv6 setup is messing with local bridge address.
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Delete the docker0 bridge if its left around from previous daemon. It has to be recreated with
|
// Delete the docker0 bridge if its left around from previous daemon. It has to be recreated with
|
||||||
// ipv6 enabled
|
// ipv6 enabled
|
||||||
deleteInterface(c, "docker0")
|
deleteInterface(c, "docker0")
|
||||||
|
@ -458,7 +458,7 @@ func (s *DockerDaemonSuite) TestDaemonIPv6FixedCIDRAndMac(c *check.C) {
|
||||||
// TestDaemonIPv6HostMode checks that when the running a container with
|
// TestDaemonIPv6HostMode checks that when the running a container with
|
||||||
// network=host the host ipv6 addresses are not removed
|
// network=host the host ipv6 addresses are not removed
|
||||||
func (s *DockerDaemonSuite) TestDaemonIPv6HostMode(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonIPv6HostMode(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
deleteInterface(c, "docker0")
|
deleteInterface(c, "docker0")
|
||||||
|
|
||||||
s.d.StartWithBusybox(c, "--ipv6", "--fixed-cidr-v6=2001:db8:2::/64")
|
s.d.StartWithBusybox(c, "--ipv6", "--fixed-cidr-v6=2001:db8:2::/64")
|
||||||
|
@ -822,7 +822,7 @@ func (s *DockerDaemonSuite) TestDaemonDefaultGatewayIPv4ExplicitOutsideContainer
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonDefaultNetworkInvalidClusterConfig(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonDefaultNetworkInvalidClusterConfig(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
// Start daemon without docker0 bridge
|
// Start daemon without docker0 bridge
|
||||||
defaultNetworkBridge := "docker0"
|
defaultNetworkBridge := "docker0"
|
||||||
|
@ -1770,7 +1770,7 @@ func (s *DockerDaemonSuite) TestBridgeIPIsExcludedFromAllocatorPool(c *check.C)
|
||||||
|
|
||||||
// Test daemon for no space left on device error
|
// Test daemon for no space left on device error
|
||||||
func (s *DockerDaemonSuite) TestDaemonNoSpaceLeftOnDeviceError(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonNoSpaceLeftOnDeviceError(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, Network)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, Network)
|
||||||
|
|
||||||
testDir, err := ioutil.TempDir("", "no-space-left-on-device-test")
|
testDir, err := ioutil.TempDir("", "no-space-left-on-device-test")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -2203,7 +2203,7 @@ func (s *DockerDaemonSuite) TestDaemonDebugLog(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonDiscoveryBackendConfigReload(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonDiscoveryBackendConfigReload(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
// daemon config file
|
// daemon config file
|
||||||
daemonConfig := `{ "debug" : false }`
|
daemonConfig := `{ "debug" : false }`
|
||||||
|
@ -2274,7 +2274,7 @@ func (s *DockerDaemonSuite) TestDaemonMaxConcurrency(c *check.C) {
|
||||||
|
|
||||||
// Test case for #20936, #22443
|
// Test case for #20936, #22443
|
||||||
func (s *DockerDaemonSuite) TestDaemonMaxConcurrencyWithConfigFile(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonMaxConcurrencyWithConfigFile(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
// daemon config file
|
// daemon config file
|
||||||
configFilePath := "test.json"
|
configFilePath := "test.json"
|
||||||
|
@ -2315,7 +2315,7 @@ func (s *DockerDaemonSuite) TestDaemonMaxConcurrencyWithConfigFile(c *check.C) {
|
||||||
|
|
||||||
// Test case for #20936, #22443
|
// Test case for #20936, #22443
|
||||||
func (s *DockerDaemonSuite) TestDaemonMaxConcurrencyWithConfigFileReload(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonMaxConcurrencyWithConfigFileReload(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
// daemon config file
|
// daemon config file
|
||||||
configFilePath := "test.json"
|
configFilePath := "test.json"
|
||||||
|
@ -2387,7 +2387,7 @@ func (s *DockerDaemonSuite) TestBuildOnDisabledBridgeNetworkDaemon(c *check.C) {
|
||||||
|
|
||||||
// Test case for #21976
|
// Test case for #21976
|
||||||
func (s *DockerDaemonSuite) TestDaemonDNSFlagsInHostMode(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonDNSFlagsInHostMode(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
s.d.StartWithBusybox(c, "--dns", "1.2.3.4", "--dns-search", "example.com", "--dns-opt", "timeout:3")
|
s.d.StartWithBusybox(c, "--dns", "1.2.3.4", "--dns-search", "example.com", "--dns-opt", "timeout:3")
|
||||||
|
|
||||||
|
@ -2643,7 +2643,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartSaveContainerExitCode(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonWithUserlandProxyPath(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonWithUserlandProxyPath(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
dockerProxyPath, err := exec.LookPath("docker-proxy")
|
dockerProxyPath, err := exec.LookPath("docker-proxy")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -2674,7 +2674,7 @@ func (s *DockerDaemonSuite) TestDaemonWithUserlandProxyPath(c *check.C) {
|
||||||
|
|
||||||
// Test case for #22471
|
// Test case for #22471
|
||||||
func (s *DockerDaemonSuite) TestDaemonShutdownTimeout(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonShutdownTimeout(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
s.d.StartWithBusybox(c, "--shutdown-timeout=3")
|
s.d.StartWithBusybox(c, "--shutdown-timeout=3")
|
||||||
|
|
||||||
_, err := s.d.Cmd("run", "-d", "busybox", "top")
|
_, err := s.d.Cmd("run", "-d", "busybox", "top")
|
||||||
|
@ -2695,7 +2695,7 @@ func (s *DockerDaemonSuite) TestDaemonShutdownTimeout(c *check.C) {
|
||||||
|
|
||||||
// Test case for #22471
|
// Test case for #22471
|
||||||
func (s *DockerDaemonSuite) TestDaemonShutdownTimeoutWithConfigFile(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonShutdownTimeoutWithConfigFile(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
// daemon config file
|
// daemon config file
|
||||||
configFilePath := "test.json"
|
configFilePath := "test.json"
|
||||||
|
@ -2757,7 +2757,7 @@ func (s *DockerDaemonSuite) TestExecWithUserAfterLiveRestore(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestRemoveContainerAfterLiveRestore(c *check.C) {
|
func (s *DockerDaemonSuite) TestRemoveContainerAfterLiveRestore(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, overlayFSSupported, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, overlayFSSupported, testEnv.IsLocalDaemon)
|
||||||
s.d.StartWithBusybox(c, "--live-restore", "--storage-driver", "overlay")
|
s.d.StartWithBusybox(c, "--live-restore", "--storage-driver", "overlay")
|
||||||
out, err := s.d.Cmd("run", "-d", "--name=top", "busybox", "top")
|
out, err := s.d.Cmd("run", "-d", "--name=top", "busybox", "top")
|
||||||
c.Assert(err, check.IsNil, check.Commentf("Output: %s", out))
|
c.Assert(err, check.IsNil, check.Commentf("Output: %s", out))
|
||||||
|
@ -2790,7 +2790,7 @@ func (s *DockerDaemonSuite) TestRemoveContainerAfterLiveRestore(c *check.C) {
|
||||||
|
|
||||||
// #29598
|
// #29598
|
||||||
func (s *DockerDaemonSuite) TestRestartPolicyWithLiveRestore(c *check.C) {
|
func (s *DockerDaemonSuite) TestRestartPolicyWithLiveRestore(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
s.d.StartWithBusybox(c, "--live-restore")
|
s.d.StartWithBusybox(c, "--live-restore")
|
||||||
|
|
||||||
out, err := s.d.Cmd("run", "-d", "--restart", "always", "busybox", "top")
|
out, err := s.d.Cmd("run", "-d", "--restart", "always", "busybox", "top")
|
||||||
|
@ -2939,7 +2939,7 @@ func testDaemonStartIpcMode(c *check.C, from, mode string, valid bool) {
|
||||||
// arguments for default IPC mode, and bails out with incorrect ones.
|
// arguments for default IPC mode, and bails out with incorrect ones.
|
||||||
// Both CLI option (--default-ipc-mode) and config parameter are tested.
|
// Both CLI option (--default-ipc-mode) and config parameter are tested.
|
||||||
func (s *DockerDaemonSuite) TestDaemonStartWithIpcModes(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonStartWithIpcModes(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
ipcModes := []struct {
|
ipcModes := []struct {
|
||||||
mode string
|
mode string
|
||||||
|
@ -3004,7 +3004,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartIpcMode(c *check.C) {
|
||||||
// TestFailedPluginRemove makes sure that a failed plugin remove does not block
|
// TestFailedPluginRemove makes sure that a failed plugin remove does not block
|
||||||
// the daemon from starting
|
// the daemon from starting
|
||||||
func (s *DockerDaemonSuite) TestFailedPluginRemove(c *check.C) {
|
func (s *DockerDaemonSuite) TestFailedPluginRemove(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, IsAmd64, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, IsAmd64, testEnv.IsLocalDaemon)
|
||||||
d := daemon.New(c, dockerBinary, dockerdBinary)
|
d := daemon.New(c, dockerBinary, dockerdBinary)
|
||||||
d.Start(c)
|
d.Start(c)
|
||||||
cli, err := client.NewClient(d.Sock(), api.DefaultVersion, nil, nil)
|
cli, err := client.NewClient(d.Sock(), api.DefaultVersion, nil, nil)
|
||||||
|
|
|
@ -564,7 +564,7 @@ func (s *DockerRegistrySuite) TestEventsImageFilterPush(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestEventsFilterType(c *check.C) {
|
func (s *DockerSuite) TestEventsFilterType(c *check.C) {
|
||||||
// FIXME(vdemeester) fails on e2e run
|
// FIXME(vdemeester) fails on e2e run
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
since := daemonUnixTime(c)
|
since := daemonUnixTime(c)
|
||||||
name := "labelfiltertest"
|
name := "labelfiltertest"
|
||||||
label := "io.docker.testing=image"
|
label := "io.docker.testing=image"
|
||||||
|
|
|
@ -389,7 +389,7 @@ func (s *DockerSuite) TestEventsFilterNetworkID(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonEvents(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonEvents(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
// daemon config file
|
// daemon config file
|
||||||
configFilePath := "test.json"
|
configFilePath := "test.json"
|
||||||
|
@ -458,7 +458,7 @@ func (s *DockerDaemonSuite) TestDaemonEvents(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonEventsWithFilters(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonEventsWithFilters(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
// daemon config file
|
// daemon config file
|
||||||
configFilePath := "test.json"
|
configFilePath := "test.json"
|
||||||
|
|
|
@ -86,7 +86,7 @@ func (s *DockerSuite) TestExecAfterContainerRestart(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestExecAfterDaemonRestart(c *check.C) {
|
func (s *DockerDaemonSuite) TestExecAfterDaemonRestart(c *check.C) {
|
||||||
// TODO Windows CI: Requires a little work to get this ported.
|
// TODO Windows CI: Requires a little work to get this ported.
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
s.d.StartWithBusybox(c)
|
s.d.StartWithBusybox(c)
|
||||||
|
|
||||||
out, err := s.d.Cmd("run", "-d", "--name", "top", "-p", "80", "busybox:latest", "top")
|
out, err := s.d.Cmd("run", "-d", "--name", "top", "-p", "80", "busybox:latest", "top")
|
||||||
|
@ -394,7 +394,7 @@ func (s *DockerSuite) TestLinksPingLinkedContainersOnRename(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunMutableNetworkFiles(c *check.C) {
|
func (s *DockerSuite) TestRunMutableNetworkFiles(c *check.C) {
|
||||||
// Not applicable on Windows to Windows CI.
|
// Not applicable on Windows to Windows CI.
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
for _, fn := range []string{"resolv.conf", "hosts"} {
|
for _, fn := range []string{"resolv.conf", "hosts"} {
|
||||||
containers := cli.DockerCmd(c, "ps", "-q", "-a").Combined()
|
containers := cli.DockerCmd(c, "ps", "-q", "-a").Combined()
|
||||||
if containers != "" {
|
if containers != "" {
|
||||||
|
|
|
@ -45,7 +45,7 @@ func (s *DockerSuite) TestExecInteractiveStdinClose(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestExecTTY(c *check.C) {
|
func (s *DockerSuite) TestExecTTY(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
dockerCmd(c, "run", "-d", "--name=test", "busybox", "sh", "-c", "echo hello > /foo && top")
|
dockerCmd(c, "run", "-d", "--name=test", "busybox", "sh", "-c", "echo hello > /foo && top")
|
||||||
|
|
||||||
cmd := exec.Command(dockerBinary, "exec", "-it", "test", "sh")
|
cmd := exec.Command(dockerBinary, "exec", "-it", "test", "sh")
|
||||||
|
@ -75,7 +75,7 @@ func (s *DockerSuite) TestExecTTY(c *check.C) {
|
||||||
|
|
||||||
// Test the TERM env var is set when -t is provided on exec
|
// Test the TERM env var is set when -t is provided on exec
|
||||||
func (s *DockerSuite) TestExecWithTERM(c *check.C) {
|
func (s *DockerSuite) TestExecWithTERM(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
out, _ := dockerCmd(c, "run", "-id", "busybox", "/bin/cat")
|
out, _ := dockerCmd(c, "run", "-id", "busybox", "/bin/cat")
|
||||||
contID := strings.TrimSpace(out)
|
contID := strings.TrimSpace(out)
|
||||||
cmd := exec.Command(dockerBinary, "exec", "-t", contID, "sh", "-c", "if [ -z $TERM ]; then exit 1; else exit 0; fi")
|
cmd := exec.Command(dockerBinary, "exec", "-t", contID, "sh", "-c", "if [ -z $TERM ]; then exit 1; else exit 0; fi")
|
||||||
|
@ -87,7 +87,7 @@ func (s *DockerSuite) TestExecWithTERM(c *check.C) {
|
||||||
// Test that the TERM env var is not set on exec when -t is not provided, even if it was set
|
// Test that the TERM env var is not set on exec when -t is not provided, even if it was set
|
||||||
// on run
|
// on run
|
||||||
func (s *DockerSuite) TestExecWithNoTERM(c *check.C) {
|
func (s *DockerSuite) TestExecWithNoTERM(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
out, _ := dockerCmd(c, "run", "-itd", "busybox", "/bin/cat")
|
out, _ := dockerCmd(c, "run", "-itd", "busybox", "/bin/cat")
|
||||||
contID := strings.TrimSpace(out)
|
contID := strings.TrimSpace(out)
|
||||||
cmd := exec.Command(dockerBinary, "exec", contID, "sh", "-c", "if [ -z $TERM ]; then exit 0; else exit 1; fi")
|
cmd := exec.Command(dockerBinary, "exec", contID, "sh", "-c", "if [ -z $TERM ]; then exit 0; else exit 1; fi")
|
||||||
|
|
|
@ -51,7 +51,7 @@ type DockerExternalVolumeSuite struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerExternalVolumeSuite) SetUpTest(c *check.C) {
|
func (s *DockerExternalVolumeSuite) SetUpTest(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
s.ec = &eventCounter{}
|
s.ec = &eventCounter{}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ func (s *DockerSuite) TestInfoFormat(c *check.C) {
|
||||||
// TestInfoDiscoveryBackend verifies that a daemon run with `--cluster-advertise` and
|
// TestInfoDiscoveryBackend verifies that a daemon run with `--cluster-advertise` and
|
||||||
// `--cluster-store` properly show the backend's endpoint in info output.
|
// `--cluster-store` properly show the backend's endpoint in info output.
|
||||||
func (s *DockerSuite) TestInfoDiscoveryBackend(c *check.C) {
|
func (s *DockerSuite) TestInfoDiscoveryBackend(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
||||||
|
@ -87,7 +87,7 @@ func (s *DockerSuite) TestInfoDiscoveryBackend(c *check.C) {
|
||||||
// TestInfoDiscoveryInvalidAdvertise verifies that a daemon run with
|
// TestInfoDiscoveryInvalidAdvertise verifies that a daemon run with
|
||||||
// an invalid `--cluster-advertise` configuration
|
// an invalid `--cluster-advertise` configuration
|
||||||
func (s *DockerSuite) TestInfoDiscoveryInvalidAdvertise(c *check.C) {
|
func (s *DockerSuite) TestInfoDiscoveryInvalidAdvertise(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
||||||
|
@ -104,7 +104,7 @@ func (s *DockerSuite) TestInfoDiscoveryInvalidAdvertise(c *check.C) {
|
||||||
// TestInfoDiscoveryAdvertiseInterfaceName verifies that a daemon run with `--cluster-advertise`
|
// TestInfoDiscoveryAdvertiseInterfaceName verifies that a daemon run with `--cluster-advertise`
|
||||||
// configured with interface name properly show the advertise ip-address in info output.
|
// configured with interface name properly show the advertise ip-address in info output.
|
||||||
func (s *DockerSuite) TestInfoDiscoveryAdvertiseInterfaceName(c *check.C) {
|
func (s *DockerSuite) TestInfoDiscoveryAdvertiseInterfaceName(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, Network, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, Network, DaemonIsLinux)
|
||||||
|
|
||||||
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
discoveryBackend := "consul://consuladdr:consulport/some/path"
|
||||||
|
@ -175,7 +175,7 @@ func (s *DockerSuite) TestInfoDisplaysStoppedContainers(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestInfoDebug(c *check.C) {
|
func (s *DockerSuite) TestInfoDebug(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
d := daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
d.Start(c, "--debug")
|
d.Start(c, "--debug")
|
||||||
|
@ -193,7 +193,7 @@ func (s *DockerSuite) TestInfoDebug(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestInsecureRegistries(c *check.C) {
|
func (s *DockerSuite) TestInsecureRegistries(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
registryCIDR := "192.168.1.0/24"
|
registryCIDR := "192.168.1.0/24"
|
||||||
registryHost := "insecurehost.com:5000"
|
registryHost := "insecurehost.com:5000"
|
||||||
|
@ -210,7 +210,7 @@ func (s *DockerSuite) TestInsecureRegistries(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestRegistryMirrors(c *check.C) {
|
func (s *DockerDaemonSuite) TestRegistryMirrors(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
registryMirror1 := "https://192.168.1.2"
|
registryMirror1 := "https://192.168.1.2"
|
||||||
registryMirror2 := "http://registry.mirror.com:5000"
|
registryMirror2 := "http://registry.mirror.com:5000"
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *DockerSuite) TestInfoSecurityOptions(c *check.C) {
|
func (s *DockerSuite) TestInfoSecurityOptions(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, Apparmor, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, Apparmor, DaemonIsLinux)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "info")
|
out, _ := dockerCmd(c, "info")
|
||||||
c.Assert(out, checker.Contains, "Security Options:\n apparmor\n seccomp\n Profile: default\n")
|
c.Assert(out, checker.Contains, "Security Options:\n apparmor\n seccomp\n Profile: default\n")
|
||||||
|
|
|
@ -139,7 +139,7 @@ func (s *DockerSuite) TestLinksNotStartedParentNotFail(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestLinksHostsFilesInject(c *check.C) {
|
func (s *DockerSuite) TestLinksHostsFilesInject(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, SameHostDaemon, ExecSupport)
|
testRequires(c, testEnv.IsLocalDaemon, ExecSupport)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-itd", "--name", "one", "busybox", "top")
|
out, _ := dockerCmd(c, "run", "-itd", "--name", "one", "busybox", "top")
|
||||||
idOne := strings.TrimSpace(out)
|
idOne := strings.TrimSpace(out)
|
||||||
|
@ -157,7 +157,7 @@ func (s *DockerSuite) TestLinksHostsFilesInject(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestLinksUpdateOnRestart(c *check.C) {
|
func (s *DockerSuite) TestLinksUpdateOnRestart(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, SameHostDaemon, ExecSupport)
|
testRequires(c, testEnv.IsLocalDaemon, ExecSupport)
|
||||||
dockerCmd(c, "run", "-d", "--name", "one", "busybox", "top")
|
dockerCmd(c, "run", "-d", "--name", "one", "busybox", "top")
|
||||||
out, _ := dockerCmd(c, "run", "-d", "--name", "two", "--link", "one:onetwo", "--link", "one:one", "busybox", "top")
|
out, _ := dockerCmd(c, "run", "-d", "--name", "two", "--link", "one:onetwo", "--link", "one:one", "busybox", "top")
|
||||||
id := strings.TrimSpace(string(out))
|
id := strings.TrimSpace(string(out))
|
||||||
|
|
|
@ -590,7 +590,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnect(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkIPAMMultipleNetworks(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkIPAMMultipleNetworks(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// test0 bridge network
|
// test0 bridge network
|
||||||
dockerCmd(c, "network", "create", "--subnet=192.168.0.0/16", "test1")
|
dockerCmd(c, "network", "create", "--subnet=192.168.0.0/16", "test1")
|
||||||
assertNwIsAvailable(c, "test1")
|
assertNwIsAvailable(c, "test1")
|
||||||
|
@ -631,7 +631,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkIPAMMultipleNetworks(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkCustomIPAM(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkCustomIPAM(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Create a bridge network using custom ipam driver
|
// Create a bridge network using custom ipam driver
|
||||||
dockerCmd(c, "network", "create", "--ipam-driver", dummyIPAMDriver, "br0")
|
dockerCmd(c, "network", "create", "--ipam-driver", dummyIPAMDriver, "br0")
|
||||||
assertNwIsAvailable(c, "br0")
|
assertNwIsAvailable(c, "br0")
|
||||||
|
@ -647,7 +647,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkCustomIPAM(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkIPAMOptions(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkIPAMOptions(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Create a bridge network using custom ipam driver and options
|
// Create a bridge network using custom ipam driver and options
|
||||||
dockerCmd(c, "network", "create", "--ipam-driver", dummyIPAMDriver, "--ipam-opt", "opt1=drv1", "--ipam-opt", "opt2=drv2", "br0")
|
dockerCmd(c, "network", "create", "--ipam-driver", dummyIPAMDriver, "--ipam-opt", "opt1=drv1", "--ipam-opt", "opt2=drv2", "br0")
|
||||||
assertNwIsAvailable(c, "br0")
|
assertNwIsAvailable(c, "br0")
|
||||||
|
@ -660,7 +660,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkIPAMOptions(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkNullIPAMDriver(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkNullIPAMDriver(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Create a network with null ipam driver
|
// Create a network with null ipam driver
|
||||||
_, _, err := dockerCmdWithError("network", "create", "-d", dummyNetworkDriver, "--ipam-driver", "null", "test000")
|
_, _, err := dockerCmdWithError("network", "create", "-d", dummyNetworkDriver, "--ipam-driver", "null", "test000")
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
|
@ -766,7 +766,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkIPAMInvalidCombinations(c *check.C
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkDriverOptions(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkDriverOptions(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
dockerCmd(c, "network", "create", "-d", dummyNetworkDriver, "-o", "opt1=drv1", "-o", "opt2=drv2", "testopt")
|
dockerCmd(c, "network", "create", "-d", dummyNetworkDriver, "-o", "opt1=drv1", "-o", "opt2=drv2", "testopt")
|
||||||
assertNwIsAvailable(c, "testopt")
|
assertNwIsAvailable(c, "testopt")
|
||||||
gopts := remoteDriverNetworkRequest.Options[netlabel.GenericData]
|
gopts := remoteDriverNetworkRequest.Options[netlabel.GenericData]
|
||||||
|
@ -950,7 +950,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkLinkOnDefaultNetworkOnly(c *check.
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkOverlayPortMapping(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkOverlayPortMapping(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Verify exposed ports are present in ps output when running a container on
|
// Verify exposed ports are present in ps output when running a container on
|
||||||
// a network managed by a driver which does not provide the default gateway
|
// a network managed by a driver which does not provide the default gateway
|
||||||
// for the container
|
// for the container
|
||||||
|
@ -977,7 +977,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkOverlayPortMapping(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkDriverUngracefulRestart(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkDriverUngracefulRestart(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
dnd := "dnd"
|
dnd := "dnd"
|
||||||
did := "did"
|
did := "did"
|
||||||
|
|
||||||
|
@ -1018,7 +1018,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkDriverUngracefulRestart(c *check.C
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkMacInspect(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkMacInspect(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// Verify endpoint MAC address is correctly populated in container's network settings
|
// Verify endpoint MAC address is correctly populated in container's network settings
|
||||||
nwn := "ov"
|
nwn := "ov"
|
||||||
ctn := "bb"
|
ctn := "bb"
|
||||||
|
@ -1084,7 +1084,7 @@ func verifyContainerIsConnectedToNetworks(c *check.C, d *daemon.Daemon, cName st
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksGracefulDaemonRestart(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksGracefulDaemonRestart(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
cName := "bb"
|
cName := "bb"
|
||||||
nwList := []string{"nw1", "nw2", "nw3"}
|
nwList := []string{"nw1", "nw2", "nw3"}
|
||||||
|
|
||||||
|
@ -1103,7 +1103,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksGracefulDaemonRest
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksUngracefulDaemonRestart(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksUngracefulDaemonRestart(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
cName := "cc"
|
cName := "cc"
|
||||||
nwList := []string{"nw1", "nw2", "nw3"}
|
nwList := []string{"nw1", "nw2", "nw3"}
|
||||||
|
|
||||||
|
@ -1130,7 +1130,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkRunNetByID(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkHostModeUngracefulDaemonRestart(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkHostModeUngracefulDaemonRestart(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
s.d.StartWithBusybox(c)
|
s.d.StartWithBusybox(c)
|
||||||
|
|
||||||
// Run a few containers on host network
|
// Run a few containers on host network
|
||||||
|
@ -1256,7 +1256,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkRestartWithMultipleNetworks(c *che
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnectToStoppedContainer(c *check.C) {
|
func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnectToStoppedContainer(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
dockerCmd(c, "network", "create", "test")
|
dockerCmd(c, "network", "create", "test")
|
||||||
dockerCmd(c, "create", "--name=foo", "busybox", "top")
|
dockerCmd(c, "create", "--name=foo", "busybox", "top")
|
||||||
dockerCmd(c, "network", "connect", "test", "foo")
|
dockerCmd(c, "network", "connect", "test", "foo")
|
||||||
|
@ -1785,7 +1785,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkDisconnectFromBridge(c *check.C) {
|
||||||
// TestConntrackFlowsLeak covers the failure scenario of ticket: https://github.com/docker/docker/issues/8795
|
// TestConntrackFlowsLeak covers the failure scenario of ticket: https://github.com/docker/docker/issues/8795
|
||||||
// Validates that conntrack is correctly cleaned once a container is destroyed
|
// Validates that conntrack is correctly cleaned once a container is destroyed
|
||||||
func (s *DockerNetworkSuite) TestConntrackFlowsLeak(c *check.C) {
|
func (s *DockerNetworkSuite) TestConntrackFlowsLeak(c *check.C) {
|
||||||
testRequires(c, IsAmd64, DaemonIsLinux, Network, SameHostDaemon)
|
testRequires(c, IsAmd64, DaemonIsLinux, Network, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
// Create a new network
|
// Create a new network
|
||||||
cli.DockerCmd(c, "network", "create", "--subnet=192.168.10.0/24", "--gateway=192.168.10.1", "-o", "com.docker.network.bridge.host_binding_ipv4=192.168.10.1", "testbind")
|
cli.DockerCmd(c, "network", "create", "--subnet=192.168.10.0/24", "--gateway=192.168.10.1", "-o", "com.docker.network.bridge.host_binding_ipv4=192.168.10.1", "testbind")
|
||||||
|
|
|
@ -440,7 +440,7 @@ enabled: false`, id, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestPluginUpgrade(c *check.C) {
|
func (s *DockerSuite) TestPluginUpgrade(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, Network, SameHostDaemon, IsAmd64, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, Network, testEnv.IsLocalDaemon, IsAmd64, NotUserNamespace)
|
||||||
plugin := "cpuguy83/docker-volume-driver-plugin-local:latest"
|
plugin := "cpuguy83/docker-volume-driver-plugin-local:latest"
|
||||||
pluginV2 := "cpuguy83/docker-volume-driver-plugin-local:v2"
|
pluginV2 := "cpuguy83/docker-volume-driver-plugin-local:v2"
|
||||||
|
|
||||||
|
@ -472,7 +472,7 @@ func (s *DockerSuite) TestPluginUpgrade(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestPluginMetricsCollector(c *check.C) {
|
func (s *DockerSuite) TestPluginMetricsCollector(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, Network, SameHostDaemon, IsAmd64)
|
testRequires(c, DaemonIsLinux, Network, testEnv.IsLocalDaemon, IsAmd64)
|
||||||
d := daemon.New(c, dockerBinary, dockerdBinary)
|
d := daemon.New(c, dockerBinary, dockerdBinary)
|
||||||
d.Start(c)
|
d.Start(c)
|
||||||
defer d.Stop(c)
|
defer d.Stop(c)
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *DockerSuite) TestCLIProxyDisableProxyUnixSock(c *check.C) {
|
func (s *DockerSuite) TestCLIProxyDisableProxyUnixSock(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
icmd.RunCmd(icmd.Cmd{
|
icmd.RunCmd(icmd.Cmd{
|
||||||
Command: []string{dockerBinary, "info"},
|
Command: []string{dockerBinary, "info"},
|
||||||
|
@ -21,7 +21,7 @@ func (s *DockerSuite) TestCLIProxyDisableProxyUnixSock(c *check.C) {
|
||||||
// Can't use localhost here since go has a special case to not use proxy if connecting to localhost
|
// Can't use localhost here since go has a special case to not use proxy if connecting to localhost
|
||||||
// See https://golang.org/pkg/net/http/#ProxyFromEnvironment
|
// See https://golang.org/pkg/net/http/#ProxyFromEnvironment
|
||||||
func (s *DockerDaemonSuite) TestCLIProxyProxyTCPSock(c *check.C) {
|
func (s *DockerDaemonSuite) TestCLIProxyProxyTCPSock(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
// get the IP to use to connect since we can't use localhost
|
// get the IP to use to connect since we can't use localhost
|
||||||
addrs, err := net.InterfaceAddrs()
|
addrs, err := net.InterfaceAddrs()
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
|
|
@ -76,7 +76,7 @@ func (s *DockerSuite) TestRestartWithVolumes(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRestartDisconnectedContainer(c *check.C) {
|
func (s *DockerSuite) TestRestartDisconnectedContainer(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, NotUserNamespace, NotArm)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, NotUserNamespace, NotArm)
|
||||||
|
|
||||||
// Run a container on the default bridge network
|
// Run a container on the default bridge network
|
||||||
out, _ := dockerCmd(c, "run", "-d", "--name", "c0", "busybox", "top")
|
out, _ := dockerCmd(c, "run", "-d", "--name", "c0", "busybox", "top")
|
||||||
|
@ -164,7 +164,7 @@ func (s *DockerSuite) TestRestartContainerwithGoodContainer(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRestartContainerSuccess(c *check.C) {
|
func (s *DockerSuite) TestRestartContainerSuccess(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
out := runSleepingContainer(c, "-d", "--restart=always")
|
out := runSleepingContainer(c, "-d", "--restart=always")
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
@ -191,7 +191,7 @@ func (s *DockerSuite) TestRestartContainerSuccess(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRestartWithPolicyUserDefinedNetwork(c *check.C) {
|
func (s *DockerSuite) TestRestartWithPolicyUserDefinedNetwork(c *check.C) {
|
||||||
// TODO Windows. This may be portable following HNS integration post TP5.
|
// TODO Windows. This may be portable following HNS integration post TP5.
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, NotUserNamespace, NotArm)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, NotUserNamespace, NotArm)
|
||||||
dockerCmd(c, "network", "create", "-d", "bridge", "udNet")
|
dockerCmd(c, "network", "create", "-d", "bridge", "udNet")
|
||||||
|
|
||||||
dockerCmd(c, "run", "-d", "--net=udNet", "--name=first", "busybox", "top")
|
dockerCmd(c, "run", "-d", "--net=udNet", "--name=first", "busybox", "top")
|
||||||
|
@ -234,7 +234,7 @@ func (s *DockerSuite) TestRestartWithPolicyUserDefinedNetwork(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRestartPolicyAfterRestart(c *check.C) {
|
func (s *DockerSuite) TestRestartPolicyAfterRestart(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
out := runSleepingContainer(c, "-d", "--restart=always")
|
out := runSleepingContainer(c, "-d", "--restart=always")
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
|
|
@ -383,7 +383,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir(c *check.C) {
|
||||||
)
|
)
|
||||||
// This test cannot run on a Windows daemon as
|
// This test cannot run on a Windows daemon as
|
||||||
// Windows does not support symlinks inside a volume path
|
// Windows does not support symlinks inside a volume path
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
name := "test-volume-symlink"
|
name := "test-volume-symlink"
|
||||||
|
|
||||||
dir, err := ioutil.TempDir("", name)
|
dir, err := ioutil.TempDir("", name)
|
||||||
|
@ -427,7 +427,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir2(c *check.C) {
|
||||||
)
|
)
|
||||||
// This test cannot run on a Windows daemon as
|
// This test cannot run on a Windows daemon as
|
||||||
// Windows does not support symlinks inside a volume path
|
// Windows does not support symlinks inside a volume path
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
name := "test-volume-symlink2"
|
name := "test-volume-symlink2"
|
||||||
|
|
||||||
if testEnv.OSType == "windows" {
|
if testEnv.OSType == "windows" {
|
||||||
|
@ -494,7 +494,7 @@ func (s *DockerSuite) TestRunVolumesFromInReadWriteMode(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestVolumesFromGetsProperMode(c *check.C) {
|
func (s *DockerSuite) TestVolumesFromGetsProperMode(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
||||||
hostpath := RandomTmpDirPath("test", testEnv.OSType)
|
hostpath := RandomTmpDirPath("test", testEnv.OSType)
|
||||||
if err := os.MkdirAll(hostpath, 0755); err != nil {
|
if err := os.MkdirAll(hostpath, 0755); err != nil {
|
||||||
|
@ -525,7 +525,7 @@ func (s *DockerSuite) TestRunNoDupVolumes(c *check.C) {
|
||||||
someplace := ":/someplace"
|
someplace := ":/someplace"
|
||||||
if testEnv.OSType == "windows" {
|
if testEnv.OSType == "windows" {
|
||||||
// Windows requires that the source directory exists before calling HCS
|
// Windows requires that the source directory exists before calling HCS
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
someplace = `:c:\someplace`
|
someplace = `:c:\someplace`
|
||||||
if err := os.MkdirAll(path1, 0755); err != nil {
|
if err := os.MkdirAll(path1, 0755); err != nil {
|
||||||
c.Fatalf("Failed to create %s: %q", path1, err)
|
c.Fatalf("Failed to create %s: %q", path1, err)
|
||||||
|
@ -1198,7 +1198,7 @@ func (s *DockerSuite) TestRunAddingOptionalDevicesInvalidMode(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModeHostname(c *check.C) {
|
func (s *DockerSuite) TestRunModeHostname(c *check.C) {
|
||||||
// Not applicable on Windows as Windows does not support -h
|
// Not applicable on Windows as Windows does not support -h
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-h=testhostname", "busybox", "cat", "/etc/hostname")
|
out, _ := dockerCmd(c, "run", "-h=testhostname", "busybox", "cat", "/etc/hostname")
|
||||||
|
|
||||||
|
@ -1253,7 +1253,7 @@ func (s *DockerSuite) TestRunDisallowBindMountingRootToRoot(c *check.C) {
|
||||||
// Verify that a container gets default DNS when only localhost resolvers exist
|
// Verify that a container gets default DNS when only localhost resolvers exist
|
||||||
func (s *DockerSuite) TestRunDNSDefaultOptions(c *check.C) {
|
func (s *DockerSuite) TestRunDNSDefaultOptions(c *check.C) {
|
||||||
// Not applicable on Windows as this is testing Unix specific functionality
|
// Not applicable on Windows as this is testing Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
// preserve original resolv.conf for restoring after test
|
// preserve original resolv.conf for restoring after test
|
||||||
origResolvConf, err := ioutil.ReadFile("/etc/resolv.conf")
|
origResolvConf, err := ioutil.ReadFile("/etc/resolv.conf")
|
||||||
|
@ -1321,7 +1321,7 @@ func (s *DockerSuite) TestRunDNSRepeatOptions(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunDNSOptionsBasedOnHostResolvConf(c *check.C) {
|
func (s *DockerSuite) TestRunDNSOptionsBasedOnHostResolvConf(c *check.C) {
|
||||||
// Not applicable on Windows as testing Unix specific functionality
|
// Not applicable on Windows as testing Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
origResolvConf, err := ioutil.ReadFile("/etc/resolv.conf")
|
origResolvConf, err := ioutil.ReadFile("/etc/resolv.conf")
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
|
@ -1403,7 +1403,7 @@ func (s *DockerSuite) TestRunDNSOptionsBasedOnHostResolvConf(c *check.C) {
|
||||||
// check if the container resolv.conf file has at least 0644 perm.
|
// check if the container resolv.conf file has at least 0644 perm.
|
||||||
func (s *DockerSuite) TestRunNonRootUserResolvName(c *check.C) {
|
func (s *DockerSuite) TestRunNonRootUserResolvName(c *check.C) {
|
||||||
// Not applicable on Windows as Windows does not support --user
|
// Not applicable on Windows as Windows does not support --user
|
||||||
testRequires(c, SameHostDaemon, Network, DaemonIsLinux, NotArm)
|
testRequires(c, testEnv.IsLocalDaemon, Network, DaemonIsLinux, NotArm)
|
||||||
|
|
||||||
dockerCmd(c, "run", "--name=testperm", "--user=nobody", "busybox", "nslookup", "apt.dockerproject.org")
|
dockerCmd(c, "run", "--name=testperm", "--user=nobody", "busybox", "nslookup", "apt.dockerproject.org")
|
||||||
|
|
||||||
|
@ -1425,7 +1425,7 @@ func (s *DockerSuite) TestRunNonRootUserResolvName(c *check.C) {
|
||||||
// uses the host's /etc/resolv.conf and does not have any dns options provided.
|
// uses the host's /etc/resolv.conf and does not have any dns options provided.
|
||||||
func (s *DockerSuite) TestRunResolvconfUpdate(c *check.C) {
|
func (s *DockerSuite) TestRunResolvconfUpdate(c *check.C) {
|
||||||
// Not applicable on Windows as testing unix specific functionality
|
// Not applicable on Windows as testing unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
c.Skip("Unstable test, to be re-activated once #19937 is resolved")
|
c.Skip("Unstable test, to be re-activated once #19937 is resolved")
|
||||||
|
|
||||||
tmpResolvConf := []byte("search pommesfrites.fr\nnameserver 12.34.56.78\n")
|
tmpResolvConf := []byte("search pommesfrites.fr\nnameserver 12.34.56.78\n")
|
||||||
|
@ -1880,7 +1880,7 @@ func (s *DockerSuite) TestRunEntrypoint(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunBindMounts(c *check.C) {
|
func (s *DockerSuite) TestRunBindMounts(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
if testEnv.OSType == "linux" {
|
if testEnv.OSType == "linux" {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, NotUserNamespace)
|
||||||
}
|
}
|
||||||
|
@ -2025,7 +2025,7 @@ func (s *DockerSuite) TestRunWithInvalidMacAddress(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunDeallocatePortOnMissingIptablesRule(c *check.C) {
|
func (s *DockerSuite) TestRunDeallocatePortOnMissingIptablesRule(c *check.C) {
|
||||||
// TODO Windows. Network settings are not propagated back to inspect.
|
// TODO Windows. Network settings are not propagated back to inspect.
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out := cli.DockerCmd(c, "run", "-d", "-p", "23:23", "busybox", "top").Combined()
|
out := cli.DockerCmd(c, "run", "-d", "-p", "23:23", "busybox", "top").Combined()
|
||||||
|
|
||||||
|
@ -2043,7 +2043,7 @@ func (s *DockerSuite) TestRunPortInUse(c *check.C) {
|
||||||
// TODO Windows. The duplicate NAT message returned by Windows will be
|
// TODO Windows. The duplicate NAT message returned by Windows will be
|
||||||
// changing as is currently completely undecipherable. Does need modifying
|
// changing as is currently completely undecipherable. Does need modifying
|
||||||
// to run sh rather than top though as top isn't in Windows busybox.
|
// to run sh rather than top though as top isn't in Windows busybox.
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
port := "1234"
|
port := "1234"
|
||||||
dockerCmd(c, "run", "-d", "-p", port+":80", "busybox", "top")
|
dockerCmd(c, "run", "-d", "-p", port+":80", "busybox", "top")
|
||||||
|
@ -2081,7 +2081,7 @@ func (s *DockerSuite) TestRunAllocatePortInReservedRange(c *check.C) {
|
||||||
// Regression test for #7792
|
// Regression test for #7792
|
||||||
func (s *DockerSuite) TestRunMountOrdering(c *check.C) {
|
func (s *DockerSuite) TestRunMountOrdering(c *check.C) {
|
||||||
// TODO Windows: Post RS1. Windows does not support nested mounts.
|
// TODO Windows: Post RS1. Windows does not support nested mounts.
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
prefix, _ := getPrefixAndSlashFromDaemonPlatform()
|
prefix, _ := getPrefixAndSlashFromDaemonPlatform()
|
||||||
|
|
||||||
tmpDir, err := ioutil.TempDir("", "docker_nested_mount_test")
|
tmpDir, err := ioutil.TempDir("", "docker_nested_mount_test")
|
||||||
|
@ -2126,7 +2126,7 @@ func (s *DockerSuite) TestRunMountOrdering(c *check.C) {
|
||||||
// Regression test for https://github.com/docker/docker/issues/8259
|
// Regression test for https://github.com/docker/docker/issues/8259
|
||||||
func (s *DockerSuite) TestRunReuseBindVolumeThatIsSymlink(c *check.C) {
|
func (s *DockerSuite) TestRunReuseBindVolumeThatIsSymlink(c *check.C) {
|
||||||
// Not applicable on Windows as Windows does not support volumes
|
// Not applicable on Windows as Windows does not support volumes
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
prefix, _ := getPrefixAndSlashFromDaemonPlatform()
|
prefix, _ := getPrefixAndSlashFromDaemonPlatform()
|
||||||
|
|
||||||
tmpDir, err := ioutil.TempDir(os.TempDir(), "testlink")
|
tmpDir, err := ioutil.TempDir(os.TempDir(), "testlink")
|
||||||
|
@ -2205,7 +2205,7 @@ func (s *DockerSuite) TestRunNoOutputFromPullInStdout(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunVolumesCleanPaths(c *check.C) {
|
func (s *DockerSuite) TestRunVolumesCleanPaths(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
prefix, slash := getPrefixAndSlashFromDaemonPlatform()
|
||||||
buildImageSuccessfully(c, "run_volumes_clean_paths", build.WithDockerfile(`FROM busybox
|
buildImageSuccessfully(c, "run_volumes_clean_paths", build.WithDockerfile(`FROM busybox
|
||||||
VOLUME `+prefix+`/foo/`))
|
VOLUME `+prefix+`/foo/`))
|
||||||
|
@ -2294,7 +2294,7 @@ func (s *DockerSuite) TestRunExposePort(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModeIpcHost(c *check.C) {
|
func (s *DockerSuite) TestRunModeIpcHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
hostIpc, err := os.Readlink("/proc/1/ns/ipc")
|
hostIpc, err := os.Readlink("/proc/1/ns/ipc")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2325,7 +2325,7 @@ func (s *DockerSuite) TestRunModeIpcContainerNotExists(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModeIpcContainerNotRunning(c *check.C) {
|
func (s *DockerSuite) TestRunModeIpcContainerNotRunning(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "create", "busybox")
|
out, _ := dockerCmd(c, "create", "busybox")
|
||||||
|
|
||||||
|
@ -2338,7 +2338,7 @@ func (s *DockerSuite) TestRunModeIpcContainerNotRunning(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModePIDContainer(c *check.C) {
|
func (s *DockerSuite) TestRunModePIDContainer(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "sh", "-c", "top")
|
out, _ := dockerCmd(c, "run", "-d", "busybox", "sh", "-c", "top")
|
||||||
|
|
||||||
|
@ -2372,7 +2372,7 @@ func (s *DockerSuite) TestRunModePIDContainerNotExists(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModePIDContainerNotRunning(c *check.C) {
|
func (s *DockerSuite) TestRunModePIDContainerNotRunning(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "create", "busybox")
|
out, _ := dockerCmd(c, "create", "busybox")
|
||||||
|
|
||||||
|
@ -2385,7 +2385,7 @@ func (s *DockerSuite) TestRunModePIDContainerNotRunning(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunMountShmMqueueFromHost(c *check.C) {
|
func (s *DockerSuite) TestRunMountShmMqueueFromHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
dockerCmd(c, "run", "-d", "--name", "shmfromhost", "-v", "/dev/shm:/dev/shm", "-v", "/dev/mqueue:/dev/mqueue", "busybox", "sh", "-c", "echo -n test > /dev/shm/test && touch /dev/mqueue/toto && top")
|
dockerCmd(c, "run", "-d", "--name", "shmfromhost", "-v", "/dev/shm:/dev/shm", "-v", "/dev/mqueue:/dev/mqueue", "busybox", "sh", "-c", "echo -n test > /dev/shm/test && touch /dev/mqueue/toto && top")
|
||||||
defer os.Remove("/dev/mqueue/toto")
|
defer os.Remove("/dev/mqueue/toto")
|
||||||
|
@ -2409,7 +2409,7 @@ func (s *DockerSuite) TestRunMountShmMqueueFromHost(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestContainerNetworkMode(c *check.C) {
|
func (s *DockerSuite) TestContainerNetworkMode(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
|
out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
@ -2430,7 +2430,7 @@ func (s *DockerSuite) TestContainerNetworkMode(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModePIDHost(c *check.C) {
|
func (s *DockerSuite) TestRunModePIDHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
hostPid, err := os.Readlink("/proc/1/ns/pid")
|
hostPid, err := os.Readlink("/proc/1/ns/pid")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2452,7 +2452,7 @@ func (s *DockerSuite) TestRunModePIDHost(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunModeUTSHost(c *check.C) {
|
func (s *DockerSuite) TestRunModeUTSHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
hostUTS, err := os.Readlink("/proc/1/ns/uts")
|
hostUTS, err := os.Readlink("/proc/1/ns/uts")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2477,7 +2477,7 @@ func (s *DockerSuite) TestRunModeUTSHost(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunTLSVerify(c *check.C) {
|
func (s *DockerSuite) TestRunTLSVerify(c *check.C) {
|
||||||
// Remote daemons use TLS and this test is not applicable when TLS is required.
|
// Remote daemons use TLS and this test is not applicable when TLS is required.
|
||||||
testRequires(c, SameHostDaemon)
|
testRequires(c, testEnv.IsLocalDaemon)
|
||||||
if out, code, err := dockerCmdWithError("ps"); err != nil || code != 0 {
|
if out, code, err := dockerCmdWithError("ps"); err != nil || code != 0 {
|
||||||
c.Fatalf("Should have worked: %v:\n%v", err, out)
|
c.Fatalf("Should have worked: %v:\n%v", err, out)
|
||||||
}
|
}
|
||||||
|
@ -2574,7 +2574,7 @@ func (s *DockerSuite) TestRunNonLocalMacAddress(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunNetHost(c *check.C) {
|
func (s *DockerSuite) TestRunNetHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
hostNet, err := os.Readlink("/proc/1/ns/net")
|
hostNet, err := os.Readlink("/proc/1/ns/net")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2597,7 +2597,7 @@ func (s *DockerSuite) TestRunNetHost(c *check.C) {
|
||||||
func (s *DockerSuite) TestRunNetHostTwiceSameName(c *check.C) {
|
func (s *DockerSuite) TestRunNetHostTwiceSameName(c *check.C) {
|
||||||
// TODO Windows. As Windows networking evolves and converges towards
|
// TODO Windows. As Windows networking evolves and converges towards
|
||||||
// CNM, this test may be possible to enable on Windows.
|
// CNM, this test may be possible to enable on Windows.
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
dockerCmd(c, "run", "--rm", "--name=thost", "--net=host", "busybox", "true")
|
dockerCmd(c, "run", "--rm", "--name=thost", "--net=host", "busybox", "true")
|
||||||
dockerCmd(c, "run", "--rm", "--name=thost", "--net=host", "busybox", "true")
|
dockerCmd(c, "run", "--rm", "--name=thost", "--net=host", "busybox", "true")
|
||||||
|
@ -2605,7 +2605,7 @@ func (s *DockerSuite) TestRunNetHostTwiceSameName(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunNetContainerWhichHost(c *check.C) {
|
func (s *DockerSuite) TestRunNetContainerWhichHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix-specific capabilities
|
// Not applicable on Windows as uses Unix-specific capabilities
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
hostNet, err := os.Readlink("/proc/1/ns/net")
|
hostNet, err := os.Readlink("/proc/1/ns/net")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3068,7 +3068,7 @@ func (s *DockerSuite) TestRunWriteFilteredProc(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunNetworkFilesBindMount(c *check.C) {
|
func (s *DockerSuite) TestRunNetworkFilesBindMount(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
expected := "test123"
|
expected := "test123"
|
||||||
|
|
||||||
|
@ -3092,7 +3092,7 @@ func (s *DockerSuite) TestRunNetworkFilesBindMount(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunNetworkFilesBindMountRO(c *check.C) {
|
func (s *DockerSuite) TestRunNetworkFilesBindMountRO(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
filename := createTmpFile(c, "test123")
|
filename := createTmpFile(c, "test123")
|
||||||
defer os.Remove(filename)
|
defer os.Remove(filename)
|
||||||
|
@ -3114,7 +3114,7 @@ func (s *DockerSuite) TestRunNetworkFilesBindMountRO(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunNetworkFilesBindMountROFilesystem(c *check.C) {
|
func (s *DockerSuite) TestRunNetworkFilesBindMountROFilesystem(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, UserNamespaceROMount)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, UserNamespaceROMount)
|
||||||
|
|
||||||
filename := createTmpFile(c, "test123")
|
filename := createTmpFile(c, "test123")
|
||||||
defer os.Remove(filename)
|
defer os.Remove(filename)
|
||||||
|
@ -3143,7 +3143,7 @@ func (s *DockerSuite) TestRunNetworkFilesBindMountROFilesystem(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestPtraceContainerProcsFromHost(c *check.C) {
|
func (s *DockerSuite) TestPtraceContainerProcsFromHost(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
|
out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
|
@ -3158,7 +3158,7 @@ func (s *DockerSuite) TestPtraceContainerProcsFromHost(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestAppArmorDeniesPtrace(c *check.C) {
|
func (s *DockerSuite) TestAppArmorDeniesPtrace(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, Apparmor, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, Apparmor, DaemonIsLinux)
|
||||||
|
|
||||||
// Run through 'sh' so we are NOT pid 1. Pid 1 may be able to trace
|
// Run through 'sh' so we are NOT pid 1. Pid 1 may be able to trace
|
||||||
// itself, but pid>1 should not be able to trace pid1.
|
// itself, but pid>1 should not be able to trace pid1.
|
||||||
|
@ -3170,7 +3170,7 @@ func (s *DockerSuite) TestAppArmorDeniesPtrace(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestAppArmorTraceSelf(c *check.C) {
|
func (s *DockerSuite) TestAppArmorTraceSelf(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, Apparmor)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, Apparmor)
|
||||||
|
|
||||||
_, exitCode, _ := dockerCmdWithError("run", "busybox", "readlink", "/proc/1/ns/net")
|
_, exitCode, _ := dockerCmdWithError("run", "busybox", "readlink", "/proc/1/ns/net")
|
||||||
if exitCode != 0 {
|
if exitCode != 0 {
|
||||||
|
@ -3180,7 +3180,7 @@ func (s *DockerSuite) TestAppArmorTraceSelf(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestAppArmorDeniesChmodProc(c *check.C) {
|
func (s *DockerSuite) TestAppArmorDeniesChmodProc(c *check.C) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, SameHostDaemon, Apparmor, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, Apparmor, DaemonIsLinux, NotUserNamespace)
|
||||||
_, exitCode, _ := dockerCmdWithError("run", "busybox", "chmod", "744", "/proc/cpuinfo")
|
_, exitCode, _ := dockerCmdWithError("run", "busybox", "chmod", "744", "/proc/cpuinfo")
|
||||||
if exitCode == 0 {
|
if exitCode == 0 {
|
||||||
// If our test failed, attempt to repair the host system...
|
// If our test failed, attempt to repair the host system...
|
||||||
|
@ -3771,7 +3771,7 @@ func (s *DockerSuite) TestRunWithOomScoreAdjInvalidRange(c *check.C) {
|
||||||
func (s *DockerSuite) TestRunVolumesMountedAsShared(c *check.C) {
|
func (s *DockerSuite) TestRunVolumesMountedAsShared(c *check.C) {
|
||||||
// Volume propagation is linux only. Also it creates directories for
|
// Volume propagation is linux only. Also it creates directories for
|
||||||
// bind mounting, so needs to be same host.
|
// bind mounting, so needs to be same host.
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, NotUserNamespace)
|
||||||
|
|
||||||
// Prepare a source directory to bind mount
|
// Prepare a source directory to bind mount
|
||||||
tmpDir, err := ioutil.TempDir("", "volume-source")
|
tmpDir, err := ioutil.TempDir("", "volume-source")
|
||||||
|
@ -3802,7 +3802,7 @@ func (s *DockerSuite) TestRunVolumesMountedAsShared(c *check.C) {
|
||||||
func (s *DockerSuite) TestRunVolumesMountedAsSlave(c *check.C) {
|
func (s *DockerSuite) TestRunVolumesMountedAsSlave(c *check.C) {
|
||||||
// Volume propagation is linux only. Also it creates directories for
|
// Volume propagation is linux only. Also it creates directories for
|
||||||
// bind mounting, so needs to be same host.
|
// bind mounting, so needs to be same host.
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, NotUserNamespace)
|
||||||
|
|
||||||
// Prepare a source directory to bind mount
|
// Prepare a source directory to bind mount
|
||||||
tmpDir, err := ioutil.TempDir("", "volume-source")
|
tmpDir, err := ioutil.TempDir("", "volume-source")
|
||||||
|
@ -4164,14 +4164,14 @@ func (s *DockerSuite) TestRunCredentialSpecFailures(c *check.C) {
|
||||||
// Note it won't actually do anything in CI configuration with the spec, but
|
// Note it won't actually do anything in CI configuration with the spec, but
|
||||||
// it should not fail to run a container.
|
// it should not fail to run a container.
|
||||||
func (s *DockerSuite) TestRunCredentialSpecWellFormed(c *check.C) {
|
func (s *DockerSuite) TestRunCredentialSpecWellFormed(c *check.C) {
|
||||||
testRequires(c, DaemonIsWindows, SameHostDaemon)
|
testRequires(c, DaemonIsWindows, testEnv.IsLocalDaemon)
|
||||||
validCS := readFile(`fixtures\credentialspecs\valid.json`, c)
|
validCS := readFile(`fixtures\credentialspecs\valid.json`, c)
|
||||||
writeFile(filepath.Join(testEnv.DaemonInfo.DockerRootDir, `credentialspecs\valid.json`), validCS, c)
|
writeFile(filepath.Join(testEnv.DaemonInfo.DockerRootDir, `credentialspecs\valid.json`), validCS, c)
|
||||||
dockerCmd(c, "run", `--security-opt=credentialspec=file://valid.json`, "busybox", "true")
|
dockerCmd(c, "run", `--security-opt=credentialspec=file://valid.json`, "busybox", "true")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunDuplicateMount(c *check.C) {
|
func (s *DockerSuite) TestRunDuplicateMount(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
|
|
||||||
tmpFile, err := ioutil.TempFile("", "touch-me")
|
tmpFile, err := ioutil.TempFile("", "touch-me")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -4307,7 +4307,7 @@ func (s *delayedReader) Read([]byte) (int, error) {
|
||||||
|
|
||||||
// #28823 (originally #28639)
|
// #28823 (originally #28639)
|
||||||
func (s *DockerSuite) TestRunMountReadOnlyDevShm(c *check.C) {
|
func (s *DockerSuite) TestRunMountReadOnlyDevShm(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux, NotUserNamespace)
|
||||||
emptyDir, err := ioutil.TempDir("", "test-read-only-dev-shm")
|
emptyDir, err := ioutil.TempDir("", "test-read-only-dev-shm")
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
defer os.RemoveAll(emptyDir)
|
defer os.RemoveAll(emptyDir)
|
||||||
|
@ -4319,7 +4319,7 @@ func (s *DockerSuite) TestRunMountReadOnlyDevShm(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunMount(c *check.C) {
|
func (s *DockerSuite) TestRunMount(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, NotUserNamespace)
|
||||||
|
|
||||||
// mnt1, mnt2, and testCatFooBar are commonly used in multiple test cases
|
// mnt1, mnt2, and testCatFooBar are commonly used in multiple test cases
|
||||||
tmpDir, err := ioutil.TempDir("", "mount")
|
tmpDir, err := ioutil.TempDir("", "mount")
|
||||||
|
|
|
@ -61,7 +61,7 @@ func (s *DockerSuite) TestRunRedirectStdout(c *check.C) {
|
||||||
// Test recursive bind mount works by default
|
// Test recursive bind mount works by default
|
||||||
func (s *DockerSuite) TestRunWithVolumesIsRecursive(c *check.C) {
|
func (s *DockerSuite) TestRunWithVolumesIsRecursive(c *check.C) {
|
||||||
// /tmp gets permission denied
|
// /tmp gets permission denied
|
||||||
testRequires(c, NotUserNamespace, SameHostDaemon)
|
testRequires(c, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
tmpDir, err := ioutil.TempDir("", "docker_recursive_mount_test")
|
tmpDir, err := ioutil.TempDir("", "docker_recursive_mount_test")
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
|
||||||
|
@ -680,7 +680,7 @@ func (s *DockerSuite) TestRunWithSwappinessInvalid(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunWithMemoryReservation(c *check.C) {
|
func (s *DockerSuite) TestRunWithMemoryReservation(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, memoryReservationSupport)
|
testRequires(c, testEnv.IsLocalDaemon, memoryReservationSupport)
|
||||||
|
|
||||||
file := "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes"
|
file := "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes"
|
||||||
out, _ := dockerCmd(c, "run", "--memory-reservation", "200M", "--name", "test", "busybox", "cat", file)
|
out, _ := dockerCmd(c, "run", "--memory-reservation", "200M", "--name", "test", "busybox", "cat", file)
|
||||||
|
@ -692,7 +692,7 @@ func (s *DockerSuite) TestRunWithMemoryReservation(c *check.C) {
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunWithMemoryReservationInvalid(c *check.C) {
|
func (s *DockerSuite) TestRunWithMemoryReservationInvalid(c *check.C) {
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
testRequires(c, SameHostDaemon, memoryReservationSupport)
|
testRequires(c, testEnv.IsLocalDaemon, memoryReservationSupport)
|
||||||
out, _, err := dockerCmdWithError("run", "-m", "500M", "--memory-reservation", "800M", "busybox", "true")
|
out, _, err := dockerCmdWithError("run", "-m", "500M", "--memory-reservation", "800M", "busybox", "true")
|
||||||
c.Assert(err, check.NotNil)
|
c.Assert(err, check.NotNil)
|
||||||
expected := "Minimum memory limit can not be less than memory reservation limit"
|
expected := "Minimum memory limit can not be less than memory reservation limit"
|
||||||
|
@ -727,7 +727,7 @@ func (s *DockerSuite) TestRunSwapLessThanMemoryLimit(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunInvalidCpusetCpusFlagValue(c *check.C) {
|
func (s *DockerSuite) TestRunInvalidCpusetCpusFlagValue(c *check.C) {
|
||||||
testRequires(c, cgroupCpuset, SameHostDaemon)
|
testRequires(c, cgroupCpuset, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
sysInfo := sysinfo.New(true)
|
sysInfo := sysinfo.New(true)
|
||||||
cpus, err := parsers.ParseUintList(sysInfo.Cpus)
|
cpus, err := parsers.ParseUintList(sysInfo.Cpus)
|
||||||
|
@ -921,7 +921,7 @@ func (s *DockerSuite) TestRunSysctls(c *check.C) {
|
||||||
|
|
||||||
// TestRunSeccompProfileDenyUnshare checks that 'docker run --security-opt seccomp=/tmp/profile.json debian:jessie unshare' exits with operation not permitted.
|
// TestRunSeccompProfileDenyUnshare checks that 'docker run --security-opt seccomp=/tmp/profile.json debian:jessie unshare' exits with operation not permitted.
|
||||||
func (s *DockerSuite) TestRunSeccompProfileDenyUnshare(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompProfileDenyUnshare(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, NotArm, Apparmor)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, NotArm, Apparmor)
|
||||||
jsonData := `{
|
jsonData := `{
|
||||||
"defaultAction": "SCMP_ACT_ALLOW",
|
"defaultAction": "SCMP_ACT_ALLOW",
|
||||||
"syscalls": [
|
"syscalls": [
|
||||||
|
@ -950,7 +950,7 @@ func (s *DockerSuite) TestRunSeccompProfileDenyUnshare(c *check.C) {
|
||||||
|
|
||||||
// TestRunSeccompProfileDenyChmod checks that 'docker run --security-opt seccomp=/tmp/profile.json busybox chmod 400 /etc/hostname' exits with operation not permitted.
|
// TestRunSeccompProfileDenyChmod checks that 'docker run --security-opt seccomp=/tmp/profile.json busybox chmod 400 /etc/hostname' exits with operation not permitted.
|
||||||
func (s *DockerSuite) TestRunSeccompProfileDenyChmod(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompProfileDenyChmod(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
jsonData := `{
|
jsonData := `{
|
||||||
"defaultAction": "SCMP_ACT_ALLOW",
|
"defaultAction": "SCMP_ACT_ALLOW",
|
||||||
"syscalls": [
|
"syscalls": [
|
||||||
|
@ -985,7 +985,7 @@ func (s *DockerSuite) TestRunSeccompProfileDenyChmod(c *check.C) {
|
||||||
// TestRunSeccompProfileDenyUnshareUserns checks that 'docker run debian:jessie unshare --map-root-user --user sh -c whoami' with a specific profile to
|
// TestRunSeccompProfileDenyUnshareUserns checks that 'docker run debian:jessie unshare --map-root-user --user sh -c whoami' with a specific profile to
|
||||||
// deny unshare of a userns exits with operation not permitted.
|
// deny unshare of a userns exits with operation not permitted.
|
||||||
func (s *DockerSuite) TestRunSeccompProfileDenyUnshareUserns(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompProfileDenyUnshareUserns(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, NotArm, Apparmor)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, NotArm, Apparmor)
|
||||||
// from sched.h
|
// from sched.h
|
||||||
jsonData := fmt.Sprintf(`{
|
jsonData := fmt.Sprintf(`{
|
||||||
"defaultAction": "SCMP_ACT_ALLOW",
|
"defaultAction": "SCMP_ACT_ALLOW",
|
||||||
|
@ -1023,7 +1023,7 @@ func (s *DockerSuite) TestRunSeccompProfileDenyUnshareUserns(c *check.C) {
|
||||||
// TestRunSeccompProfileDenyCloneUserns checks that 'docker run syscall-test'
|
// TestRunSeccompProfileDenyCloneUserns checks that 'docker run syscall-test'
|
||||||
// with a the default seccomp profile exits with operation not permitted.
|
// with a the default seccomp profile exits with operation not permitted.
|
||||||
func (s *DockerSuite) TestRunSeccompProfileDenyCloneUserns(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompProfileDenyCloneUserns(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
icmd.RunCommand(dockerBinary, "run", "syscall-test", "userns-test", "id").Assert(c, icmd.Expected{
|
icmd.RunCommand(dockerBinary, "run", "syscall-test", "userns-test", "id").Assert(c, icmd.Expected{
|
||||||
|
@ -1035,7 +1035,7 @@ func (s *DockerSuite) TestRunSeccompProfileDenyCloneUserns(c *check.C) {
|
||||||
// TestRunSeccompUnconfinedCloneUserns checks that
|
// TestRunSeccompUnconfinedCloneUserns checks that
|
||||||
// 'docker run --security-opt seccomp=unconfined syscall-test' allows creating a userns.
|
// 'docker run --security-opt seccomp=unconfined syscall-test' allows creating a userns.
|
||||||
func (s *DockerSuite) TestRunSeccompUnconfinedCloneUserns(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompUnconfinedCloneUserns(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, UserNamespaceInKernel, NotUserNamespace, unprivilegedUsernsClone)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, UserNamespaceInKernel, NotUserNamespace, unprivilegedUsernsClone)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// make sure running w privileged is ok
|
// make sure running w privileged is ok
|
||||||
|
@ -1048,7 +1048,7 @@ func (s *DockerSuite) TestRunSeccompUnconfinedCloneUserns(c *check.C) {
|
||||||
// TestRunSeccompAllowPrivCloneUserns checks that 'docker run --privileged syscall-test'
|
// TestRunSeccompAllowPrivCloneUserns checks that 'docker run --privileged syscall-test'
|
||||||
// allows creating a userns.
|
// allows creating a userns.
|
||||||
func (s *DockerSuite) TestRunSeccompAllowPrivCloneUserns(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompAllowPrivCloneUserns(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, UserNamespaceInKernel, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, UserNamespaceInKernel, NotUserNamespace)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// make sure running w privileged is ok
|
// make sure running w privileged is ok
|
||||||
|
@ -1060,7 +1060,7 @@ func (s *DockerSuite) TestRunSeccompAllowPrivCloneUserns(c *check.C) {
|
||||||
// TestRunSeccompProfileAllow32Bit checks that 32 bit code can run on x86_64
|
// TestRunSeccompProfileAllow32Bit checks that 32 bit code can run on x86_64
|
||||||
// with the default seccomp profile.
|
// with the default seccomp profile.
|
||||||
func (s *DockerSuite) TestRunSeccompProfileAllow32Bit(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompProfileAllow32Bit(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, IsAmd64)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, IsAmd64)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
icmd.RunCommand(dockerBinary, "run", "syscall-test", "exit32-test").Assert(c, icmd.Success)
|
icmd.RunCommand(dockerBinary, "run", "syscall-test", "exit32-test").Assert(c, icmd.Success)
|
||||||
|
@ -1068,14 +1068,14 @@ func (s *DockerSuite) TestRunSeccompProfileAllow32Bit(c *check.C) {
|
||||||
|
|
||||||
// TestRunSeccompAllowSetrlimit checks that 'docker run debian:jessie ulimit -v 1048510' succeeds.
|
// TestRunSeccompAllowSetrlimit checks that 'docker run debian:jessie ulimit -v 1048510' succeeds.
|
||||||
func (s *DockerSuite) TestRunSeccompAllowSetrlimit(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompAllowSetrlimit(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
|
|
||||||
// ulimit uses setrlimit, so we want to make sure we don't break it
|
// ulimit uses setrlimit, so we want to make sure we don't break it
|
||||||
icmd.RunCommand(dockerBinary, "run", "debian:jessie", "bash", "-c", "ulimit -v 1048510").Assert(c, icmd.Success)
|
icmd.RunCommand(dockerBinary, "run", "debian:jessie", "bash", "-c", "ulimit -v 1048510").Assert(c, icmd.Success)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunSeccompDefaultProfileAcct(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompDefaultProfileAcct(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, NotUserNamespace)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
out, _, err := dockerCmdWithError("run", "syscall-test", "acct-test")
|
out, _, err := dockerCmdWithError("run", "syscall-test", "acct-test")
|
||||||
|
@ -1105,7 +1105,7 @@ func (s *DockerSuite) TestRunSeccompDefaultProfileAcct(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunSeccompDefaultProfileNS(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompDefaultProfileNS(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled, NotUserNamespace)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled, NotUserNamespace)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
out, _, err := dockerCmdWithError("run", "syscall-test", "ns-test", "echo", "hello0")
|
out, _, err := dockerCmdWithError("run", "syscall-test", "ns-test", "echo", "hello0")
|
||||||
|
@ -1142,7 +1142,7 @@ func (s *DockerSuite) TestRunSeccompDefaultProfileNS(c *check.C) {
|
||||||
// TestRunNoNewPrivSetuid checks that --security-opt='no-new-privileges=true' prevents
|
// TestRunNoNewPrivSetuid checks that --security-opt='no-new-privileges=true' prevents
|
||||||
// effective uid transitions on executing setuid binaries.
|
// effective uid transitions on executing setuid binaries.
|
||||||
func (s *DockerSuite) TestRunNoNewPrivSetuid(c *check.C) {
|
func (s *DockerSuite) TestRunNoNewPrivSetuid(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
ensureNNPTest(c)
|
ensureNNPTest(c)
|
||||||
|
|
||||||
// test that running a setuid binary results in no effective uid transition
|
// test that running a setuid binary results in no effective uid transition
|
||||||
|
@ -1155,7 +1155,7 @@ func (s *DockerSuite) TestRunNoNewPrivSetuid(c *check.C) {
|
||||||
// TestLegacyRunNoNewPrivSetuid checks that --security-opt=no-new-privileges prevents
|
// TestLegacyRunNoNewPrivSetuid checks that --security-opt=no-new-privileges prevents
|
||||||
// effective uid transitions on executing setuid binaries.
|
// effective uid transitions on executing setuid binaries.
|
||||||
func (s *DockerSuite) TestLegacyRunNoNewPrivSetuid(c *check.C) {
|
func (s *DockerSuite) TestLegacyRunNoNewPrivSetuid(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
ensureNNPTest(c)
|
ensureNNPTest(c)
|
||||||
|
|
||||||
// test that running a setuid binary results in no effective uid transition
|
// test that running a setuid binary results in no effective uid transition
|
||||||
|
@ -1166,7 +1166,7 @@ func (s *DockerSuite) TestLegacyRunNoNewPrivSetuid(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesChown(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesChown(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_CHOWN
|
// test that a root user has default capability CAP_CHOWN
|
||||||
|
@ -1184,7 +1184,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesChown(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesDacOverride(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesDacOverride(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_DAC_OVERRIDE
|
// test that a root user has default capability CAP_DAC_OVERRIDE
|
||||||
|
@ -1197,7 +1197,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesDacOverride(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesFowner(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesFowner(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_FOWNER
|
// test that a root user has default capability CAP_FOWNER
|
||||||
|
@ -1213,7 +1213,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesFowner(c *check.C) {
|
||||||
// TODO CAP_KILL
|
// TODO CAP_KILL
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesSetuid(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesSetuid(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_SETUID
|
// test that a root user has default capability CAP_SETUID
|
||||||
|
@ -1231,7 +1231,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesSetuid(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesSetgid(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesSetgid(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_SETGID
|
// test that a root user has default capability CAP_SETGID
|
||||||
|
@ -1251,7 +1251,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesSetgid(c *check.C) {
|
||||||
// TODO CAP_SETPCAP
|
// TODO CAP_SETPCAP
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesNetBindService(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesNetBindService(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_NET_BIND_SERVICE
|
// test that a root user has default capability CAP_NET_BIND_SERVICE
|
||||||
|
@ -1269,7 +1269,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesNetBindService(c *check.C)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesNetRaw(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesNetRaw(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_NET_RAW
|
// test that a root user has default capability CAP_NET_RAW
|
||||||
|
@ -1287,7 +1287,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesNetRaw(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesChroot(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesChroot(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_SYS_CHROOT
|
// test that a root user has default capability CAP_SYS_CHROOT
|
||||||
|
@ -1305,7 +1305,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesChroot(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesMknod(c *check.C) {
|
func (s *DockerSuite) TestUserNoEffectiveCapabilitiesMknod(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, NotUserNamespace, testEnv.IsLocalDaemon)
|
||||||
ensureSyscallTest(c)
|
ensureSyscallTest(c)
|
||||||
|
|
||||||
// test that a root user has default capability CAP_MKNOD
|
// test that a root user has default capability CAP_MKNOD
|
||||||
|
@ -1327,7 +1327,7 @@ func (s *DockerSuite) TestUserNoEffectiveCapabilitiesMknod(c *check.C) {
|
||||||
// TODO CAP_SETFCAP
|
// TODO CAP_SETFCAP
|
||||||
|
|
||||||
func (s *DockerSuite) TestRunApparmorProcDirectory(c *check.C) {
|
func (s *DockerSuite) TestRunApparmorProcDirectory(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, Apparmor)
|
testRequires(c, testEnv.IsLocalDaemon, Apparmor)
|
||||||
|
|
||||||
// running w seccomp unconfined tests the apparmor profile
|
// running w seccomp unconfined tests the apparmor profile
|
||||||
result := icmd.RunCommand(dockerBinary, "run", "--security-opt", "seccomp=unconfined", "busybox", "chmod", "777", "/proc/1/cgroup")
|
result := icmd.RunCommand(dockerBinary, "run", "--security-opt", "seccomp=unconfined", "busybox", "chmod", "777", "/proc/1/cgroup")
|
||||||
|
@ -1346,7 +1346,7 @@ func (s *DockerSuite) TestRunApparmorProcDirectory(c *check.C) {
|
||||||
// make sure the default profile can be successfully parsed (using unshare as it is
|
// make sure the default profile can be successfully parsed (using unshare as it is
|
||||||
// something which we know is blocked in the default profile)
|
// something which we know is blocked in the default profile)
|
||||||
func (s *DockerSuite) TestRunSeccompWithDefaultProfile(c *check.C) {
|
func (s *DockerSuite) TestRunSeccompWithDefaultProfile(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
|
|
||||||
out, _, err := dockerCmdWithError("run", "--security-opt", "seccomp=../profiles/seccomp/default.json", "debian:jessie", "unshare", "--map-root-user", "--user", "sh", "-c", "whoami")
|
out, _, err := dockerCmdWithError("run", "--security-opt", "seccomp=../profiles/seccomp/default.json", "debian:jessie", "unshare", "--map-root-user", "--user", "sh", "-c", "whoami")
|
||||||
c.Assert(err, checker.NotNil, check.Commentf("%s", out))
|
c.Assert(err, checker.NotNil, check.Commentf("%s", out))
|
||||||
|
@ -1355,7 +1355,7 @@ func (s *DockerSuite) TestRunSeccompWithDefaultProfile(c *check.C) {
|
||||||
|
|
||||||
// TestRunDeviceSymlink checks run with device that follows symlink (#13840 and #22271)
|
// TestRunDeviceSymlink checks run with device that follows symlink (#13840 and #22271)
|
||||||
func (s *DockerSuite) TestRunDeviceSymlink(c *check.C) {
|
func (s *DockerSuite) TestRunDeviceSymlink(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace, NotArm, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, NotUserNamespace, NotArm, testEnv.IsLocalDaemon)
|
||||||
if _, err := os.Stat("/dev/zero"); err != nil {
|
if _, err := os.Stat("/dev/zero"); err != nil {
|
||||||
c.Skip("Host does not have /dev/zero")
|
c.Skip("Host does not have /dev/zero")
|
||||||
}
|
}
|
||||||
|
@ -1404,7 +1404,7 @@ func (s *DockerSuite) TestRunDeviceSymlink(c *check.C) {
|
||||||
|
|
||||||
// TestRunPIDsLimit makes sure the pids cgroup is set with --pids-limit
|
// TestRunPIDsLimit makes sure the pids cgroup is set with --pids-limit
|
||||||
func (s *DockerSuite) TestRunPIDsLimit(c *check.C) {
|
func (s *DockerSuite) TestRunPIDsLimit(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, pidsLimit)
|
testRequires(c, testEnv.IsLocalDaemon, pidsLimit)
|
||||||
|
|
||||||
file := "/sys/fs/cgroup/pids/pids.max"
|
file := "/sys/fs/cgroup/pids/pids.max"
|
||||||
out, _ := dockerCmd(c, "run", "--name", "skittles", "--pids-limit", "4", "busybox", "cat", file)
|
out, _ := dockerCmd(c, "run", "--name", "skittles", "--pids-limit", "4", "busybox", "cat", file)
|
||||||
|
@ -1441,7 +1441,7 @@ func (s *DockerSuite) TestRunUserDeviceAllowed(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestRunSeccompJSONNewFormat(c *check.C) {
|
func (s *DockerDaemonSuite) TestRunSeccompJSONNewFormat(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
|
|
||||||
s.d.StartWithBusybox(c)
|
s.d.StartWithBusybox(c)
|
||||||
|
|
||||||
|
@ -1466,7 +1466,7 @@ func (s *DockerDaemonSuite) TestRunSeccompJSONNewFormat(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestRunSeccompJSONNoNameAndNames(c *check.C) {
|
func (s *DockerDaemonSuite) TestRunSeccompJSONNoNameAndNames(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
|
|
||||||
s.d.StartWithBusybox(c)
|
s.d.StartWithBusybox(c)
|
||||||
|
|
||||||
|
@ -1492,7 +1492,7 @@ func (s *DockerDaemonSuite) TestRunSeccompJSONNoNameAndNames(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestRunSeccompJSONNoArchAndArchMap(c *check.C) {
|
func (s *DockerDaemonSuite) TestRunSeccompJSONNoArchAndArchMap(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
|
|
||||||
s.d.StartWithBusybox(c)
|
s.d.StartWithBusybox(c)
|
||||||
|
|
||||||
|
@ -1529,7 +1529,7 @@ func (s *DockerDaemonSuite) TestRunSeccompJSONNoArchAndArchMap(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestRunWithDaemonDefaultSeccompProfile(c *check.C) {
|
func (s *DockerDaemonSuite) TestRunWithDaemonDefaultSeccompProfile(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, seccompEnabled)
|
testRequires(c, testEnv.IsLocalDaemon, seccompEnabled)
|
||||||
|
|
||||||
s.d.StartWithBusybox(c)
|
s.d.StartWithBusybox(c)
|
||||||
|
|
||||||
|
|
|
@ -332,7 +332,7 @@ func listTar(f io.Reader) ([]string, error) {
|
||||||
func (s *DockerSuite) TestLoadZeroSizeLayer(c *check.C) {
|
func (s *DockerSuite) TestLoadZeroSizeLayer(c *check.C) {
|
||||||
// this will definitely not work if using remote daemon
|
// this will definitely not work if using remote daemon
|
||||||
// very weird test
|
// very weird test
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
|
|
||||||
dockerCmd(c, "load", "-i", "testdata/emptyLayer.tar")
|
dockerCmd(c, "load", "-i", "testdata/emptyLayer.tar")
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
// 1. validate uid/gid maps are set properly
|
// 1. validate uid/gid maps are set properly
|
||||||
// 2. verify that files created are owned by remapped root
|
// 2. verify that files created are owned by remapped root
|
||||||
func (s *DockerDaemonSuite) TestDaemonUserNamespaceRootSetting(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonUserNamespaceRootSetting(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon, UserNamespaceInKernel)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon, UserNamespaceInKernel)
|
||||||
|
|
||||||
s.d.StartWithBusybox(c, "--userns-remap", "default")
|
s.d.StartWithBusybox(c, "--userns-remap", "default")
|
||||||
|
|
||||||
|
|
|
@ -404,7 +404,7 @@ func (s *DockerSuite) TestVolumeCLIRmForceUsage(c *check.C) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TestVolumeCLIRmForce(c *check.C) {
|
func (s *DockerSuite) TestVolumeCLIRmForce(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
name := "test"
|
name := "test"
|
||||||
out, _ := dockerCmd(c, "volume", "create", name)
|
out, _ := dockerCmd(c, "volume", "create", name)
|
||||||
|
@ -574,7 +574,7 @@ func (s *DockerSuite) TestDuplicateMountpointsForVolumesFromAndBind(c *check.C)
|
||||||
|
|
||||||
// Test case (3) for 21845: duplicate targets for --volumes-from and `Mounts` (API only)
|
// Test case (3) for 21845: duplicate targets for --volumes-from and `Mounts` (API only)
|
||||||
func (s *DockerSuite) TestDuplicateMountpointsForVolumesFromAndMounts(c *check.C) {
|
func (s *DockerSuite) TestDuplicateMountpointsForVolumesFromAndMounts(c *check.C) {
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
|
||||||
image := "vimage"
|
image := "vimage"
|
||||||
buildImageSuccessfully(c, image, build.WithDockerfile(`
|
buildImageSuccessfully(c, image, build.WithDockerfile(`
|
||||||
|
|
|
@ -40,7 +40,7 @@ func newDockerHubPullSuite() *DockerHubPullSuite {
|
||||||
|
|
||||||
// SetUpSuite starts the suite daemon.
|
// SetUpSuite starts the suite daemon.
|
||||||
func (s *DockerHubPullSuite) SetUpSuite(c *check.C) {
|
func (s *DockerHubPullSuite) SetUpSuite(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux, SameHostDaemon)
|
testRequires(c, DaemonIsLinux, testEnv.IsLocalDaemon)
|
||||||
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
s.d = daemon.New(c, dockerBinary, dockerdBinary, testdaemon.WithEnvironment(testEnv.Execution))
|
||||||
s.d.Start(c)
|
s.d.Start(c)
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,10 +76,6 @@ func NotPpc64le() bool {
|
||||||
return ArchitectureIsNot("ppc64le")
|
return ArchitectureIsNot("ppc64le")
|
||||||
}
|
}
|
||||||
|
|
||||||
func SameHostDaemon() bool {
|
|
||||||
return testEnv.IsLocalDaemon()
|
|
||||||
}
|
|
||||||
|
|
||||||
func UnixCli() bool {
|
func UnixCli() bool {
|
||||||
return isUnixCli
|
return isUnixCli
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,11 +54,11 @@ func swapMemorySupport() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func memorySwappinessSupport() bool {
|
func memorySwappinessSupport() bool {
|
||||||
return SameHostDaemon() && SysInfo.MemorySwappiness
|
return testEnv.IsLocalDaemon() && SysInfo.MemorySwappiness
|
||||||
}
|
}
|
||||||
|
|
||||||
func blkioWeight() bool {
|
func blkioWeight() bool {
|
||||||
return SameHostDaemon() && SysInfo.BlkioWeight
|
return testEnv.IsLocalDaemon() && SysInfo.BlkioWeight
|
||||||
}
|
}
|
||||||
|
|
||||||
func cgroupCpuset() bool {
|
func cgroupCpuset() bool {
|
||||||
|
@ -111,7 +111,7 @@ func overlay2Supported() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if SameHostDaemon() {
|
if testEnv.IsLocalDaemon() {
|
||||||
SysInfo = sysinfo.New(true)
|
SysInfo = sysinfo.New(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue