test: refactor container-diff call
Signed-off-by: Yoan Blanc <yoan@dosimple.ch>
This commit is contained in:
parent
27aeb89459
commit
f856b831d1
|
|
@ -199,13 +199,7 @@ func TestRun(t *testing.T) {
|
||||||
dockerImage := GetDockerImage(config.imageRepo, dockerfile)
|
dockerImage := GetDockerImage(config.imageRepo, dockerfile)
|
||||||
kanikoImage := GetKanikoImage(config.imageRepo, dockerfile)
|
kanikoImage := GetKanikoImage(config.imageRepo, dockerfile)
|
||||||
|
|
||||||
// container-diff
|
diff := containerDiff(t, daemonPrefix+dockerImage, kanikoImage, "--no-cache")
|
||||||
daemonDockerImage := daemonPrefix + dockerImage
|
|
||||||
containerdiffCmd := exec.Command("container-diff", "diff", "--no-cache",
|
|
||||||
daemonDockerImage, kanikoImage,
|
|
||||||
"-q", "--type=file", "--type=metadata", "--json")
|
|
||||||
diff := RunCommand(containerdiffCmd, t)
|
|
||||||
t.Logf("diff = %s", string(diff))
|
|
||||||
|
|
||||||
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
||||||
checkContainerDiffOutput(t, diff, expected)
|
checkContainerDiffOutput(t, diff, expected)
|
||||||
|
|
@ -249,7 +243,7 @@ func TestGitBuildcontext(t *testing.T) {
|
||||||
repo})...)
|
repo})...)
|
||||||
out, err := RunCommandWithoutTest(dockerCmd)
|
out, err := RunCommandWithoutTest(dockerCmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Failed to build image %s with docker command \"%s\": %s %s", dockerImage, dockerCmd.Args, err, string(out))
|
t.Errorf("Failed to build image %s with docker command %q: %s %s", dockerImage, dockerCmd.Args, err, string(out))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build with kaniko
|
// Build with kaniko
|
||||||
|
|
@ -265,16 +259,10 @@ func TestGitBuildcontext(t *testing.T) {
|
||||||
|
|
||||||
out, err = RunCommandWithoutTest(kanikoCmd)
|
out, err = RunCommandWithoutTest(kanikoCmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Failed to build image %s with kaniko command \"%s\": %v %s", dockerImage, kanikoCmd.Args, err, string(out))
|
t.Errorf("Failed to build image %s with kaniko command %q: %v %s", dockerImage, kanikoCmd.Args, err, string(out))
|
||||||
}
|
}
|
||||||
|
|
||||||
// container-diff
|
diff := containerDiff(t, daemonPrefix+dockerImage, kanikoImage, "--no-cache")
|
||||||
daemonDockerImage := daemonPrefix + dockerImage
|
|
||||||
containerdiffCmd := exec.Command("container-diff", "diff", "--no-cache",
|
|
||||||
daemonDockerImage, kanikoImage,
|
|
||||||
"-q", "--type=file", "--type=metadata", "--json")
|
|
||||||
diff := RunCommand(containerdiffCmd, t)
|
|
||||||
t.Logf("diff = %s", string(diff))
|
|
||||||
|
|
||||||
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
||||||
checkContainerDiffOutput(t, diff, expected)
|
checkContainerDiffOutput(t, diff, expected)
|
||||||
|
|
@ -293,7 +281,7 @@ func TestBuildViaRegistryMirror(t *testing.T) {
|
||||||
repo})...)
|
repo})...)
|
||||||
out, err := RunCommandWithoutTest(dockerCmd)
|
out, err := RunCommandWithoutTest(dockerCmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Failed to build image %s with docker command \"%s\": %s %s", dockerImage, dockerCmd.Args, err, string(out))
|
t.Errorf("Failed to build image %s with docker command %q: %s %s", dockerImage, dockerCmd.Args, err, string(out))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build with kaniko
|
// Build with kaniko
|
||||||
|
|
@ -310,16 +298,10 @@ func TestBuildViaRegistryMirror(t *testing.T) {
|
||||||
|
|
||||||
out, err = RunCommandWithoutTest(kanikoCmd)
|
out, err = RunCommandWithoutTest(kanikoCmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Failed to build image %s with kaniko command \"%s\": %v %s", dockerImage, kanikoCmd.Args, err, string(out))
|
t.Errorf("Failed to build image %s with kaniko command %q: %v %s", dockerImage, kanikoCmd.Args, err, string(out))
|
||||||
}
|
}
|
||||||
|
|
||||||
// container-diff
|
diff := containerDiff(t, daemonPrefix+dockerImage, kanikoImage, "--no-cache")
|
||||||
daemonDockerImage := daemonPrefix + dockerImage
|
|
||||||
containerdiffCmd := exec.Command("container-diff", "diff", "--no-cache",
|
|
||||||
daemonDockerImage, kanikoImage,
|
|
||||||
"-q", "--type=file", "--type=metadata", "--json")
|
|
||||||
diff := RunCommand(containerdiffCmd, t)
|
|
||||||
t.Logf("diff = %s", string(diff))
|
|
||||||
|
|
||||||
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
||||||
checkContainerDiffOutput(t, diff, expected)
|
checkContainerDiffOutput(t, diff, expected)
|
||||||
|
|
@ -391,13 +373,7 @@ func TestCache(t *testing.T) {
|
||||||
kanikoVersion0 := GetVersionedKanikoImage(config.imageRepo, dockerfile, 0)
|
kanikoVersion0 := GetVersionedKanikoImage(config.imageRepo, dockerfile, 0)
|
||||||
kanikoVersion1 := GetVersionedKanikoImage(config.imageRepo, dockerfile, 1)
|
kanikoVersion1 := GetVersionedKanikoImage(config.imageRepo, dockerfile, 1)
|
||||||
|
|
||||||
// container-diff
|
diff := containerDiff(t, kanikoVersion0, kanikoVersion1)
|
||||||
containerdiffCmd := exec.Command("container-diff", "diff",
|
|
||||||
kanikoVersion0, kanikoVersion1,
|
|
||||||
"-q", "--type=file", "--type=metadata", "--json")
|
|
||||||
|
|
||||||
diff := RunCommand(containerdiffCmd, t)
|
|
||||||
t.Logf("diff = %s", diff)
|
|
||||||
|
|
||||||
expected := fmt.Sprintf(emptyContainerDiff, kanikoVersion0, kanikoVersion1, kanikoVersion0, kanikoVersion1)
|
expected := fmt.Sprintf(emptyContainerDiff, kanikoVersion0, kanikoVersion1, kanikoVersion0, kanikoVersion1)
|
||||||
checkContainerDiffOutput(t, diff, expected)
|
checkContainerDiffOutput(t, diff, expected)
|
||||||
|
|
@ -420,13 +396,7 @@ func TestRelativePaths(t *testing.T) {
|
||||||
dockerImage := GetDockerImage(config.imageRepo, dockerfile)
|
dockerImage := GetDockerImage(config.imageRepo, dockerfile)
|
||||||
kanikoImage := GetKanikoImage(config.imageRepo, dockerfile)
|
kanikoImage := GetKanikoImage(config.imageRepo, dockerfile)
|
||||||
|
|
||||||
// container-diff
|
diff := containerDiff(t, daemonPrefix+dockerImage, kanikoImage, "--no-cache")
|
||||||
daemonDockerImage := daemonPrefix + dockerImage
|
|
||||||
containerdiffCmd := exec.Command("container-diff", "diff", "--no-cache",
|
|
||||||
daemonDockerImage, kanikoImage,
|
|
||||||
"-q", "--type=file", "--type=metadata", "--json")
|
|
||||||
diff := RunCommand(containerdiffCmd, t)
|
|
||||||
t.Logf("diff = %s", string(diff))
|
|
||||||
|
|
||||||
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
||||||
checkContainerDiffOutput(t, diff, expected)
|
checkContainerDiffOutput(t, diff, expected)
|
||||||
|
|
@ -657,3 +627,15 @@ func meetsRequirements() bool {
|
||||||
}
|
}
|
||||||
return hasRequirements
|
return hasRequirements
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// containerDiff compares the container images image1 and image2.
|
||||||
|
func containerDiff(t *testing.T, image1, image2 string, flags ...string) []byte {
|
||||||
|
flags = append(flags, image1, image2,
|
||||||
|
"-q", "--type=file", "--type=metadata", "--json")
|
||||||
|
|
||||||
|
containerdiffCmd := exec.Command("container-diff", "diff", flags...)
|
||||||
|
diff := RunCommand(containerdiffCmd, t)
|
||||||
|
t.Logf("diff = %s", string(diff))
|
||||||
|
|
||||||
|
return diff
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue