err := container.Start() Expect(err).ToNot(HaveOccurred()) Expect(fakeRunner).To(HaveExecutedSerially( fake_command_runner.CommandSpec{ Path: containerDir + "/start.sh", Env: []string{ "id=some-id", "PATH=" + os.Getenv("PATH"), }, }, )) }) It("changes the container's state to active", func() { Expect(container.State()).To(Equal(linux_backend.StateBorn)) err := container.Start() Expect(err).ToNot(HaveOccurred()) Expect(container.State()).To(Equal(linux_backend.StateActive)) }) Context("when start.sh fails", func() { nastyError := errors.New("oh no!") JustBeforeEach(func() { fakeRunner.WhenRunning( fake_command_runner.CommandSpec{ Path: containerDir + "/start.sh", }, func(*exec.Cmd) error {
)) }) }) }) Describe("Restoring", func() { It("sets the container's state and events", func() { err := container.Restore(linux_backend.LinuxContainerSpec{ State: "active", Events: []string{"out of memory", "foo"}, Resources: containerResources, }) Expect(err).ToNot(HaveOccurred()) Expect(container.State()).To(Equal(linux_backend.State("active"))) Expect(container.Events()).To(Equal([]string{ "out of memory", "foo", })) }) It("restores process state", func() { err := container.Restore(linux_backend.LinuxContainerSpec{ State: "active", Events: []string{}, Resources: containerResources, Processes: []linux_backend.ActiveProcess{ {