github.com/thriqon/involucro@v1.1.3/integrationtest/15_nested_dirs_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 TestWrapNestedDirsCorrectly(t *testing.T) { 14 if testing.Short() { 15 t.SkipNow() 16 } 17 dir, err := ioutil.TempDir("", "inttest-15") 18 if err != nil { 19 t.Fatal(err) 20 } 21 defer os.RemoveAll(dir) 22 23 nestedPath := filepath.Join(dir, "asd", "p", "aaa") 24 if err := os.MkdirAll(nestedPath, 0755); err != nil { 25 t.Fatal(err) 26 } 27 28 if err := ioutil.WriteFile(filepath.Join(nestedPath, "a"), []byte("123"), 0755); err != nil { 29 t.Fatal(err) 30 } 31 if err := ioutil.WriteFile(filepath.Join(nestedPath, "b"), []byte("456"), 0755); err != nil { 32 t.Fatal(err) 33 } 34 35 c, err := docker.NewClientFromEnv() 36 if err != nil { 37 t.Fatal(err) 38 } 39 defer func() { 40 c.RemoveImage("inttest/15") 41 }() 42 43 if err := app.Main([]string{ 44 "involucro", 45 "-e", 46 "inv.task('wrap').wrap('.').inImage('busybox').at('/data').as('inttest/15')", 47 "-w", dir, 48 "wrap", 49 }); err != nil { 50 t.Fatal(err) 51 } 52 53 if err := app.Main([]string{ 54 "involucro", 55 "-e", 56 "inv.task('x').using('inttest/15').run('grep', '123', '/data/asd/p/aaa/a').run('grep', '456', '/data/asd/p/aaa/b')", 57 "x", 58 }); err != nil { 59 t.Error(err) 60 } 61 }