forked from containerd/cgroups
-
Notifications
You must be signed in to change notification settings - Fork 0
/
memory_test.go
90 lines (87 loc) · 1.47 KB
/
memory_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package cgroups
import (
"strings"
"testing"
)
const memoryData = `cache 1
rss 2
rss_huge 3
mapped_file 4
dirty 5
writeback 6
pgpgin 7
pgpgout 8
pgfault 9
pgmajfault 10
inactive_anon 11
active_anon 12
inactive_file 13
active_file 14
unevictable 15
hierarchical_memory_limit 16
hierarchical_memsw_limit 17
total_cache 18
total_rss 19
total_rss_huge 20
total_mapped_file 21
total_dirty 22
total_writeback 23
total_pgpgin 24
total_pgpgout 25
total_pgfault 26
total_pgmajfault 27
total_inactive_anon 28
total_active_anon 29
total_inactive_file 30
total_active_file 31
total_unevictable 32
`
func TestParseMemoryStats(t *testing.T) {
var (
c = &memoryController{}
m = &MemoryStat{}
r = strings.NewReader(memoryData)
)
if err := c.parseStats(r, m); err != nil {
t.Fatal(err)
}
index := []uint64{
m.Cache,
m.RSS,
m.RSSHuge,
m.MappedFile,
m.Dirty,
m.Writeback,
m.PgPgIn,
m.PgPgOut,
m.PgFault,
m.PgMajFault,
m.InactiveAnon,
m.ActiveAnon,
m.InactiveFile,
m.ActiveFile,
m.Unevictable,
m.HierarchicalMemoryLimit,
m.HierarchicalSwapLimit,
m.TotalCache,
m.TotalRSS,
m.TotalRSSHuge,
m.TotalMappedFile,
m.TotalDirty,
m.TotalWriteback,
m.TotalPgPgIn,
m.TotalPgPgOut,
m.TotalPgFault,
m.TotalPgMajFault,
m.TotalInactiveAnon,
m.TotalActiveAnon,
m.TotalInactiveFile,
m.TotalActiveFile,
m.TotalUnevictable,
}
for i, v := range index {
if v != uint64(i)+1 {
t.Errorf("expected value at index %d to be %d but received %d", i, i+1, v)
}
}
}