Describe("streaming", func() { JustBeforeEach(func() { fakeProcessTracker.RunStub = func(processID uint32, cmd *exec.Cmd, io garden.ProcessIO, tty *garden.TTYSpec, signaller process_tracker.Signaller) (garden.Process, error) { writing := new(sync.WaitGroup) writing.Add(1) go func() { defer writing.Done() defer GinkgoRecover() _, err := fmt.Fprintf(io.Stdout, "hi out\n") Expect(err).ToNot(HaveOccurred()) _, err = fmt.Fprintf(io.Stderr, "hi err\n") Expect(err).ToNot(HaveOccurred()) }() process := new(wfakes.FakeProcess) process.IDReturns(processID) process.WaitStub = func() (int, error) { writing.Wait() return 123, nil } return process, nil } }) It("streams stderr and stdout and exit status", func() {