github.com/thriqon/involucro@v1.1.3/integrationtest/26_correctly_handle_files_test.go (about) 1 package integrationtest 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/fsouza/go-dockerclient" 10 "github.com/involucro/involucro/app" 11 ) 12 13 func TestFileHandlingSymlinks(t *testing.T) { 14 if testing.Short() { 15 t.SkipNow() 16 } 17 dir, err := ioutil.TempDir("", "inttest-26") 18 if err != nil { 19 t.Fatal(err) 20 } 21 defer os.RemoveAll(dir) 22 23 if err := os.Mkdir(filepath.Join(dir, "p"), 0755); err != nil { 24 t.Fatal(err) 25 } 26 27 if err, ok := os.Symlink("../p", filepath.Join(dir, "p", "cur")).(*os.LinkError); ok && err != nil { 28 t.Fatal(err) 29 } 30 31 c, err := docker.NewClientFromEnv() 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 args := []string{ 37 "involucro", 38 "-e", 39 "inv.task('wrap').wrap('" + dir + "').at('/data').inImage('busybox').as('inttest/26')", 40 "wrap", 41 } 42 defer func() { 43 c.RemoveImage("inttest/26") 44 }() 45 46 if err := app.Main(args); err != nil { 47 t.Fatal(err) 48 } 49 50 args = []string{ 51 "involucro", 52 "-e", 53 "inv.task('test').using('inttest/26').run('ls', '/data/p/cur/cur/cur/cur')", 54 "test", 55 } 56 57 if err := app.Main(args); err != nil { 58 t.Error(err) 59 } 60 }