@@ -19,51 +19,59 @@ package docker
19
19
import (
20
20
"archive/tar"
21
21
"io"
22
+ "io/ioutil"
23
+ "os"
24
+ "path/filepath"
22
25
"testing"
23
26
24
- "github.com/GoogleContainerTools/skaffold/pkg/skaffold/util"
25
- "github.com/pkg/errors"
27
+ "github.com/GoogleContainerTools/skaffold/testutil"
26
28
)
27
29
28
30
func TestDockerContext (t * testing.T ) {
31
+ tmpDir , cleanup := testutil .TempDir (t )
32
+ defer cleanup ()
33
+
34
+ os .Mkdir (filepath .Join (tmpDir , "files" ), 0750 )
35
+ ioutil .WriteFile (filepath .Join (tmpDir , "files" , "ignored.txt" ), []byte ("" ), 0644 )
36
+ ioutil .WriteFile (filepath .Join (tmpDir , "files" , "included.txt" ), []byte ("" ), 0644 )
37
+ ioutil .WriteFile (filepath .Join (tmpDir , ".dockerignore" ), []byte ("**/ignored.txt" ), 0644 )
38
+ ioutil .WriteFile (filepath .Join (tmpDir , "Dockerfile" ), []byte ("FROM alpine\n COPY ./files /files" ), 0644 )
39
+ ioutil .WriteFile (filepath .Join (tmpDir , "ignored.txt" ), []byte ("" ), 0644 )
40
+
29
41
reader , writer := io .Pipe ()
30
42
go func () {
31
- err := CreateDockerTarContext (writer , "Dockerfile" , "../../../testdata/docker" )
43
+ err := CreateDockerTarContext (writer , "Dockerfile" , tmpDir )
32
44
if err != nil {
33
- writer .CloseWithError (errors .Wrap (err , "creating docker context" ))
34
- panic (err )
45
+ writer .CloseWithError (err )
46
+ } else {
47
+ writer .Close ()
35
48
}
36
- writer .Close ()
37
49
}()
38
50
39
- var files [] string
51
+ files := make ( map [ string ] bool )
40
52
tr := tar .NewReader (reader )
41
53
for {
42
54
header , err := tr .Next ()
43
-
44
55
if err == io .EOF {
45
56
break
46
57
}
47
58
if err != nil {
48
- panic ( errors . Wrap (err , "reading tar headers" ) )
59
+ t . Fatal (err )
49
60
}
50
61
51
- files = append ( files , header .Name )
62
+ files [ header .Name ] = true
52
63
}
53
64
54
- if util . StrSliceContains ( files , "ignored.txt" ) {
65
+ if files [ "ignored.txt" ] {
55
66
t .Error ("File ignored.txt should have been excluded, but was not" )
56
67
}
57
-
58
- if util .StrSliceContains (files , "files/ignored.txt" ) {
68
+ if files ["files/ignored.txt" ] {
59
69
t .Error ("File files/ignored.txt should have been excluded, but was not" )
60
70
}
61
-
62
- if ! util .StrSliceContains (files , "files/included.txt" ) {
71
+ if ! files ["files/included.txt" ] {
63
72
t .Error ("File files/included.txt should have been included, but was not" )
64
73
}
65
-
66
- if ! util .StrSliceContains (files , "Dockerfile" ) {
74
+ if ! files ["Dockerfile" ] {
67
75
t .Error ("File Dockerfile should have been included, but was not" )
68
76
}
69
77
}
0 commit comments