spec := garden.ProcessSpec{ Path: "some-script", } stdout := gbytes.NewBuffer() stderr := gbytes.NewBuffer() processIO := garden.ProcessIO{ Stdout: stdout, Stderr: stderr, } process, err := container.Run(spec, processIO) Ω(err).ShouldNot(HaveOccurred()) ranHandle, ranSpec, ranIO := fakeConnection.RunArgsForCall(0) Ω(ranHandle).Should(Equal("some-handle")) Ω(ranSpec).Should(Equal(spec)) Ω(ranIO).Should(Equal(processIO)) Ω(process.ID()).Should(Equal(uint32(42))) status, err := process.Wait() Ω(err).ShouldNot(HaveOccurred()) Ω(status).Should(Equal(123)) Eventually(stdout).Should(gbytes.Say("stdout data")) Eventually(stderr).Should(gbytes.Say("stderr data")) }) })
fakeProcess.IDReturns(6) }) itRetries(func() error { var err error process, err = conn.Run("la-contineur", processSpec, processIO) return err }, func(err error) { innerConnection.RunReturns(fakeProcess, err) }, func() int { return innerConnection.RunCallCount() }, func() { It("calls through to garden", func() { Ω(innerConnection.RunCallCount()).Should(Equal(1)) handle, calledProcessSpec, calledProcessIO := innerConnection.RunArgsForCall(0) Ω(handle).Should(Equal("la-contineur")) Ω(calledProcessSpec).Should(Equal(processSpec)) Ω(calledProcessIO).Should(Equal(processIO)) }) Describe("the process", func() { BeforeEach(func() { innerConnection.AttachReturns(fakeProcess, nil) }) Describe("Wait", func() { BeforeEach(func() { errs := make(chan error, 1) errs <- io.EOF close(errs)