Browse code

Rewrite TestAddSingleFileToWorkdir to not use fixtures

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>

Alexandr Morozov authored on 2014/09/22 23:51:42
Showing 2 changed files
1 1
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-FROM busybox
2
-ADD test_file .
... ...
@@ -87,29 +87,28 @@ RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`,
87 87
 
88 88
 // Issue #3960: "ADD src ." hangs
89 89
 func TestBuildAddSingleFileToWorkdir(t *testing.T) {
90
-	testDirName := "SingleFileToWorkdir"
91
-	sourceDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd", testDirName)
92
-	buildDirectory, err := ioutil.TempDir("", "test-build-add")
93
-	defer os.RemoveAll(buildDirectory)
94
-
95
-	err = copyWithCP(sourceDirectory, buildDirectory)
96
-	if err != nil {
97
-		t.Fatalf("failed to copy files to temporary directory: %s", err)
98
-	}
99
-
100
-	buildDirectory = filepath.Join(buildDirectory, testDirName)
101
-	f, err := os.OpenFile(filepath.Join(buildDirectory, "test_file"), os.O_CREATE, 0644)
90
+	name := "testaddsinglefiletoworkdir"
91
+	defer deleteImages(name)
92
+	ctx, err := fakeContext(`FROM busybox
93
+ADD test_file .`,
94
+		map[string]string{
95
+			"test_file": "test1",
96
+		})
102 97
 	if err != nil {
103 98
 		t.Fatal(err)
104 99
 	}
105
-	f.Close()
106
-	_, exitCode, err := dockerCmdInDirWithTimeout(5*time.Second, buildDirectory, "build", "-t", "testaddimg", ".")
107
-	if err != nil || exitCode != 0 {
108
-		t.Fatalf("build failed: %s", err)
100
+	done := make(chan struct{})
101
+	go func() {
102
+		if _, err := buildImageFromContext(name, ctx, true); err != nil {
103
+			t.Fatal(err)
104
+		}
105
+		close(done)
106
+	}()
107
+	select {
108
+	case <-time.After(5 * time.Second):
109
+		t.Fatal("Build with adding to workdir timed out")
110
+	case <-done:
109 111
 	}
110
-
111
-	deleteImages("testaddimg")
112
-
113 112
 	logDone("build - add single file to workdir")
114 113
 }
115 114