}) It("forwards any logs coming from the log file", func() { commandRunner.WhenRunning(fake_command_runner.CommandSpec{ Path: "something.exe", }, func(cmd *exec.Cmd) error { ioutil.WriteFile(cmd.Args[1], []byte(logs), 0777) return nil }) logRunner.RunAndLog(logger, func(logFile string) *exec.Cmd { return exec.Command("something.exe", logFile) }) runcLogs := make([]lager.LogFormat, 0) for _, log := range logger.Logs() { if log.Message == "test.run.runc" { runcLogs = append(runcLogs, log) } } Expect(runcLogs).To(HaveLen(3)) Expect(runcLogs[0].Data).To(HaveKeyWithValue("message", "signal: potato")) }) It("wraps errors returned by run with the last log message", func() { commandRunner.WhenRunning(fake_command_runner.CommandSpec{ Path: "something.exe", }, func(cmd *exec.Cmd) error { ioutil.WriteFile(cmd.Args[1], []byte(logs), 0777) return errors.New("potato")
} makeInstanceProvisioningRequestWithAcceptsIncomplete := func(instanceID string, details map[string]interface{}, acceptsIncomplete bool) *testflight.Response { var acceptsIncompleteFlag string if acceptsIncomplete { acceptsIncompleteFlag = "?accepts_incomplete=true" } else { acceptsIncompleteFlag = "?accepts_incomplete=false" } return makeInstanceProvisioningRequest(instanceID, details, acceptsIncompleteFlag) } lastLogLine := func() lager.LogFormat { noOfLogLines := len(brokerLogger.Logs()) if noOfLogLines == 0 { // better way to raise error? err := errors.New("expected some log lines but there were none") Expect(err).NotTo(HaveOccurred()) } return brokerLogger.Logs()[noOfLogLines-1] } BeforeEach(func() { fakeServiceBroker = &fakes.FakeServiceBroker{ InstanceLimit: 3, } brokerLogger = lagertest.NewTestLogger("broker-api") brokerAPI = brokerapi.New(fakeServiceBroker, brokerLogger, credentials)