diff --git a/integration-cli/docker_api_build_test.go b/integration-cli/docker_api_build_test.go index 3f43c95432..5f83394f69 100644 --- a/integration-cli/docker_api_build_test.go +++ b/integration-cli/docker_api_build_test.go @@ -30,7 +30,7 @@ func (s *DockerSuite) TestBuildAPIDockerFileRemote(c *check.C) { testRequires(c, NotUserNamespace) var testD string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { testD = `FROM busybox RUN find / -name ba* RUN find /tmp/` diff --git a/integration-cli/docker_api_containers_test.go b/integration-cli/docker_api_containers_test.go index cd3566f4b4..02e8e9f7d2 100644 --- a/integration-cli/docker_api_containers_test.go +++ b/integration-cli/docker_api_containers_test.go @@ -1016,7 +1016,7 @@ func (s *DockerSuite) TestContainerAPIWait(c *check.C) { name := "test-api-wait" sleepCmd := "/bin/sleep" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { sleepCmd = "sleep" } dockerCmd(c, "run", "--name", name, "busybox", sleepCmd, "2") @@ -1216,7 +1216,7 @@ func (s *DockerSuite) TestContainerAPIDeleteRemoveVolume(c *check.C) { testRequires(c, SameHostDaemon) vol := "/testvolume" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { vol = `c:\testvolume` } @@ -1890,7 +1890,7 @@ func (s *DockerSuite) TestContainersAPICreateMountsCreate(c *check.C) { var ( testImg string ) - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { testImg = "test-mount-config" buildImageSuccessfully(c, testImg, build.WithDockerfile(` FROM busybox @@ -1987,7 +1987,7 @@ func (s *DockerSuite) TestContainersAPICreateMountsCreate(c *check.C) { } } - if testEnv.DaemonPlatform() != "windows" { // Windows does not support volume populate + if testEnv.OSType != "windows" { // Windows does not support volume populate cases = append(cases, []testCase{ { spec: mounttypes.Mount{Type: "volume", Target: destPath, VolumeOptions: &mounttypes.VolumeOptions{NoCopy: true}}, diff --git a/integration-cli/docker_api_images_test.go b/integration-cli/docker_api_images_test.go index fba69dc682..10cb52eeb0 100644 --- a/integration-cli/docker_api_images_test.go +++ b/integration-cli/docker_api_images_test.go @@ -80,7 +80,7 @@ func (s *DockerSuite) TestAPIImagesDelete(c *check.C) { c.Assert(err, checker.IsNil) defer cli.Close() - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { testRequires(c, Network) } name := "test-api-images-delete" @@ -104,7 +104,7 @@ func (s *DockerSuite) TestAPIImagesHistory(c *check.C) { c.Assert(err, checker.IsNil) defer cli.Close() - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { testRequires(c, Network) } name := "test-api-images-history" diff --git a/integration-cli/docker_api_inspect_test.go b/integration-cli/docker_api_inspect_test.go index 38f3f4dd83..52a889f08b 100644 --- a/integration-cli/docker_api_inspect_test.go +++ b/integration-cli/docker_api_inspect_test.go @@ -28,7 +28,7 @@ func (s *DockerSuite) TestInspectAPIContainerResponse(c *check.C) { var cases []acase - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { cases = []acase{ {"v1.25", append(keysBase, "Mounts")}, } diff --git a/integration-cli/docker_api_stats_test.go b/integration-cli/docker_api_stats_test.go index 7c9de1c083..1818c3b4ea 100644 --- a/integration-cli/docker_api_stats_test.go +++ b/integration-cli/docker_api_stats_test.go @@ -39,7 +39,7 @@ func (s *DockerSuite) TestAPIStatsNoStreamGetCpu(c *check.C) { var cpuPercent = 0.0 - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { cpuDelta := float64(v.CPUStats.CPUUsage.TotalUsage - v.PreCPUStats.CPUUsage.TotalUsage) systemDelta := float64(v.CPUStats.SystemUsage - v.PreCPUStats.SystemUsage) cpuPercent = (cpuDelta / systemDelta) * float64(len(v.CPUStats.CPUUsage.PercpuUsage)) * 100.0 @@ -105,7 +105,7 @@ func (s *DockerSuite) TestAPIStatsNetworkStats(c *check.C) { // Retrieve the container address net := "bridge" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { net = "nat" } contIP := findContainerIP(c, id, net) @@ -153,7 +153,7 @@ func (s *DockerSuite) TestAPIStatsNetworkStats(c *check.C) { // On Linux, account for ARP. expRxPkts := preRxPackets + uint64(numPings) expTxPkts := preTxPackets + uint64(numPings) - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { expRxPkts++ expTxPkts++ } diff --git a/integration-cli/docker_api_test.go b/integration-cli/docker_api_test.go index af189b9d07..e5b454fbf2 100644 --- a/integration-cli/docker_api_test.go +++ b/integration-cli/docker_api_test.go @@ -33,7 +33,7 @@ func (s *DockerSuite) TestAPIGetEnabledCORS(c *check.C) { } func (s *DockerSuite) TestAPIClientVersionOldNotSupported(c *check.C) { - if testEnv.DaemonPlatform() != runtime.GOOS { + if testEnv.OSType != runtime.GOOS { c.Skip("Daemon platform doesn't match test platform") } if api.MinVersion == api.DefaultVersion { diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index cb3b047a46..be1f656794 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -40,7 +40,7 @@ func (s *DockerSuite) TestBuildJSONEmptyRun(c *check.C) { func (s *DockerSuite) TestBuildShCmdJSONEntrypoint(c *check.C) { name := "testbuildshcmdjsonentrypoint" expected := "/bin/sh -c echo test" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = "cmd /S /C echo test" } @@ -78,7 +78,7 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementVolume(c *check.C) { var volumePath string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { volumePath = "c:/quux" } else { volumePath = "/quux" @@ -135,7 +135,7 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementWorkdir(c *check.C) { res := inspectFieldJSON(c, name, "Config.WorkingDir") expected := `"/work"` - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = `"C:\\work"` } if res != expected { @@ -1304,7 +1304,7 @@ func (s *DockerSuite) TestBuildRelativeWorkdir(c *check.C) { expectedFinal string ) - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected1 = `C:/` expected2 = `C:/test1` expected3 = `C:/test2` @@ -1383,7 +1383,7 @@ func (s *DockerSuite) TestBuildWorkdirWithEnvVariables(c *check.C) { name := "testbuildworkdirwithenvvariables" var expected string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = `C:\test1\test2` } else { expected = `/test1/test2` @@ -1405,7 +1405,7 @@ func (s *DockerSuite) TestBuildRelativeCopy(c *check.C) { testRequires(c, NotUserNamespace) var expected string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = `C:/test1/test2` } else { expected = `/test1/test2` @@ -2189,7 +2189,7 @@ func (s *DockerSuite) TestBuildAddFileNotFound(c *check.C) { name := "testbuildaddnotfound" expected := "foo: no such file or directory" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = "foo: The system cannot find the file specified" } @@ -2243,7 +2243,7 @@ func (s *DockerSuite) TestBuildOnBuild(c *check.C) { // gh #2446 func (s *DockerSuite) TestBuildAddToSymlinkDest(c *check.C) { makeLink := `ln -s /foo /bar` - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { makeLink = `mklink /D C:\bar C:\foo` } name := "testbuildaddtosymlinkdest" @@ -3198,7 +3198,7 @@ func (s *DockerSuite) TestBuildCmdShDashC(c *check.C) { res := inspectFieldJSON(c, name, "Config.Cmd") expected := `["/bin/sh","-c","echo cmd"]` - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = `["cmd","/S","/C","echo cmd"]` } if res != expected { @@ -3271,7 +3271,7 @@ func (s *DockerSuite) TestBuildEntrypointCanBeOverriddenByChildInspect(c *check. expected = `["/bin/sh","-c","echo quux"]` ) - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = `["cmd","/S","/C","echo quux"]` } @@ -3328,7 +3328,7 @@ func (s *DockerSuite) TestBuildVerifySingleQuoteFails(c *check.C) { // it should barf on it. name := "testbuildsinglequotefails" expectedExitCode := 2 - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expectedExitCode = 127 } @@ -3344,7 +3344,7 @@ func (s *DockerSuite) TestBuildVerboseOut(c *check.C) { name := "testbuildverboseout" expected := "\n123\n" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = "\n123\r\n" } @@ -3360,7 +3360,7 @@ func (s *DockerSuite) TestBuildWithTabs(c *check.C) { res := inspectFieldJSON(c, name, "ContainerConfig.Cmd") expected1 := `["/bin/sh","-c","echo\tone\t\ttwo"]` expected2 := `["/bin/sh","-c","echo\u0009one\u0009\u0009two"]` // syntactically equivalent, and what Go 1.3 generates - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected1 = `["cmd","/S","/C","echo\tone\t\ttwo"]` expected2 = `["cmd","/S","/C","echo\u0009one\u0009\u0009two"]` // syntactically equivalent, and what Go 1.3 generates } @@ -3555,7 +3555,7 @@ func (s *DockerSuite) TestBuildStderr(c *check.C) { result.Assert(c, icmd.Success) // Windows to non-Windows should have a security warning - if runtime.GOOS == "windows" && testEnv.DaemonPlatform() != "windows" && !strings.Contains(result.Stdout(), "SECURITY WARNING:") { + if runtime.GOOS == "windows" && testEnv.OSType != "windows" && !strings.Contains(result.Stdout(), "SECURITY WARNING:") { c.Fatalf("Stdout contains unexpected output: %q", result.Stdout()) } @@ -3667,7 +3667,7 @@ func (s *DockerSuite) TestBuildVolumesRetainContents(c *check.C) { volName = "/foo" ) - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { volName = "C:/foo" } @@ -3968,7 +3968,7 @@ RUN echo " \ expected := "\n foo \n" // Windows uses the builtin echo, which preserves quotes - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = "\" foo \"" } @@ -4002,7 +4002,7 @@ func (s *DockerSuite) TestBuildMissingArgs(c *check.C) { "INSERT": {}, } - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { skipCmds = map[string]struct{}{ "CMD": {}, "RUN": {}, @@ -4135,7 +4135,7 @@ func (s *DockerSuite) TestBuildRUNErrMsg(c *check.C) { name := "testbuildbadrunerrmsg" shell := "/bin/sh -c" exitCode := 127 - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { shell = "cmd /S /C" // architectural - Windows has to start the container to determine the exe is bad, Linux does not exitCode = 1 @@ -4287,7 +4287,7 @@ func (s *DockerTrustSuite) TestTrustedBuildTagIgnoresOtherDelegationRoles(c *che func (s *DockerSuite) TestBuildNullStringInAddCopyVolume(c *check.C) { name := "testbuildnullstringinaddcopyvolume" volName := "nullvolume" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { volName = `C:\\nullvolume` } @@ -4327,7 +4327,7 @@ func (s *DockerSuite) TestBuildBuildTimeArg(c *check.C) { envKey := "foo" envVal := "bar" var dockerfile string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // Bugs in Windows busybox port - use the default base image and native cmd stuff dockerfile = fmt.Sprintf(`FROM `+minimalBaseImage()+` ARG %s @@ -4942,7 +4942,7 @@ func (s *DockerSuite) TestBuildMultiStageUnusedArg(c *check.C) { func (s *DockerSuite) TestBuildNoNamedVolume(c *check.C) { volName := "testname:/foo" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { volName = "testname:C:\\foo" } dockerCmd(c, "run", "-v", volName, "busybox", "sh", "-c", "touch /foo/oops") @@ -6345,7 +6345,7 @@ WORKDIR /foo/bar // The Windows busybox image has a blank `cmd` lookingFor := `["sh"]` - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { lookingFor = "null" } c.Assert(strings.TrimSpace(out), checker.Equals, lookingFor) diff --git a/integration-cli/docker_cli_commit_test.go b/integration-cli/docker_cli_commit_test.go index 057c2d6f14..b0f21cef50 100644 --- a/integration-cli/docker_cli_commit_test.go +++ b/integration-cli/docker_cli_commit_test.go @@ -125,7 +125,7 @@ func (s *DockerSuite) TestCommitChange(c *check.C) { // ENV. On windows, the container doesn't have a `PATH` ENV variable so // the ordering is the same as the cli. expectedEnv := "[PATH=/foo DEBUG=true test=1]" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expectedEnv = "[DEBUG=true test=1 PATH=/foo]" } diff --git a/integration-cli/docker_cli_create_test.go b/integration-cli/docker_cli_create_test.go index 67bc98ee3f..448af9f199 100644 --- a/integration-cli/docker_cli_create_test.go +++ b/integration-cli/docker_cli_create_test.go @@ -60,7 +60,7 @@ func (s *DockerSuite) TestCreateArgs(c *check.C) { // Make sure we can grow the container's rootfs at creation time. func (s *DockerSuite) TestCreateGrowRootfs(c *check.C) { // Windows and Devicemapper support growing the rootfs - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { testRequires(c, Devicemapper) } out, _ := dockerCmd(c, "create", "--storage-opt", "size=120G", "busybox") @@ -224,7 +224,7 @@ func (s *DockerSuite) TestCreateLabelFromImage(c *check.C) { func (s *DockerSuite) TestCreateHostnameWithNumber(c *check.C) { image := "busybox" // Busybox on Windows does not implement hostname command - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { image = testEnv.PlatformDefaults.BaseImage } out, _ := dockerCmd(c, "run", "-h", "web.0", image, "hostname") @@ -378,7 +378,7 @@ func (s *DockerSuite) TestCreateWithWorkdir(c *check.C) { dockerCmd(c, "create", "--name", name, "-w", dir, "busybox") // Windows does not create the workdir until the container is started - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { dockerCmd(c, "start", name) } dockerCmd(c, "cp", fmt.Sprintf("%s:%s", name, dir), prefix+slash+"tmp") diff --git a/integration-cli/docker_cli_diff_test.go b/integration-cli/docker_cli_diff_test.go index 3e95a7378a..614beee43c 100644 --- a/integration-cli/docker_cli_diff_test.go +++ b/integration-cli/docker_cli_diff_test.go @@ -20,7 +20,7 @@ func (s *DockerSuite) TestDiffFilenameShownInOutput(c *check.C) { // a "Files/" prefix. containerID := strings.TrimSpace(out) lookingFor := "A /foo/bar" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { cli.WaitExited(c, containerID, 60*time.Second) lookingFor = "C Files/foo/bar" } diff --git a/integration-cli/docker_cli_events_test.go b/integration-cli/docker_cli_events_test.go index b75dcc1512..be91087b66 100644 --- a/integration-cli/docker_cli_events_test.go +++ b/integration-cli/docker_cli_events_test.go @@ -659,7 +659,7 @@ func (s *DockerSuite) TestEventsContainerRestart(c *check.C) { // wait until test2 is auto removed. waitTime := 10 * time.Second - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // Windows takes longer... waitTime = 90 * time.Second } diff --git a/integration-cli/docker_cli_info_test.go b/integration-cli/docker_cli_info_test.go index 180464888d..35a2532196 100644 --- a/integration-cli/docker_cli_info_test.go +++ b/integration-cli/docker_cli_info_test.go @@ -36,7 +36,7 @@ func (s *DockerSuite) TestInfoEnsureSucceeds(c *check.C) { "Live Restore Enabled:", } - if testEnv.DaemonPlatform() == "linux" { + if testEnv.OSType == "linux" { stringsToCheck = append(stringsToCheck, "Init Binary:", "Security Options:", "containerd version:", "runc version:", "init version:") } diff --git a/integration-cli/docker_cli_inspect_test.go b/integration-cli/docker_cli_inspect_test.go index 13eb2d38aa..bf2ee71e95 100644 --- a/integration-cli/docker_cli_inspect_test.go +++ b/integration-cli/docker_cli_inspect_test.go @@ -61,7 +61,7 @@ func (s *DockerSuite) TestInspectStatus(c *check.C) { // Windows does not support pause/unpause on Windows Server Containers. // (RS1 does for Hyper-V Containers, but production CI is not setup for that) - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { dockerCmd(c, "pause", out) inspectOut = inspectField(c, out, "State.Status") c.Assert(inspectOut, checker.Equals, "paused") @@ -206,7 +206,7 @@ func (s *DockerSuite) TestInspectContainerGraphDriver(c *check.C) { func (s *DockerSuite) TestInspectBindMountPoint(c *check.C) { modifier := ",z" prefix, slash := getPrefixAndSlashFromDaemonPlatform() - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { modifier = "" // Linux creates the host directory if it doesn't exist. Windows does not. os.Mkdir(`c:\data`, os.ModeDir) @@ -229,7 +229,7 @@ func (s *DockerSuite) TestInspectBindMountPoint(c *check.C) { c.Assert(m.Driver, checker.Equals, "") c.Assert(m.Source, checker.Equals, prefix+slash+"data") c.Assert(m.Destination, checker.Equals, prefix+slash+"data") - if testEnv.DaemonPlatform() != "windows" { // Windows does not set mode + if testEnv.OSType != "windows" { // Windows does not set mode c.Assert(m.Mode, checker.Equals, "ro"+modifier) } c.Assert(m.RW, checker.Equals, false) diff --git a/integration-cli/docker_cli_ps_test.go b/integration-cli/docker_cli_ps_test.go index bea1261202..6fe91f6565 100644 --- a/integration-cli/docker_cli_ps_test.go +++ b/integration-cli/docker_cli_ps_test.go @@ -216,7 +216,7 @@ func (s *DockerSuite) TestPsListContainersFilterStatus(c *check.C) { }) // Windows doesn't support pausing of containers - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { // pause running container out = cli.DockerCmd(c, "run", "-itd", "busybox").Combined() pausedID := strings.TrimSpace(out) diff --git a/integration-cli/docker_cli_rename_test.go b/integration-cli/docker_cli_rename_test.go index de277596fe..e9d63684c8 100644 --- a/integration-cli/docker_cli_rename_test.go +++ b/integration-cli/docker_cli_rename_test.go @@ -93,7 +93,7 @@ func (s *DockerSuite) TestRenameAnonymousContainer(c *check.C) { dockerCmd(c, "start", "container1") count := "-c" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { count = "-n" } diff --git a/integration-cli/docker_cli_restart_test.go b/integration-cli/docker_cli_restart_test.go index cf6b135ede..1b4c928b9a 100644 --- a/integration-cli/docker_cli_restart_test.go +++ b/integration-cli/docker_cli_restart_test.go @@ -269,7 +269,7 @@ func (s *DockerSuite) TestRestartContainerwithRestartPolicy(c *check.C) { id1 := strings.TrimSpace(string(out1)) id2 := strings.TrimSpace(string(out2)) waitTimeout := 15 * time.Second - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { waitTimeout = 150 * time.Second } err := waitInspect(id1, "{{ .State.Restarting }} {{ .State.Running }}", "false false", waitTimeout) diff --git a/integration-cli/docker_cli_rmi_test.go b/integration-cli/docker_cli_rmi_test.go index 52c8837d28..aedfa13a81 100644 --- a/integration-cli/docker_cli_rmi_test.go +++ b/integration-cli/docker_cli_rmi_test.go @@ -68,7 +68,7 @@ func (s *DockerSuite) TestRmiImgIDMultipleTag(c *check.C) { // Wait for it to exit as cannot commit a running container on Windows, and // it will take a few seconds to exit - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { cli.WaitExited(c, containerID, 60*time.Second) } @@ -109,7 +109,7 @@ func (s *DockerSuite) TestRmiImgIDForce(c *check.C) { // Wait for it to exit as cannot commit a running container on Windows, and // it will take a few seconds to exit - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { cli.WaitExited(c, containerID, 60*time.Second) } diff --git a/integration-cli/docker_cli_run_test.go b/integration-cli/docker_cli_run_test.go index 79be835edb..620f79e7ad 100644 --- a/integration-cli/docker_cli_run_test.go +++ b/integration-cli/docker_cli_run_test.go @@ -72,7 +72,7 @@ func (s *DockerSuite) TestRunLeakyFileDescriptors(c *check.C) { // this will fail when Internet access is unavailable func (s *DockerSuite) TestRunLookupGoogleDNS(c *check.C) { testRequires(c, Network, NotArm) - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // nslookup isn't present in Windows busybox. Is built-in. Further, // nslookup isn't present in nanoserver. Hence just use PowerShell... dockerCmd(c, "run", testEnv.PlatformDefaults.BaseImage, "powershell", "Resolve-DNSName", "google.com") @@ -137,7 +137,7 @@ func (s *DockerSuite) TestRunDetachedContainerIDPrinting(c *check.C) { func (s *DockerSuite) TestRunWorkingDirectory(c *check.C) { dir := "/root" image := "busybox" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { dir = `C:/Windows` } @@ -160,7 +160,7 @@ func (s *DockerSuite) TestRunWorkingDirectory(c *check.C) { func (s *DockerSuite) TestRunWithoutNetworking(c *check.C) { count := "-c" image := "busybox" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { count = "-n" image = testEnv.PlatformDefaults.BaseImage } @@ -354,7 +354,7 @@ func (s *DockerSuite) TestRunWithVolumesFromExited(c *check.C) { ) // Create a file in a volume - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { out, exitCode = dockerCmd(c, "run", "--name", "test-data", "--volume", `c:\some\dir`, testEnv.PlatformDefaults.BaseImage, "cmd", "/c", `echo hello > c:\some\dir\file`) } else { out, exitCode = dockerCmd(c, "run", "--name", "test-data", "--volume", "/some/dir", "busybox", "touch", "/some/dir/file") @@ -364,7 +364,7 @@ func (s *DockerSuite) TestRunWithVolumesFromExited(c *check.C) { } // Read the file from another container using --volumes-from to access the volume in the second container - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { out, exitCode = dockerCmd(c, "run", "--volumes-from", "test-data", testEnv.PlatformDefaults.BaseImage, "cmd", "/c", `type c:\some\dir\file`) } else { out, exitCode = dockerCmd(c, "run", "--volumes-from", "test-data", "busybox", "cat", "/some/dir/file") @@ -396,7 +396,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir(c *check.C) { // In the case of Windows to Windows CI, if the machine is setup so that // the temp directory is not the C: drive, this test is invalid and will // not work. - if testEnv.DaemonPlatform() == "windows" && strings.ToLower(dir[:1]) != "c" { + if testEnv.OSType == "windows" && strings.ToLower(dir[:1]) != "c" { c.Skip("Requires TEMP to point to C: drive") } @@ -406,7 +406,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir(c *check.C) { } f.Close() - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { dockerFile = fmt.Sprintf("FROM %s\nRUN mkdir %s\nRUN mklink /D c:\\test %s", testEnv.PlatformDefaults.BaseImage, dir, dir) containerPath = `c:\test\test` cmd = "tasklist" @@ -431,7 +431,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir2(c *check.C) { testRequires(c, SameHostDaemon, DaemonIsLinux) name := "test-volume-symlink2" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { dockerFile = fmt.Sprintf("FROM %s\nRUN mkdir c:\\%s\nRUN mklink /D c:\\test c:\\%s", testEnv.PlatformDefaults.BaseImage, name, name) containerPath = `c:\test\test` cmd = "tasklist" @@ -455,7 +455,7 @@ func (s *DockerSuite) TestRunVolumesFromInReadonlyModeFails(c *check.C) { volumeDir string fileInVol string ) - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { volumeDir = `c:/test` // Forward-slash as using busybox fileInVol = `c:/test/file` } else { @@ -476,7 +476,7 @@ func (s *DockerSuite) TestRunVolumesFromInReadWriteMode(c *check.C) { volumeDir string fileInVol string ) - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { volumeDir = `c:/test` // Forward-slash as using busybox fileInVol = `c:/test/file` } else { @@ -497,7 +497,7 @@ func (s *DockerSuite) TestRunVolumesFromInReadWriteMode(c *check.C) { func (s *DockerSuite) TestVolumesFromGetsProperMode(c *check.C) { testRequires(c, SameHostDaemon) prefix, slash := getPrefixAndSlashFromDaemonPlatform() - hostpath := RandomTmpDirPath("test", testEnv.DaemonPlatform()) + hostpath := RandomTmpDirPath("test", testEnv.OSType) if err := os.MkdirAll(hostpath, 0755); err != nil { c.Fatalf("Failed to create %s: %q", hostpath, err) } @@ -520,11 +520,11 @@ func (s *DockerSuite) TestVolumesFromGetsProperMode(c *check.C) { // Test for GH#10618 func (s *DockerSuite) TestRunNoDupVolumes(c *check.C) { - path1 := RandomTmpDirPath("test1", testEnv.DaemonPlatform()) - path2 := RandomTmpDirPath("test2", testEnv.DaemonPlatform()) + path1 := RandomTmpDirPath("test1", testEnv.OSType) + path2 := RandomTmpDirPath("test2", testEnv.OSType) someplace := ":/someplace" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // Windows requires that the source directory exists before calling HCS testRequires(c, SameHostDaemon) someplace = `:c:\someplace` @@ -573,7 +573,7 @@ func (s *DockerSuite) TestRunNoDupVolumes(c *check.C) { // Test for #1351 func (s *DockerSuite) TestRunApplyVolumesFromBeforeVolumes(c *check.C) { prefix := "" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { prefix = `c:` } dockerCmd(c, "run", "--name", "parent", "-v", prefix+"/test", "busybox", "touch", prefix+"/test/foo") @@ -582,7 +582,7 @@ func (s *DockerSuite) TestRunApplyVolumesFromBeforeVolumes(c *check.C) { func (s *DockerSuite) TestRunMultipleVolumesFrom(c *check.C) { prefix := "" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { prefix = `c:` } dockerCmd(c, "run", "--name", "parent1", "-v", prefix+"/test", "busybox", "touch", prefix+"/test/foo") @@ -612,7 +612,7 @@ func (s *DockerSuite) TestRunVerifyContainerID(c *check.C) { // Test that creating a container with a volume doesn't crash. Regression test for #995. func (s *DockerSuite) TestRunCreateVolume(c *check.C) { prefix := "" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { prefix = `c:` } dockerCmd(c, "run", "-v", prefix+"/var/lib/data", "busybox", "true") @@ -668,7 +668,7 @@ func (s *DockerSuite) TestRunVolumesFromSymlinkPath(c *check.C) { RUN ln -s home /foo VOLUME ["/foo/bar"]` - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { prefix = `c:` dfContents = `FROM ` + testEnv.PlatformDefaults.BaseImage + ` RUN mkdir c:\home @@ -714,7 +714,7 @@ func (s *DockerSuite) TestRunExitCode(c *check.C) { func (s *DockerSuite) TestRunUserDefaults(c *check.C) { expected := "uid=0(root) gid=0(root)" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = "uid=1000(ContainerAdministrator) gid=1000(ContainerAdministrator)" } out, _ := dockerCmd(c, "run", "busybox", "id") @@ -920,7 +920,7 @@ func (s *DockerSuite) TestRunEnvironmentOverride(c *check.C) { } func (s *DockerSuite) TestRunContainerNetwork(c *check.C) { - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // Windows busybox does not have ping. Use built in ping instead. dockerCmd(c, "run", testEnv.PlatformDefaults.BaseImage, "ping", "-n", "1", "127.0.0.1") } else { @@ -1220,7 +1220,7 @@ func (s *DockerSuite) TestRunModeHostname(c *check.C) { func (s *DockerSuite) TestRunRootWorkdir(c *check.C) { out, _ := dockerCmd(c, "run", "--workdir", "/", "busybox", "pwd") expected := "/\n" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = "C:" + expected } if out != expected { @@ -1229,7 +1229,7 @@ func (s *DockerSuite) TestRunRootWorkdir(c *check.C) { } func (s *DockerSuite) TestRunAllowBindMountingRoot(c *check.C) { - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // Windows busybox will fail with Permission Denied on items such as pagefile.sys dockerCmd(c, "run", "-v", `c:\:c:\host`, testEnv.PlatformDefaults.BaseImage, "cmd", "-c", "dir", `c:\host`) } else { @@ -1240,7 +1240,7 @@ func (s *DockerSuite) TestRunAllowBindMountingRoot(c *check.C) { func (s *DockerSuite) TestRunDisallowBindMountingRootToRoot(c *check.C) { mount := "/:/" targetDir := "/host" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { mount = `c:\:c\` targetDir = "c:/host" // Forward slash as using busybox } @@ -1704,7 +1704,7 @@ func (s *DockerSuite) TestRunCleanupCmdOnEntrypoint(c *check.C) { } out = strings.TrimSpace(out) expected := "root" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { if strings.Contains(testEnv.PlatformDefaults.BaseImage, "windowsservercore") { expected = `user manager\containeradministrator` } else { @@ -1720,7 +1720,7 @@ func (s *DockerSuite) TestRunCleanupCmdOnEntrypoint(c *check.C) { func (s *DockerSuite) TestRunWorkdirExistsAndIsFile(c *check.C) { existingFile := "/bin/cat" expected := "not a directory" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { existingFile = `\windows\system32\ntdll.dll` expected = `The directory name is invalid.` } @@ -1736,7 +1736,7 @@ func (s *DockerSuite) TestRunExitOnStdinClose(c *check.C) { meow := "/bin/cat" delay := 60 - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { meow = "cat" } runCmd := exec.Command(dockerBinary, "run", "--name", name, "-i", "busybox", meow) @@ -1881,7 +1881,7 @@ func (s *DockerSuite) TestRunEntrypoint(c *check.C) { func (s *DockerSuite) TestRunBindMounts(c *check.C) { testRequires(c, SameHostDaemon) - if testEnv.DaemonPlatform() == "linux" { + if testEnv.OSType == "linux" { testRequires(c, DaemonIsLinux, NotUserNamespace) } @@ -1902,7 +1902,7 @@ func (s *DockerSuite) TestRunBindMounts(c *check.C) { } // test writing to bind mount - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { dockerCmd(c, "run", "-v", fmt.Sprintf(`%s:c:\tmp:rw`, tmpDir), "busybox", "touch", "c:/tmp/holla") } else { dockerCmd(c, "run", "-v", fmt.Sprintf("%s:/tmp:rw", tmpDir), "busybox", "touch", "/tmp/holla") @@ -1917,7 +1917,7 @@ func (s *DockerSuite) TestRunBindMounts(c *check.C) { } // Windows does not (and likely never will) support mounting a single file - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { // test mount a file dockerCmd(c, "run", "-v", fmt.Sprintf("%s/holla:/tmp/holla:rw", tmpDir), "busybox", "sh", "-c", "echo -n 'yotta' > /tmp/holla") content := readFile(path.Join(tmpDir, "holla"), c) // Will fail if the file doesn't exist @@ -1942,7 +1942,7 @@ func (s *DockerSuite) TestRunCidFileCleanupIfEmpty(c *check.C) { tmpCidFile := path.Join(tmpDir, "cid") image := "emptyfs" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { // Windows can't support an emptyfs image. Just use the regular Windows image image = testEnv.PlatformDefaults.BaseImage } @@ -1988,7 +1988,7 @@ func (s *DockerSuite) TestRunCidFileCheckIDLength(c *check.C) { func (s *DockerSuite) TestRunSetMacAddress(c *check.C) { mac := "12:34:56:78:9a:bc" var out string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { out, _ = dockerCmd(c, "run", "-i", "--rm", fmt.Sprintf("--mac-address=%s", mac), "busybox", "sh", "-c", "ipconfig /all | grep 'Physical Address' | awk '{print $12}'") mac = strings.Replace(strings.ToUpper(mac), ":", "-", -1) // To Windows-style MACs } else { @@ -2185,7 +2185,7 @@ func (s *DockerSuite) TestVolumesNoCopyData(c *check.C) { c.Fatalf("Data was copied on volumes-from but shouldn't be:\n%q", out) } - tmpDir := RandomTmpDirPath("docker_test_bind_mount_copy_data", testEnv.DaemonPlatform()) + tmpDir := RandomTmpDirPath("docker_test_bind_mount_copy_data", testEnv.OSType) if out, _, err := dockerCmdWithError("run", "-v", tmpDir+":/foo", "dataimage", "ls", "-lh", "/foo/bar"); err == nil || !strings.Contains(out, "No such file or directory") { c.Fatalf("Data was copied on bind mount but shouldn't be:\n%q", out) } @@ -2558,7 +2558,7 @@ func (s *DockerSuite) TestRunNonLocalMacAddress(c *check.C) { args := []string{"run", "--mac-address", addr} expected := addr - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { args = append(args, "busybox", "ifconfig") } else { args = append(args, testEnv.PlatformDefaults.BaseImage, "ipconfig", "/all") @@ -2654,7 +2654,7 @@ func (s *DockerSuite) TestRunSetDefaultRestartPolicy(c *check.C) { func (s *DockerSuite) TestRunRestartMaxRetries(c *check.C) { out, _ := dockerCmd(c, "run", "-d", "--restart=on-failure:3", "busybox", "false") timeout := 10 * time.Second - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { timeout = 120 * time.Second } @@ -3022,7 +3022,7 @@ func (s *DockerSuite) TestVolumeFromMixedRWOptions(c *check.C) { dockerCmd(c, "run", "--volumes-from", "parent:ro", "--name", "test-volumes-1", "busybox", "true") dockerCmd(c, "run", "--volumes-from", "parent:rw", "--name", "test-volumes-2", "busybox", "true") - if testEnv.DaemonPlatform() != "windows" { + if testEnv.OSType != "windows" { mRO, err := inspectMountPoint("test-volumes-1", prefix+slash+"test") c.Assert(err, checker.IsNil, check.Commentf("failed to inspect mount point")) if mRO.RW { @@ -3482,7 +3482,7 @@ func (s *DockerSuite) TestRunLoopbackOnlyExistsWhenNetworkingDisabled(c *check.C // Issue #4681 func (s *DockerSuite) TestRunLoopbackWhenNetworkDisabled(c *check.C) { - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { dockerCmd(c, "run", "--net=none", testEnv.PlatformDefaults.BaseImage, "ping", "-n", "1", "127.0.0.1") } else { dockerCmd(c, "run", "--net=none", "busybox", "ping", "-c", "1", "127.0.0.1") @@ -3749,7 +3749,7 @@ func (s *DockerSuite) TestRunNonExistingCmd(c *check.C) { // as that's when the check is made (and yes, by its design...) func (s *DockerSuite) TestCmdCannotBeInvoked(c *check.C) { expected := 126 - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { expected = 127 } name := "testCmdCannotBeInvoked" diff --git a/integration-cli/docker_cli_top_test.go b/integration-cli/docker_cli_top_test.go index f52f24014e..b8924d3b50 100644 --- a/integration-cli/docker_cli_top_test.go +++ b/integration-cli/docker_cli_top_test.go @@ -13,7 +13,7 @@ func (s *DockerSuite) TestTopMultipleArgs(c *check.C) { cleanedContainerID := strings.TrimSpace(out) var expected icmd.Expected - switch testEnv.DaemonPlatform() { + switch testEnv.OSType { case "windows": expected = icmd.Expected{ExitCode: 1, Err: "Windows does not support arguments to top"} default: @@ -34,7 +34,7 @@ func (s *DockerSuite) TestTopNonPrivileged(c *check.C) { // Windows will list the name of the launched executable which in this case is busybox.exe, without the parameters. // Linux will display the command executed in the container var lookingFor string - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { lookingFor = "busybox.exe" } else { lookingFor = "top" diff --git a/integration-cli/docker_cli_update_test.go b/integration-cli/docker_cli_update_test.go index 5b9b7304c5..dce137ebf8 100644 --- a/integration-cli/docker_cli_update_test.go +++ b/integration-cli/docker_cli_update_test.go @@ -13,7 +13,7 @@ import ( func (s *DockerSuite) TestUpdateRestartPolicy(c *check.C) { out := cli.DockerCmd(c, "run", "-d", "--restart=on-failure:3", "busybox", "sh", "-c", "sleep 1 && false").Combined() timeout := 60 * time.Second - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { timeout = 180 * time.Second } diff --git a/integration-cli/docker_deprecated_api_v124_test.go b/integration-cli/docker_deprecated_api_v124_test.go index 214ae08667..279efddd8e 100644 --- a/integration-cli/docker_deprecated_api_v124_test.go +++ b/integration-cli/docker_deprecated_api_v124_test.go @@ -36,7 +36,7 @@ func (s *DockerSuite) TestDeprecatedContainerAPIStartVolumeBinds(c *check.C) { // TODO Windows CI: Investigate further why this fails on Windows to Windows CI. testRequires(c, DaemonIsLinux) path := "/foo" - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { path = `c:\foo` } name := "testing" @@ -49,7 +49,7 @@ func (s *DockerSuite) TestDeprecatedContainerAPIStartVolumeBinds(c *check.C) { c.Assert(err, checker.IsNil) c.Assert(res.StatusCode, checker.Equals, http.StatusCreated) - bindPath := RandomTmpDirPath("test", testEnv.DaemonPlatform()) + bindPath := RandomTmpDirPath("test", testEnv.OSType) config = map[string]interface{}{ "Binds": []string{bindPath + ":" + path}, } @@ -76,8 +76,8 @@ func (s *DockerSuite) TestDeprecatedContainerAPIStartDupVolumeBinds(c *check.C) c.Assert(err, checker.IsNil) c.Assert(res.StatusCode, checker.Equals, http.StatusCreated) - bindPath1 := RandomTmpDirPath("test1", testEnv.DaemonPlatform()) - bindPath2 := RandomTmpDirPath("test2", testEnv.DaemonPlatform()) + bindPath1 := RandomTmpDirPath("test1", testEnv.OSType) + bindPath2 := RandomTmpDirPath("test2", testEnv.OSType) config = map[string]interface{}{ "Binds": []string{bindPath1 + ":/tmp", bindPath2 + ":/tmp"}, diff --git a/integration-cli/environment/environment.go b/integration-cli/environment/environment.go index 11eca5879a..7fd6743c71 100644 --- a/integration-cli/environment/environment.go +++ b/integration-cli/environment/environment.go @@ -48,12 +48,3 @@ func New() (*Execution, error) { dockerBinary: dockerBinary, }, nil } - -// DaemonPlatform is held globally so that tests can make intelligent -// decisions on how to configure themselves according to the platform -// of the daemon. This is initialized in docker_utils by sending -// a version call to the daemon and examining the response header. -// Deprecated: use Execution.OSType -func (e *Execution) DaemonPlatform() string { - return e.OSType -} diff --git a/integration-cli/fixtures_linux_daemon_test.go b/integration-cli/fixtures_linux_daemon_test.go index 6ac4511215..e1cad449f4 100644 --- a/integration-cli/fixtures_linux_daemon_test.go +++ b/integration-cli/fixtures_linux_daemon_test.go @@ -38,7 +38,7 @@ func ensureSyscallTest(c *check.C) { // if no match, must build in docker, which is significantly slower // (slower mostly because of the vfs graphdriver) - if testEnv.DaemonPlatform() != runtime.GOOS { + if testEnv.OSType != runtime.GOOS { ensureSyscallTestBuild(c) return } @@ -93,7 +93,7 @@ func ensureSyscallTestBuild(c *check.C) { func ensureNNPTest(c *check.C) { defer testEnv.ProtectImage(c, "nnp-test:latest") - if testEnv.DaemonPlatform() != runtime.GOOS { + if testEnv.OSType != runtime.GOOS { ensureNNPTestBuild(c) return } diff --git a/integration-cli/test_vars_test.go b/integration-cli/test_vars_test.go index 139279ccd1..82ec58e9e7 100644 --- a/integration-cli/test_vars_test.go +++ b/integration-cli/test_vars_test.go @@ -4,7 +4,7 @@ package main // the command is for a sleeping container based on the daemon platform. // The Windows busybox image does not have a `top` command. func sleepCommandForDaemonPlatform() []string { - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { return []string{"sleep", "240"} } return []string{"top"} diff --git a/integration-cli/utils_test.go b/integration-cli/utils_test.go index 1146e1b2fc..6c18c222d2 100644 --- a/integration-cli/utils_test.go +++ b/integration-cli/utils_test.go @@ -14,7 +14,7 @@ import ( ) func getPrefixAndSlashFromDaemonPlatform() (prefix, slash string) { - if testEnv.DaemonPlatform() == "windows" { + if testEnv.OSType == "windows" { return "c:", `\` } return "", "/"