numSet := 0 fakeCgroups.WhenSetting("memory", "memory.limit_in_bytes", func() error { numSet++ if numSet == 1 { return disaster } return nil }) }) It("succeeds", func() { fakeCgroups.WhenGetting("memory", "memory.limit_in_bytes", func() (string, error) { return "123", nil }) err := container.LimitMemory(garden.MemoryLimits{ LimitInBytes: 102400, }) Expect(err).ToNot(HaveOccurred()) }) }) Context("when setting memory.limit_in_bytes fails the second time", func() { disaster := errors.New("oh no!") JustBeforeEach(func() { numSet := 0
fakeCgroups.WhenGetting("memory", "memory.stat", func() (string, error) { return `cache 1 rss 2 mapped_file 3 pgpgin 4 pgpgout 5 swap 6 pgfault 7 pgmajfault 8 inactive_anon 9 active_anon 10 inactive_file 11 active_file 12 unevictable 13 hierarchical_memory_limit 14 hierarchical_memsw_limit 15 total_cache 16 total_rss 17 total_mapped_file 18 total_pgpgin 19 total_pgpgout 20 total_swap 21 total_pgfault 22 total_pgmajfault 23 total_inactive_anon 24 total_active_anon 25 total_inactive_file 26 total_active_file 27 total_unevictable 28 `, nil })