for !end { chunk, end = br.Next() _, err := out.Write(chunk) Expect(err).NotTo(HaveOccurred()) } Expect(out.String()).To(Equal("1 2 3")) <-testFinished }) }) Context("when the amount of data written is larger than the buffer size", func() { var testFinished chan bool BeforeEach(func() { br.Buffer = make([]byte, 4) testFinished = make(chan bool) go func() { defer GinkgoRecover() _, err := writer.Write([]byte("123456789")) Expect(err).NotTo(HaveOccurred()) Expect(writer.Close()).To(Succeed()) testFinished <- true }() done = true }) It("does not consider the file finished until all the data has been streamed", func() { var out bytes.Buffer