fake_command_runner.CommandSpec{ Path: containerDir + "/stop.sh", }, )) }) It("registers an 'out of memory' event", func() { limits := garden.MemoryLimits{ LimitInBytes: 102400, } err := container.LimitMemory(limits) Expect(err).ToNot(HaveOccurred()) Eventually(func() []string { return container.Events() }).Should(ContainElement("out of memory")) }) }) Context("when setting memory.memsw.limit_in_bytes fails", func() { disaster := errors.New("oh no!") JustBeforeEach(func() { fakeCgroups.WhenSetting("memory", "memory.memsw.limit_in_bytes", func() error { return disaster }) }) It("does not fail", func() { err := container.LimitMemory(garden.MemoryLimits{
}) }) }) 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{ { ID: 0,