Signed-off-by: Darren Stahl <darst@microsoft.com>
Darren Stahl authored on 2016/02/12 09:20:27... | ... |
@@ -5505,8 +5505,6 @@ func (s *DockerSuite) TestBuildEmptyScratch(c *check.C) { |
5505 | 5505 |
} |
5506 | 5506 |
|
5507 | 5507 |
func (s *DockerSuite) TestBuildDotDotFile(c *check.C) { |
5508 |
- testRequires(c, DaemonIsLinux) |
|
5509 |
- |
|
5510 | 5508 |
ctx, err := fakeContext("FROM busybox\n", |
5511 | 5509 |
map[string]string{ |
5512 | 5510 |
"..gitme": "", |
... | ... |
@@ -5522,7 +5520,7 @@ func (s *DockerSuite) TestBuildDotDotFile(c *check.C) { |
5522 | 5522 |
} |
5523 | 5523 |
|
5524 | 5524 |
func (s *DockerSuite) TestBuildRUNoneJSON(c *check.C) { |
5525 |
- testRequires(c, DaemonIsLinux) |
|
5525 |
+ testRequires(c, DaemonIsLinux) // No hello-world Windows image |
|
5526 | 5526 |
name := "testbuildrunonejson" |
5527 | 5527 |
|
5528 | 5528 |
ctx, err := fakeContext(`FROM hello-world:frozen |
... | ... |
@@ -5544,7 +5542,6 @@ RUN [ "/hello" ]`, map[string]string{}) |
5544 | 5544 |
} |
5545 | 5545 |
|
5546 | 5546 |
func (s *DockerSuite) TestBuildEmptyStringVolume(c *check.C) { |
5547 |
- testRequires(c, DaemonIsLinux) |
|
5548 | 5547 |
name := "testbuildemptystringvolume" |
5549 | 5548 |
|
5550 | 5549 |
_, err := buildImage(name, ` |
... | ... |
@@ -5590,7 +5587,6 @@ RUN cat /proc/self/cgroup |
5590 | 5590 |
} |
5591 | 5591 |
|
5592 | 5592 |
func (s *DockerSuite) TestBuildNoDupOutput(c *check.C) { |
5593 |
- testRequires(c, DaemonIsLinux) |
|
5594 | 5593 |
// Check to make sure our build output prints the Dockerfile cmd |
5595 | 5594 |
// property - there was a bug that caused it to be duplicated on the |
5596 | 5595 |
// Step X line |
... | ... |
@@ -5611,7 +5607,6 @@ func (s *DockerSuite) TestBuildNoDupOutput(c *check.C) { |
5611 | 5611 |
|
5612 | 5612 |
// GH15826 |
5613 | 5613 |
func (s *DockerSuite) TestBuildStartsFromOne(c *check.C) { |
5614 |
- testRequires(c, DaemonIsLinux) |
|
5615 | 5614 |
// Explicit check to ensure that build starts from step 1 rather than 0 |
5616 | 5615 |
name := "testbuildstartsfromone" |
5617 | 5616 |
|
... | ... |
@@ -5628,7 +5623,6 @@ func (s *DockerSuite) TestBuildStartsFromOne(c *check.C) { |
5628 | 5628 |
} |
5629 | 5629 |
|
5630 | 5630 |
func (s *DockerSuite) TestBuildBadCmdFlag(c *check.C) { |
5631 |
- testRequires(c, DaemonIsLinux) |
|
5632 | 5631 |
name := "testbuildbadcmdflag" |
5633 | 5632 |
|
5634 | 5633 |
_, out, err := buildImageWithOut(name, ` |
... | ... |
@@ -5645,7 +5639,6 @@ func (s *DockerSuite) TestBuildBadCmdFlag(c *check.C) { |
5645 | 5645 |
} |
5646 | 5646 |
|
5647 | 5647 |
func (s *DockerSuite) TestBuildRUNErrMsg(c *check.C) { |
5648 |
- testRequires(c, DaemonIsLinux) |
|
5649 | 5648 |
// Test to make sure the bad command is quoted with just "s and |
5650 | 5649 |
// not as a Go []string |
5651 | 5650 |
name := "testbuildbadrunerrmsg" |
... | ... |
@@ -5655,8 +5648,14 @@ func (s *DockerSuite) TestBuildRUNErrMsg(c *check.C) { |
5655 | 5655 |
if err == nil { |
5656 | 5656 |
c.Fatal("Should have failed to build") |
5657 | 5657 |
} |
5658 |
- |
|
5659 |
- exp := `The command '/bin/sh -c badEXE a1 \& a2 a3' returned a non-zero code: 127` |
|
5658 |
+ shell := "/bin/sh -c" |
|
5659 |
+ exitCode := "127" |
|
5660 |
+ if daemonPlatform == "windows" { |
|
5661 |
+ shell = "cmd /S /C" |
|
5662 |
+ // architectural - Windows has to start the container to determine the exe is bad, Linux does not |
|
5663 |
+ exitCode = "1" |
|
5664 |
+ } |
|
5665 |
+ exp := `The command '` + shell + ` badEXE a1 \& a2 a3' returned a non-zero code: ` + exitCode |
|
5660 | 5666 |
if !strings.Contains(out, exp) { |
5661 | 5667 |
c.Fatalf("RUN doesn't have the correct output:\nGot:%s\nExpected:%s", out, exp) |
5662 | 5668 |
} |
... | ... |
@@ -5753,15 +5752,20 @@ func (s *DockerTrustSuite) TestBuildContextDirIsSymlink(c *check.C) { |
5753 | 5753 |
|
5754 | 5754 |
// Issue #15634: COPY fails when path starts with "null" |
5755 | 5755 |
func (s *DockerSuite) TestBuildNullStringInAddCopyVolume(c *check.C) { |
5756 |
- testRequires(c, DaemonIsLinux) |
|
5757 | 5756 |
name := "testbuildnullstringinaddcopyvolume" |
5758 | 5757 |
|
5758 |
+ volName := "nullvolume" |
|
5759 |
+ |
|
5760 |
+ if daemonPlatform == "windows" { |
|
5761 |
+ volName = `C:\\nullvolume` |
|
5762 |
+ } |
|
5763 |
+ |
|
5759 | 5764 |
ctx, err := fakeContext(` |
5760 | 5765 |
FROM busybox |
5761 | 5766 |
|
5762 | 5767 |
ADD null / |
5763 | 5768 |
COPY nullfile / |
5764 |
- VOLUME nullvolume |
|
5769 |
+ VOLUME `+volName+` |
|
5765 | 5770 |
`, |
5766 | 5771 |
map[string]string{ |
5767 | 5772 |
"null": "test1", |
... | ... |
@@ -5776,7 +5780,7 @@ func (s *DockerSuite) TestBuildNullStringInAddCopyVolume(c *check.C) { |
5776 | 5776 |
} |
5777 | 5777 |
|
5778 | 5778 |
func (s *DockerSuite) TestBuildStopSignal(c *check.C) { |
5779 |
- testRequires(c, DaemonIsLinux) |
|
5779 |
+ testRequires(c, DaemonIsLinux) // Windows does not support STOPSIGNAL yet |
|
5780 | 5780 |
imgName := "test_build_stop_signal" |
5781 | 5781 |
_, err := buildImage(imgName, |
5782 | 5782 |
`FROM busybox |
... | ... |
@@ -5798,7 +5802,7 @@ func (s *DockerSuite) TestBuildStopSignal(c *check.C) { |
5798 | 5798 |
} |
5799 | 5799 |
|
5800 | 5800 |
func (s *DockerSuite) TestBuildBuildTimeArg(c *check.C) { |
5801 |
- testRequires(c, DaemonIsLinux) |
|
5801 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5802 | 5802 |
imgName := "bldargtest" |
5803 | 5803 |
envKey := "foo" |
5804 | 5804 |
envVal := "bar" |
... | ... |
@@ -5824,7 +5828,7 @@ func (s *DockerSuite) TestBuildBuildTimeArg(c *check.C) { |
5824 | 5824 |
} |
5825 | 5825 |
|
5826 | 5826 |
func (s *DockerSuite) TestBuildBuildTimeArgHistory(c *check.C) { |
5827 |
- testRequires(c, DaemonIsLinux) |
|
5827 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5828 | 5828 |
imgName := "bldargtest" |
5829 | 5829 |
envKey := "foo" |
5830 | 5830 |
envVal := "bar" |
... | ... |
@@ -5850,7 +5854,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgHistory(c *check.C) { |
5850 | 5850 |
} |
5851 | 5851 |
|
5852 | 5852 |
func (s *DockerSuite) TestBuildBuildTimeArgCacheHit(c *check.C) { |
5853 |
- testRequires(c, DaemonIsLinux) |
|
5853 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5854 | 5854 |
imgName := "bldargtest" |
5855 | 5855 |
envKey := "foo" |
5856 | 5856 |
envVal := "bar" |
... | ... |
@@ -5877,7 +5881,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgCacheHit(c *check.C) { |
5877 | 5877 |
} |
5878 | 5878 |
|
5879 | 5879 |
func (s *DockerSuite) TestBuildBuildTimeArgCacheMissExtraArg(c *check.C) { |
5880 |
- testRequires(c, DaemonIsLinux) |
|
5880 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5881 | 5881 |
imgName := "bldargtest" |
5882 | 5882 |
envKey := "foo" |
5883 | 5883 |
envVal := "bar" |
... | ... |
@@ -5909,7 +5913,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgCacheMissExtraArg(c *check.C) { |
5909 | 5909 |
} |
5910 | 5910 |
|
5911 | 5911 |
func (s *DockerSuite) TestBuildBuildTimeArgCacheMissSameArgDiffVal(c *check.C) { |
5912 |
- testRequires(c, DaemonIsLinux) |
|
5912 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5913 | 5913 |
imgName := "bldargtest" |
5914 | 5914 |
envKey := "foo" |
5915 | 5915 |
envVal := "bar" |
... | ... |
@@ -5941,7 +5945,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgCacheMissSameArgDiffVal(c *check.C) { |
5941 | 5941 |
} |
5942 | 5942 |
|
5943 | 5943 |
func (s *DockerSuite) TestBuildBuildTimeArgOverrideArgDefinedBeforeEnv(c *check.C) { |
5944 |
- testRequires(c, DaemonIsLinux) |
|
5944 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5945 | 5945 |
imgName := "bldargtest" |
5946 | 5946 |
envKey := "foo" |
5947 | 5947 |
envVal := "bar" |
... | ... |
@@ -5970,7 +5974,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgOverrideArgDefinedBeforeEnv(c *check. |
5970 | 5970 |
} |
5971 | 5971 |
|
5972 | 5972 |
func (s *DockerSuite) TestBuildBuildTimeArgOverrideEnvDefinedBeforeArg(c *check.C) { |
5973 |
- testRequires(c, DaemonIsLinux) |
|
5973 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
5974 | 5974 |
imgName := "bldargtest" |
5975 | 5975 |
envKey := "foo" |
5976 | 5976 |
envVal := "bar" |
... | ... |
@@ -5999,7 +6003,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgOverrideEnvDefinedBeforeArg(c *check. |
5999 | 5999 |
} |
6000 | 6000 |
|
6001 | 6001 |
func (s *DockerSuite) TestBuildBuildTimeArgExpansion(c *check.C) { |
6002 |
- testRequires(c, DaemonIsLinux) |
|
6002 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6003 | 6003 |
imgName := "bldvarstest" |
6004 | 6004 |
|
6005 | 6005 |
wdVar := "WDIR" |
... | ... |
@@ -6094,7 +6098,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgExpansion(c *check.C) { |
6094 | 6094 |
} |
6095 | 6095 |
|
6096 | 6096 |
func (s *DockerSuite) TestBuildBuildTimeArgExpansionOverride(c *check.C) { |
6097 |
- testRequires(c, DaemonIsLinux) |
|
6097 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6098 | 6098 |
imgName := "bldvarstest" |
6099 | 6099 |
envKey := "foo" |
6100 | 6100 |
envVal := "bar" |
... | ... |
@@ -6124,7 +6128,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgExpansionOverride(c *check.C) { |
6124 | 6124 |
} |
6125 | 6125 |
|
6126 | 6126 |
func (s *DockerSuite) TestBuildBuildTimeArgUntrustedDefinedAfterUse(c *check.C) { |
6127 |
- testRequires(c, DaemonIsLinux) |
|
6127 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6128 | 6128 |
imgName := "bldargtest" |
6129 | 6129 |
envKey := "foo" |
6130 | 6130 |
envVal := "bar" |
... | ... |
@@ -6150,7 +6154,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgUntrustedDefinedAfterUse(c *check.C) |
6150 | 6150 |
} |
6151 | 6151 |
|
6152 | 6152 |
func (s *DockerSuite) TestBuildBuildTimeArgBuiltinArg(c *check.C) { |
6153 |
- testRequires(c, DaemonIsLinux) |
|
6153 |
+ testRequires(c, DaemonIsLinux) // Windows does not support --build-arg |
|
6154 | 6154 |
imgName := "bldargtest" |
6155 | 6155 |
envKey := "HTTP_PROXY" |
6156 | 6156 |
envVal := "bar" |
... | ... |
@@ -6175,7 +6179,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgBuiltinArg(c *check.C) { |
6175 | 6175 |
} |
6176 | 6176 |
|
6177 | 6177 |
func (s *DockerSuite) TestBuildBuildTimeArgDefaultOverride(c *check.C) { |
6178 |
- testRequires(c, DaemonIsLinux) |
|
6178 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6179 | 6179 |
imgName := "bldargtest" |
6180 | 6180 |
envKey := "foo" |
6181 | 6181 |
envVal := "bar" |
... | ... |
@@ -6203,7 +6207,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgDefaultOverride(c *check.C) { |
6203 | 6203 |
} |
6204 | 6204 |
|
6205 | 6205 |
func (s *DockerSuite) TestBuildBuildTimeArgMultiArgsSameLine(c *check.C) { |
6206 |
- testRequires(c, DaemonIsLinux) |
|
6206 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6207 | 6207 |
imgName := "bldargtest" |
6208 | 6208 |
envKey := "foo" |
6209 | 6209 |
envKey1 := "foo1" |
... | ... |
@@ -6220,7 +6224,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgMultiArgsSameLine(c *check.C) { |
6220 | 6220 |
} |
6221 | 6221 |
|
6222 | 6222 |
func (s *DockerSuite) TestBuildBuildTimeArgUnconsumedArg(c *check.C) { |
6223 |
- testRequires(c, DaemonIsLinux) |
|
6223 |
+ testRequires(c, DaemonIsLinux) // Windows does not support --build-arg |
|
6224 | 6224 |
imgName := "bldargtest" |
6225 | 6225 |
envKey := "foo" |
6226 | 6226 |
envVal := "bar" |
... | ... |
@@ -6241,7 +6245,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgUnconsumedArg(c *check.C) { |
6241 | 6241 |
} |
6242 | 6242 |
|
6243 | 6243 |
func (s *DockerSuite) TestBuildBuildTimeArgQuotedValVariants(c *check.C) { |
6244 |
- testRequires(c, DaemonIsLinux) |
|
6244 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6245 | 6245 |
imgName := "bldargtest" |
6246 | 6246 |
envKey := "foo" |
6247 | 6247 |
envKey1 := "foo1" |
... | ... |
@@ -6267,7 +6271,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgQuotedValVariants(c *check.C) { |
6267 | 6267 |
} |
6268 | 6268 |
|
6269 | 6269 |
func (s *DockerSuite) TestBuildBuildTimeArgEmptyValVariants(c *check.C) { |
6270 |
- testRequires(c, DaemonIsLinux) |
|
6270 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6271 | 6271 |
imgName := "bldargtest" |
6272 | 6272 |
envKey := "foo" |
6273 | 6273 |
envKey1 := "foo1" |
... | ... |
@@ -6287,7 +6291,7 @@ func (s *DockerSuite) TestBuildBuildTimeArgEmptyValVariants(c *check.C) { |
6287 | 6287 |
} |
6288 | 6288 |
|
6289 | 6289 |
func (s *DockerSuite) TestBuildBuildTimeArgDefintionWithNoEnvInjection(c *check.C) { |
6290 |
- testRequires(c, DaemonIsLinux) |
|
6290 |
+ testRequires(c, DaemonIsLinux) // Windows does not support ARG |
|
6291 | 6291 |
imgName := "bldargtest" |
6292 | 6292 |
envKey := "foo" |
6293 | 6293 |
args := []string{} |
... | ... |
@@ -6304,11 +6308,15 @@ func (s *DockerSuite) TestBuildBuildTimeArgDefintionWithNoEnvInjection(c *check. |
6304 | 6304 |
} |
6305 | 6305 |
|
6306 | 6306 |
func (s *DockerSuite) TestBuildNoNamedVolume(c *check.C) { |
6307 |
- testRequires(c, DaemonIsLinux) |
|
6308 |
- dockerCmd(c, "run", "-v", "testname:/foo", "busybox", "sh", "-c", "touch /foo/oops") |
|
6307 |
+ volName := "testname:/foo" |
|
6308 |
+ |
|
6309 |
+ if daemonPlatform == "windows" { |
|
6310 |
+ volName = "testname:C:\\foo" |
|
6311 |
+ } |
|
6312 |
+ dockerCmd(c, "run", "-v", volName, "busybox", "sh", "-c", "touch /foo/oops") |
|
6309 | 6313 |
|
6310 | 6314 |
dockerFile := `FROM busybox |
6311 |
- VOLUME testname:/foo |
|
6315 |
+ VOLUME ` + volName + ` |
|
6312 | 6316 |
RUN ls /foo/oops |
6313 | 6317 |
` |
6314 | 6318 |
_, err := buildImage("test", dockerFile, false) |
... | ... |
@@ -6316,8 +6324,6 @@ func (s *DockerSuite) TestBuildNoNamedVolume(c *check.C) { |
6316 | 6316 |
} |
6317 | 6317 |
|
6318 | 6318 |
func (s *DockerSuite) TestBuildTagEvent(c *check.C) { |
6319 |
- testRequires(c, DaemonIsLinux) |
|
6320 |
- |
|
6321 | 6319 |
since := daemonTime(c).Unix() |
6322 | 6320 |
|
6323 | 6321 |
dockerFile := `FROM busybox |
... | ... |
@@ -6485,7 +6491,6 @@ func (s *DockerSuite) TestBuildSymlinkBasename(c *check.C) { |
6485 | 6485 |
|
6486 | 6486 |
// #17827 |
6487 | 6487 |
func (s *DockerSuite) TestBuildCacheRootSource(c *check.C) { |
6488 |
- testRequires(c, DaemonIsLinux) |
|
6489 | 6488 |
name := "testbuildrootsource" |
6490 | 6489 |
ctx, err := fakeContext(` |
6491 | 6490 |
FROM busybox |