github.com/rita33cool1/iot-system-gateway@v0.0.0-20200911033302-e65bde238cc5/docker-engine/integration/container/exec_test.go (about) 1 package container // import "github.com/docker/docker/integration/container" 2 3 import ( 4 "context" 5 "io/ioutil" 6 "testing" 7 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/strslice" 10 "github.com/docker/docker/integration/internal/container" 11 "github.com/docker/docker/integration/internal/request" 12 "github.com/gotestyourself/gotestyourself/assert" 13 is "github.com/gotestyourself/gotestyourself/assert/cmp" 14 ) 15 16 func TestExec(t *testing.T) { 17 defer setupTest(t)() 18 ctx := context.Background() 19 client := request.NewAPIClient(t) 20 21 cID := container.Run(t, ctx, client, container.WithTty(true), container.WithWorkingDir("/root")) 22 23 id, err := client.ContainerExecCreate(ctx, cID, 24 types.ExecConfig{ 25 WorkingDir: "/tmp", 26 Env: strslice.StrSlice([]string{"FOO=BAR"}), 27 AttachStdout: true, 28 Cmd: strslice.StrSlice([]string{"sh", "-c", "env"}), 29 }, 30 ) 31 assert.NilError(t, err) 32 33 resp, err := client.ContainerExecAttach(ctx, id.ID, 34 types.ExecStartCheck{ 35 Detach: false, 36 Tty: false, 37 }, 38 ) 39 assert.NilError(t, err) 40 defer resp.Close() 41 r, err := ioutil.ReadAll(resp.Reader) 42 assert.NilError(t, err) 43 out := string(r) 44 assert.NilError(t, err) 45 assert.Assert(t, is.Contains(out, "PWD=/tmp"), "exec command not running in expected /tmp working directory") 46 assert.Assert(t, is.Contains(out, "FOO=BAR"), "exec command not running with expected environment variable FOO") 47 }