|
@@ -23,6 +23,102 @@ func TestBuildSixtySteps(t *testing.T) {
|
|
|
logDone("build - build an image with sixty build steps")
|
|
|
}
|
|
|
|
|
|
+func TestAddSingleFileToRoot(t *testing.T) {
|
|
|
+ buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd")
|
|
|
+ buildCmd := exec.Command(dockerBinary, "build", "-t", "testaddimg", "SingleFileToRoot")
|
|
|
+ buildCmd.Dir = buildDirectory
|
|
|
+ out, exitCode, err := runCommandWithOutput(buildCmd)
|
|
|
+ errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err))
|
|
|
+
|
|
|
+ if err != nil || exitCode != 0 {
|
|
|
+ t.Fatal("failed to build the image")
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteImages("testaddimg")
|
|
|
+
|
|
|
+ logDone("build - add single file to root")
|
|
|
+}
|
|
|
+
|
|
|
+func TestAddSingleFileToExistDir(t *testing.T) {
|
|
|
+ buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd")
|
|
|
+ buildCmd := exec.Command(dockerBinary, "build", "-t", "testaddimg", "SingleFileToExistDir")
|
|
|
+ buildCmd.Dir = buildDirectory
|
|
|
+ out, exitCode, err := runCommandWithOutput(buildCmd)
|
|
|
+ errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err))
|
|
|
+
|
|
|
+ if err != nil || exitCode != 0 {
|
|
|
+ t.Fatal("failed to build the image")
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteImages("testaddimg")
|
|
|
+
|
|
|
+ logDone("build - add single file to existing dir")
|
|
|
+}
|
|
|
+
|
|
|
+func TestAddSingleFileToNonExistDir(t *testing.T) {
|
|
|
+ buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd")
|
|
|
+ buildCmd := exec.Command(dockerBinary, "build", "-t", "testaddimg", "SingleFileToNonExistDir")
|
|
|
+ buildCmd.Dir = buildDirectory
|
|
|
+ out, exitCode, err := runCommandWithOutput(buildCmd)
|
|
|
+ errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err))
|
|
|
+
|
|
|
+ if err != nil || exitCode != 0 {
|
|
|
+ t.Fatal("failed to build the image")
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteImages("testaddimg")
|
|
|
+
|
|
|
+ logDone("build - add single file to non-existing dir")
|
|
|
+}
|
|
|
+
|
|
|
+func TestAddDirContentToRoot(t *testing.T) {
|
|
|
+ buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd")
|
|
|
+ buildCmd := exec.Command(dockerBinary, "build", "-t", "testaddimg", "DirContentToRoot")
|
|
|
+ buildCmd.Dir = buildDirectory
|
|
|
+ out, exitCode, err := runCommandWithOutput(buildCmd)
|
|
|
+ errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err))
|
|
|
+
|
|
|
+ if err != nil || exitCode != 0 {
|
|
|
+ t.Fatal("failed to build the image")
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteImages("testaddimg")
|
|
|
+
|
|
|
+ logDone("build - add directory contents to root")
|
|
|
+}
|
|
|
+
|
|
|
+func TestAddDirContentToExistDir(t *testing.T) {
|
|
|
+ buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd")
|
|
|
+ buildCmd := exec.Command(dockerBinary, "build", "-t", "testaddimg", "DirContentToExistDir")
|
|
|
+ buildCmd.Dir = buildDirectory
|
|
|
+ out, exitCode, err := runCommandWithOutput(buildCmd)
|
|
|
+ errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err))
|
|
|
+
|
|
|
+ if err != nil || exitCode != 0 {
|
|
|
+ t.Fatal("failed to build the image")
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteImages("testaddimg")
|
|
|
+
|
|
|
+ logDone("build - add directory contents to existing dir")
|
|
|
+}
|
|
|
+
|
|
|
+func TestAddWholeDirToRoot(t *testing.T) {
|
|
|
+ buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd")
|
|
|
+ buildCmd := exec.Command(dockerBinary, "build", "-t", "testaddimg", "WholeDirToRoot")
|
|
|
+ buildCmd.Dir = buildDirectory
|
|
|
+ out, exitCode, err := runCommandWithOutput(buildCmd)
|
|
|
+ errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err))
|
|
|
+
|
|
|
+ if err != nil || exitCode != 0 {
|
|
|
+ t.Fatal("failed to build the image")
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteImages("testaddimg")
|
|
|
+
|
|
|
+ logDone("build - add whole directory to root")
|
|
|
+}
|
|
|
+
|
|
|
// TODO: TestCaching
|
|
|
|
|
|
// TODO: TestADDCacheInvalidation
|