Browse code

Windows: Remove TP4 support from test code

Signed-off-by: John Howard <jhoward@microsoft.com>

John Howard authored on 2016/04/07 06:01:12
Showing 9 changed files
... ...
@@ -908,7 +908,7 @@ func (s *DockerSuite) TestStartWithTooLowMemoryLimit(c *check.C) {
908 908
 }
909 909
 
910 910
 func (s *DockerSuite) TestContainerApiRename(c *check.C) {
911
-	// TODO Windows: Enable for TP5. Fails on TP4.
911
+	// TODO Windows: Debug why this sometimes fails on TP5. For now, leave disabled
912 912
 	testRequires(c, DaemonIsLinux)
913 913
 	out, _ := dockerCmd(c, "run", "--name", "TestContainerApiRename", "-d", "busybox", "sh")
914 914
 
... ...
@@ -91,11 +91,6 @@ func (s *DockerSuite) TestEventsContainerFailStartDie(c *check.C) {
91 91
 }
92 92
 
93 93
 func (s *DockerSuite) TestEventsLimit(c *check.C) {
94
-	// TODO Windows CI: This test is not reliable enough on Windows TP4. Reports
95
-	// multiple errors in the analytic log sometimes.
96
-	// [NetSetupHelper::InstallVirtualMiniport()@2153] NetSetup install of ROOT\VMS_MP\0001 failed with error 0x80070002
97
-	// This should be able to be enabled on TP5.
98
-	testRequires(c, DaemonIsLinux)
99 94
 	var waitGroup sync.WaitGroup
100 95
 	errChan := make(chan error, 17)
101 96
 
... ...
@@ -460,7 +455,7 @@ func (s *DockerSuite) TestEventsResize(c *check.C) {
460 460
 }
461 461
 
462 462
 func (s *DockerSuite) TestEventsAttach(c *check.C) {
463
-	// TODO Windows CI: Figure out why this test fails intermittently (TP4 and TP5).
463
+	// TODO Windows CI: Figure out why this test fails intermittently (TP5).
464 464
 	testRequires(c, DaemonIsLinux)
465 465
 	since := daemonTime(c).Unix()
466 466
 
... ...
@@ -527,8 +522,8 @@ func (s *DockerSuite) TestEventsDefaultEmpty(c *check.C) {
527 527
 
528 528
 // #14316
529 529
 func (s *DockerRegistrySuite) TestEventsImageFilterPush(c *check.C) {
530
-	// Problematic to port for Windows CI during TP4/TP5 timeframe while
531
-	// not supporting push
530
+	// Problematic to port for Windows CI during TP5 timeframe until
531
+	// supporting push
532 532
 	testRequires(c, DaemonIsLinux)
533 533
 	testRequires(c, Network)
534 534
 	since := daemonTime(c).Unix()
... ...
@@ -194,8 +194,6 @@ func (s *DockerSuite) TestLogsSince(c *check.C) {
194 194
 }
195 195
 
196 196
 func (s *DockerSuite) TestLogsSinceFutureFollow(c *check.C) {
197
-	// TODO Windows: Flakey on TP4. Enable for next technical preview.
198
-	testRequires(c, DaemonIsLinux)
199 197
 	name := "testlogssincefuturefollow"
200 198
 	out, _ := dockerCmd(c, "run", "-d", "--name", name, "busybox", "/bin/sh", "-c", `for i in $(seq 1 5); do echo log$i; sleep 1; done`)
201 199
 
... ...
@@ -228,7 +226,7 @@ func (s *DockerSuite) TestLogsSinceFutureFollow(c *check.C) {
228 228
 
229 229
 // Regression test for #8832
230 230
 func (s *DockerSuite) TestLogsFollowSlowStdoutConsumer(c *check.C) {
231
-	// TODO Windows: Consider enabling post-TP4. Too expensive to run on TP4
231
+	// TODO Windows: Fix this test for TP5.
232 232
 	testRequires(c, DaemonIsLinux)
233 233
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", `usleep 600000;yes X | head -c 200000`)
234 234
 
... ...
@@ -324,10 +324,6 @@ func (*DockerSuite) TestRmiParentImageFail(c *check.C) {
324 324
 }
325 325
 
326 326
 func (s *DockerSuite) TestRmiWithParentInUse(c *check.C) {
327
-	// TODO Windows. There is a bug either in Windows TP4, or the TP4 compatible
328
-	// docker which means this test fails. It has been verified to have been fixed
329
-	// in TP5 and docker/master, hence enable it once CI switch to TP5.
330
-	testRequires(c, DaemonIsLinux)
331 327
 	out, _ := dockerCmd(c, "create", "busybox")
332 328
 	cID := strings.TrimSpace(out)
333 329
 
... ...
@@ -345,10 +341,6 @@ func (s *DockerSuite) TestRmiWithParentInUse(c *check.C) {
345 345
 
346 346
 // #18873
347 347
 func (s *DockerSuite) TestRmiByIDHardConflict(c *check.C) {
348
-	// TODO Windows CI. This will work on a TP5 compatible docker which
349
-	// has content addressibility fixes. Do not run this on TP4 as it
350
-	// will end up deleting the busybox image causing subsequent tests to fail.
351
-	testRequires(c, DaemonIsLinux)
352 348
 	dockerCmd(c, "create", "busybox")
353 349
 
354 350
 	imgID := inspectField(c, "busybox:latest", "Id")
... ...
@@ -424,7 +424,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir2(c *check.C) {
424 424
 }
425 425
 
426 426
 func (s *DockerSuite) TestRunVolumesMountedAsReadonly(c *check.C) {
427
-	// TODO Windows (Post TP4): This test cannot run on a Windows daemon as
427
+	// TODO Windows (Post TP5): This test cannot run on a Windows daemon as
428 428
 	// Windows does not support read-only bind mounts.
429 429
 	testRequires(c, DaemonIsLinux)
430 430
 	if _, code, err := dockerCmdWithError("run", "-v", "/test:/test:ro", "busybox", "touch", "/test/somefile"); err == nil || code == 0 {
... ...
@@ -433,7 +433,7 @@ func (s *DockerSuite) TestRunVolumesMountedAsReadonly(c *check.C) {
433 433
 }
434 434
 
435 435
 func (s *DockerSuite) TestRunVolumesFromInReadonlyModeFails(c *check.C) {
436
-	// TODO Windows (Post TP4): This test cannot run on a Windows daemon as
436
+	// TODO Windows (Post TP5): This test cannot run on a Windows daemon as
437 437
 	// Windows does not support read-only bind mounts. Modified for when ro is supported.
438 438
 	testRequires(c, DaemonIsLinux)
439 439
 	var (
... ...
@@ -481,7 +481,7 @@ func (s *DockerSuite) TestRunVolumesFromInReadWriteMode(c *check.C) {
481 481
 
482 482
 func (s *DockerSuite) TestVolumesFromGetsProperMode(c *check.C) {
483 483
 	// TODO Windows: This test cannot yet run on a Windows daemon as Windows does
484
-	// not support read-only bind mounts as at TP4
484
+	// not support read-only bind mounts as at TP5
485 485
 	testRequires(c, DaemonIsLinux)
486 486
 	dockerCmd(c, "run", "--name", "parent", "-v", "/test:/test:ro", "busybox", "true")
487 487
 
... ...
@@ -667,12 +667,7 @@ func (s *DockerSuite) TestRunExitCode(c *check.C) {
667 667
 func (s *DockerSuite) TestRunUserDefaults(c *check.C) {
668 668
 	expected := "uid=0(root) gid=0(root)"
669 669
 	if daemonPlatform == "windows" {
670
-		// TODO Windows: Remove this check once TP4 is no longer supported.
671
-		if windowsDaemonKV < 14250 {
672
-			expected = "uid=1000(SYSTEM) gid=1000(SYSTEM)"
673
-		} else {
674
-			expected = "uid=1000(ContainerAdministrator) gid=1000(ContainerAdministrator)"
675
-		}
670
+		expected = "uid=1000(ContainerAdministrator) gid=1000(ContainerAdministrator)"
676 671
 	}
677 672
 	out, _ := dockerCmd(c, "run", "busybox", "id")
678 673
 	if !strings.Contains(out, expected) {
... ...
@@ -750,18 +745,9 @@ func (s *DockerSuite) TestRunUserNotFound(c *check.C) {
750 750
 }
751 751
 
752 752
 func (s *DockerSuite) TestRunTwoConcurrentContainers(c *check.C) {
753
-	// TODO Windows. There are two bugs in TP4 which means this test cannot
754
-	// be reliably enabled. The first is a race condition where sometimes
755
-	// HCS CreateComputeSystem() will fail "Invalid class string". #4985252 and
756
-	// #4493430.
757
-	//
758
-	// The second, which is seen more readily by increasing the number of concurrent
759
-	// containers to 5 or more, is that CSRSS hangs. This may fixed in the TP4 ZDP.
760
-	// #4898773.
761
-	testRequires(c, DaemonIsLinux)
762 753
 	sleepTime := "2"
763 754
 	if daemonPlatform == "windows" {
764
-		sleepTime = "5" // Make more reliable on Windows
755
+		sleepTime = "20" // Make more reliable on Windows
765 756
 	}
766 757
 	group := sync.WaitGroup{}
767 758
 	group.Add(2)
... ...
@@ -1688,7 +1674,7 @@ func (s *DockerSuite) TestRunCopyVolumeUidGid(c *check.C) {
1688 1688
 
1689 1689
 // Test for #1582
1690 1690
 func (s *DockerSuite) TestRunCopyVolumeContent(c *check.C) {
1691
-	// TODO Windows, post TP4. Windows does not yet support volume functionality
1691
+	// TODO Windows, post TP5. Windows does not yet support volume functionality
1692 1692
 	// that copies from the image to the volume.
1693 1693
 	testRequires(c, DaemonIsLinux)
1694 1694
 	name := "testruncopyvolumecontent"
... ...
@@ -1724,12 +1710,7 @@ func (s *DockerSuite) TestRunCleanupCmdOnEntrypoint(c *check.C) {
1724 1724
 	out = strings.TrimSpace(out)
1725 1725
 	expected := "root"
1726 1726
 	if daemonPlatform == "windows" {
1727
-		// TODO Windows: Remove this check once TP4 is no longer supported.
1728
-		if windowsDaemonKV < 14250 {
1729
-			expected = `nt authority\system`
1730
-		} else {
1731
-			expected = `user manager\containeradministrator`
1732
-		}
1727
+		expected = `user manager\containeradministrator`
1733 1728
 	}
1734 1729
 	if out != expected {
1735 1730
 		c.Fatalf("Expected output %s, got %q", expected, out)
... ...
@@ -1924,7 +1905,7 @@ func (s *DockerSuite) TestRunBindMounts(c *check.C) {
1924 1924
 	defer os.RemoveAll(tmpDir)
1925 1925
 	writeFile(path.Join(tmpDir, "touch-me"), "", c)
1926 1926
 
1927
-	// TODO Windows Post TP4. Windows does not yet support :ro binds
1927
+	// TODO Windows Post TP5. Windows does not yet support :ro binds
1928 1928
 	if daemonPlatform != "windows" {
1929 1929
 		// Test reading from a read-only bind mount
1930 1930
 		out, _ := dockerCmd(c, "run", "-v", fmt.Sprintf("%s:/tmp:ro", tmpDir), "busybox", "ls", "/tmp")
... ...
@@ -2114,7 +2095,7 @@ func (s *DockerSuite) TestRunAllocatePortInReservedRange(c *check.C) {
2114 2114
 
2115 2115
 // Regression test for #7792
2116 2116
 func (s *DockerSuite) TestRunMountOrdering(c *check.C) {
2117
-	// TODO Windows: Post TP4. Updated, but Windows does not support nested mounts currently.
2117
+	// TODO Windows: Post TP5. Updated, but Windows does not support nested mounts currently.
2118 2118
 	testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace)
2119 2119
 	prefix, _ := getPrefixAndSlashFromDaemonPlatform()
2120 2120
 
... ...
@@ -2206,7 +2187,7 @@ func (s *DockerSuite) TestRunCreateVolumeEtc(c *check.C) {
2206 2206
 }
2207 2207
 
2208 2208
 func (s *DockerSuite) TestVolumesNoCopyData(c *check.C) {
2209
-	// TODO Windows (Post TP4). Windows does not support volumes which
2209
+	// TODO Windows (Post TP5). Windows does not support volumes which
2210 2210
 	// are pre-populated such as is built in the dockerfile used in this test.
2211 2211
 	testRequires(c, DaemonIsLinux)
2212 2212
 	if _, err := buildImage("dataimage",
... ...
@@ -3077,7 +3058,7 @@ func (s *DockerSuite) TestRunCapAddCHOWN(c *check.C) {
3077 3077
 
3078 3078
 // https://github.com/docker/docker/pull/14498
3079 3079
 func (s *DockerSuite) TestVolumeFromMixedRWOptions(c *check.C) {
3080
-	// TODO Windows post TP4. Enable the read-only bits once they are
3080
+	// TODO Windows post TP5. Enable the read-only bits once they are
3081 3081
 	// supported on the platform.
3082 3082
 	prefix, slash := getPrefixAndSlashFromDaemonPlatform()
3083 3083
 
... ...
@@ -690,7 +690,7 @@ func (s *DockerSuite) TestRunWithShmSize(c *check.C) {
690 690
 }
691 691
 
692 692
 func (s *DockerSuite) TestRunTmpfsMounts(c *check.C) {
693
-	// TODO Windows (Post TP4): This test cannot run on a Windows daemon as
693
+	// TODO Windows (Post TP5): This test cannot run on a Windows daemon as
694 694
 	// Windows does not support tmpfs mounts.
695 695
 	testRequires(c, DaemonIsLinux)
696 696
 	if out, _, err := dockerCmdWithError("run", "--tmpfs", "/run", "busybox", "touch", "/run/somefile"); err != nil {
... ...
@@ -100,9 +100,6 @@ func (s *DockerSuite) TestTagExistedNameWithForce(c *check.C) {
100 100
 }
101 101
 
102 102
 func (s *DockerSuite) TestTagWithPrefixHyphen(c *check.C) {
103
-	// TODO Windows CI. This fails on TP4 docker, but has since been fixed.
104
-	// Enable these tests for TP5.
105
-	testRequires(c, DaemonIsLinux)
106 103
 	// Don't attempt to pull on Windows as not in hub. It's installed
107 104
 	// as an image through .ensure-frozen-images-windows
108 105
 	if daemonPlatform != "windows" {
... ...
@@ -129,9 +126,6 @@ func (s *DockerSuite) TestTagWithPrefixHyphen(c *check.C) {
129 129
 // ensure tagging using official names works
130 130
 // ensure all tags result in the same name
131 131
 func (s *DockerSuite) TestTagOfficialNames(c *check.C) {
132
-	// TODO Windows CI. This fails on TP4 docker, but has since been fixed.
133
-	// Enable these tests for TP5.
134
-	testRequires(c, DaemonIsLinux)
135 132
 	names := []string{
136 133
 		"docker.io/busybox",
137 134
 		"index.docker.io/busybox",
... ...
@@ -169,10 +163,6 @@ func (s *DockerSuite) TestTagOfficialNames(c *check.C) {
169 169
 
170 170
 // ensure tags can not match digests
171 171
 func (s *DockerSuite) TestTagMatchesDigest(c *check.C) {
172
-	// TODO Windows CI. This can be enabled for TP5, but will fail on TP4.
173
-	// This is due to the content addressibility changes which are not
174
-	// in the TP4 version of Docker.
175
-	testRequires(c, DaemonIsLinux)
176 172
 	// Don't attempt to pull on Windows as not in hub. It's installed
177 173
 	// as an image through .ensure-frozen-images-windows
178 174
 	if daemonPlatform != "windows" {
... ...
@@ -194,9 +184,6 @@ func (s *DockerSuite) TestTagMatchesDigest(c *check.C) {
194 194
 }
195 195
 
196 196
 func (s *DockerSuite) TestTagInvalidRepoName(c *check.C) {
197
-	// TODO Windows CI. This can be enabled for TP5, but will fail on the
198
-	// TP4 version of docker.
199
-	testRequires(c, DaemonIsLinux)
200 197
 	// Don't attempt to pull on Windows as not in hub. It's installed
201 198
 	// as an image through .ensure-frozen-images-windows
202 199
 	if daemonPlatform != "windows" {
... ...
@@ -40,8 +40,8 @@ var (
40 40
 
41 41
 	// windowsDaemonKV is used on Windows to distinguish between different
42 42
 	// versions. This is necessary to enable certain tests based on whether
43
-	// the platform supports it. For example, Windows Server 2016 TP3 does
44
-	// not support volumes, but TP4 does.
43
+	// the platform supports it. For example, Windows Server 2016 TP3 did
44
+	// not support volumes, but TP4 did.
45 45
 	windowsDaemonKV int
46 46
 
47 47
 	// daemonDefaultImage is the name of the default image to use when running
... ...
@@ -18,7 +18,7 @@ func TestParseMountSpec(t *testing.T) {
18 18
 			`d:`,
19 19
 			`d:\path`,
20 20
 			`d:\path with space`,
21
-			// TODO Windows post TP4 - readonly support `d:\pathandmode:ro`,
21
+			// TODO Windows post TP5 - readonly support `d:\pathandmode:ro`,
22 22
 			`c:\:d:\`,
23 23
 			`c:\windows\:d:`,
24 24
 			`c:\windows:d:\s p a c e`,
... ...
@@ -29,9 +29,9 @@ func TestParseMountSpec(t *testing.T) {
29 29
 			`name:D:`,
30 30
 			`name:D::rW`,
31 31
 			`name:D::RW`,
32
-			// TODO Windows post TP4 - readonly support `name:D::RO`,
32
+			// TODO Windows post TP5 - readonly support `name:D::RO`,
33 33
 			`c:/:d:/forward/slashes/are/good/too`,
34
-			// TODO Windows post TP4 - readonly support `c:/:d:/including with/spaces:ro`,
34
+			// TODO Windows post TP5 - readonly support `c:/:d:/including with/spaces:ro`,
35 35
 			`c:\Windows`,             // With capital
36 36
 			`c:\Program Files (x86)`, // With capitals and brackets
37 37
 		}
... ...
@@ -152,12 +152,12 @@ func TestParseMountSpecSplit(t *testing.T) {
152 152
 		cases = []testParseMountSpec{
153 153
 			{`c:\:d:`, "local", `d:`, `c:\`, ``, "", true, false},
154 154
 			{`c:\:d:\`, "local", `d:\`, `c:\`, ``, "", true, false},
155
-			// TODO Windows post TP4 - Add readonly support {`c:\:d:\:ro`, "local", `d:\`, `c:\`, ``, "", false, false},
155
+			// TODO Windows post TP5 - Add readonly support {`c:\:d:\:ro`, "local", `d:\`, `c:\`, ``, "", false, false},
156 156
 			{`c:\:d:\:rw`, "local", `d:\`, `c:\`, ``, "", true, false},
157 157
 			{`c:\:d:\:foo`, "local", `d:\`, `c:\`, ``, "", false, true},
158 158
 			{`name:d::rw`, "local", `d:`, ``, `name`, "local", true, false},
159 159
 			{`name:d:`, "local", `d:`, ``, `name`, "local", true, false},
160
-			// TODO Windows post TP4 - Add readonly support {`name:d::ro`, "local", `d:`, ``, `name`, "local", false, false},
160
+			// TODO Windows post TP5 - Add readonly support {`name:d::ro`, "local", `d:`, ``, `name`, "local", false, false},
161 161
 			{`name:c:`, "", ``, ``, ``, "", true, true},
162 162
 			{`driver/name:c:`, "", ``, ``, ``, "", true, true},
163 163
 		}