mirror of
https://github.com/clearlinux/docker.git
synced 2026-10-03 15:28:35 +00:00
Merge pull request #6143 from LK4D4/move_some_more_tests_to_cli
Move some more tests to integration cli
This commit is contained in:
@@ -445,226 +445,6 @@ func TestBuildEntrypointRunCleanup(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func checkCacheBehavior(t *testing.T, template testContextTemplate, expectHit bool) (imageId string) {
|
||||
eng := NewTestEngine(t)
|
||||
defer nuke(mkDaemonFromEngine(eng, t))
|
||||
|
||||
img, err := buildImage(template, t, eng, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
imageId = img.ID
|
||||
|
||||
img, err = buildImage(template, t, eng, expectHit)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if hit := imageId == img.ID; hit != expectHit {
|
||||
t.Fatalf("Cache misbehavior, got hit=%t, expected hit=%t: (first: %s, second %s)", hit, expectHit, imageId, img.ID)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func checkCacheBehaviorFromEngime(t *testing.T, template testContextTemplate, expectHit bool, eng *engine.Engine) (imageId string) {
|
||||
img, err := buildImage(template, t, eng, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
imageId = img.ID
|
||||
|
||||
img, err = buildImage(template, t, eng, expectHit)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if hit := imageId == img.ID; hit != expectHit {
|
||||
t.Fatalf("Cache misbehavior, got hit=%t, expected hit=%t: (first: %s, second %s)", hit, expectHit, imageId, img.ID)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func TestBuildImageWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildExposeWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
expose 80
|
||||
run echo hello
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildImageWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestBuildADDLocalFileWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
run [ "$(cat /usr/lib/bla/bar)" = "hello" ]
|
||||
run echo "second"
|
||||
add . /src/
|
||||
run [ "$(cat /src/foo)" = "hello" ]
|
||||
`,
|
||||
[][2]string{
|
||||
{"foo", "hello"},
|
||||
},
|
||||
nil}
|
||||
eng := NewTestEngine(t)
|
||||
defer nuke(mkDaemonFromEngine(eng, t))
|
||||
|
||||
id1 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
template.files = append(template.files, [2]string{"bar", "hello2"})
|
||||
id2 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id1 == id2 {
|
||||
t.Fatal("The cache should have been invalided but hasn't.")
|
||||
}
|
||||
id3 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id2 != id3 {
|
||||
t.Fatal("The cache should have been used but hasn't.")
|
||||
}
|
||||
template.files[1][1] = "hello3"
|
||||
id4 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id3 == id4 {
|
||||
t.Fatal("The cache should have been invalided but hasn't.")
|
||||
}
|
||||
template.dockerfile += `
|
||||
add ./bar /src2/
|
||||
run ls /src2/bar
|
||||
`
|
||||
id5 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id4 == id5 {
|
||||
t.Fatal("The cache should have been invalided but hasn't.")
|
||||
}
|
||||
template.files[1][1] = "hello4"
|
||||
id6 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id5 == id6 {
|
||||
t.Fatal("The cache should have been invalided but hasn't.")
|
||||
}
|
||||
|
||||
template.dockerfile += `
|
||||
add bar /src2/bar2
|
||||
add /bar /src2/bar3
|
||||
run ls /src2/bar2 /src2/bar3
|
||||
`
|
||||
id7 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id6 == id7 {
|
||||
t.Fatal("The cache should have been invalided but hasn't.")
|
||||
}
|
||||
template.files[1][1] = "hello5"
|
||||
id8 := checkCacheBehaviorFromEngime(t, template, true, eng)
|
||||
if id7 == id8 {
|
||||
t.Fatal("The cache should have been invalided but hasn't.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildADDLocalFileWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
nil}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestBuildADDCurrentDirectoryWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
add . /usr/lib/bla
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildADDCurrentDirectoryWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
add . /usr/lib/bla
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestBuildADDRemoteFileWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
nil,
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildADDRemoteFileWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
nil,
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestBuildADDLocalAndRemoteFilesWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildADDLocalAndRemoteFilesWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestForbiddenContextPath(t *testing.T) {
|
||||
eng := NewTestEngine(t)
|
||||
defer nuke(mkDaemonFromEngine(eng, t))
|
||||
|
||||
Reference in New Issue
Block a user