} }) It("returns an error", func() { Eventually( helpers.LRPInstanceStatePoller(receptorClient, processGuid, 0, nil), ).Should(Equal(receptor.ActualLRPStateRunning)) _, err := ssh.Dial("tcp", address, clientConfig) Expect(err).To(HaveOccurred()) }) }) Context("when a bare-bones docker image is used as the root filesystem", func() { BeforeEach(func() { lrp.StartTimeout = 120 lrp.RootFS = "docker:///busybox" // busybox nc requires -p but ubuntu's won't allow it lrp.Action = &models.CodependentAction{ Actions: []models.Action{ &models.RunAction{ User: "******", Path: "/tmp/sshd", Args: []string{ "-address=0.0.0.0:3456", "-hostKey=" + componentMaker.SSHConfig.HostKeyPem, "-authorizedKey=" + componentMaker.SSHConfig.AuthorizedKey, "-inheritDaemonEnv", }, },
}) It("eventually runs", func() { Eventually(func() []receptor.ActualLRPResponse { lrps, err := receptorClient.ActualLRPsByProcessGuid(processGuid) Expect(err).NotTo(HaveOccurred()) return lrps }).Should(HaveLen(1)) Eventually(helpers.HelloWorldInstancePoller(componentMaker.Addresses.Router, helpers.DefaultHost)).Should(ConsistOf([]string{"0"})) }) Context("when it's unhealthy for longer than its start timeout", func() { BeforeEach(func() { lrp.StartTimeout = 5 lrp.Monitor = &models.RunAction{ User: "******", Path: "false", } }) It("eventually marks the LRP as crashed", func() { Eventually(func() []receptor.ActualLRPResponse { lrps, err := receptorClient.ActualLRPsByProcessGuid(processGuid) Expect(err).NotTo(HaveOccurred()) return lrps }).Should(HaveLen(1))