) BeforeEach(func() { startedRequestChan = make(chan struct{}, 1) finishRequestChan = make(chan struct{}, 1) port := 8000 + GinkgoParallelNode() address = fmt.Sprintf("127.0.0.1:%d", port) server = http_server.New(address, handler) }) Describe("Envoke", func() { var process ifrit.Process Context("when the server starts successfully", func() { BeforeEach(func() { process = ifrit.Envoke(server) }) AfterEach(func() { process.Signal(syscall.SIGINT) Eventually(process.Wait()).Should(Receive()) }) Context("and a request is in flight", func() { type httpResponse struct { response *http.Response err error } var responses chan httpResponse BeforeEach(func() {
{"child2", r2}, {"child3", r3}, } }) AfterEach(func() { groupProcess.Signal(os.Kill) Eventually(groupProcess.Wait()).Should(Receive()) }) JustBeforeEach(func() { groupRunner = grouper.NewOrdered(os.Interrupt, members) started = make(chan struct{}) go func() { groupProcess = ifrit.Envoke(groupRunner) close(started) }() Eventually(started).Should(BeClosed()) }) It("stops in reverse order", func() { groupProcess.Signal(os.Kill) Eventually(groupProcess.Wait()).Should(Receive()) close(startOrder) close(stopOrder) Ω(startOrder).To(HaveLen(len(stopOrder))) order := []int64{}
. "github.com/cloudfoundry-incubator/docker_app_lifecycle/Godeps/_workspace/src/github.com/onsi/ginkgo" . "github.com/cloudfoundry-incubator/docker_app_lifecycle/Godeps/_workspace/src/github.com/onsi/gomega" "github.com/cloudfoundry-incubator/docker_app_lifecycle/Godeps/_workspace/src/github.com/tedsuo/ifrit" "github.com/cloudfoundry-incubator/docker_app_lifecycle/Godeps/_workspace/src/github.com/tedsuo/ifrit/test_helpers" "os" ) var _ = Describe("Process", func() { Context("when a process is envoked", func() { var pinger test_helpers.PingChan var pingProc ifrit.Process var errChan chan error BeforeEach(func() { pinger = make(test_helpers.PingChan) pingProc = ifrit.Envoke(pinger) errChan = make(chan error) }) Describe("Wait()", func() { BeforeEach(func() { go func() { errChan <- <-pingProc.Wait() }() go func() { errChan <- <-pingProc.Wait() }() }) Context("when the process exits", func() { BeforeEach(func() {