Add failing testcase for single quotes in CMD

Closes #5701

This is due to @SvenDowideit comment at: https://github.com/docker/docker/issues/5701#issuecomment-58133541
where he asked for a testcase showing the error case.

Signed-off-by: Doug Davis <dug@us.ibm.com>
This commit is contained in:
Doug Davis 2014-10-08 20:34:20 -07:00
parent 2f9ffe5b6a
commit 9edf967824
1 changed files with 22 additions and 0 deletions

View File

@ -2740,3 +2740,25 @@ func TestBuildExoticShellInterpolation(t *testing.T) {
logDone("build - exotic shell interpolation")
}
func TestBuildVerifySingleQuoteFails(t *testing.T) {
// This testcase is supposed to generate an error because the
// JSON array we're passing in on the CMD uses single quotes instead
// of double quotes (per the JSON spec). This means we interpret it
// as a "string" insead of "JSON array" and pass it on to "sh -c" and
// it should barf on it.
name := "testbuildsinglequotefails"
defer deleteImages(name)
_, err := buildImage(name,
`FROM busybox
CMD [ '/bin/sh', '-c', 'echo hi' ]`,
true)
_, _, err = runCommandWithOutput(exec.Command(dockerBinary, "run", name))
if err == nil {
t.Fatal("The image was not supposed to be able to run")
}
logDone("build - verify single quotes fail")
}