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{ LimitInBytes: 102400, }) Expect(err).ToNot(HaveOccurred()) }) }) Context("when setting memory.limit_in_bytes fails only the first time", func() { disaster := errors.New("oh no!")
State: "active", Events: []string{}, Resources: containerResources, }) Expect(err).ToNot(HaveOccurred()) Expect(fakeCgroups.SetValues()).To(BeEmpty()) }) }) Context("when re-enforcing the memory limit fails", func() { disaster := errors.New("oh no!") JustBeforeEach(func() { fakeCgroups.WhenSetting("memory", "memory.limit_in_bytes", func() error { return disaster }) }) It("returns the error", func() { err := container.Restore(linux_backend.LinuxContainerSpec{ State: "active", Events: []string{}, Resources: containerResources, Limits: linux_backend.Limits{ Memory: &garden.MemoryLimits{ LimitInBytes: 1024, }, }, })