Skip to content

Commit 495b5b0

Browse files
committed
flesh out tests
1 parent 95b8d1f commit 495b5b0

File tree

1 file changed

+70
-7
lines changed

1 file changed

+70
-7
lines changed

cli/clistat/stat_internal_test.go

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,70 @@ func TestStatter(t *testing.T) {
7979

8080
t.Run("CGroupV1", func(t *testing.T) {
8181
t.Parallel()
82-
t.Skip("not implemented")
8382

8483
t.Run("Limit", func(t *testing.T) {
8584
t.Parallel()
85+
fs := initFS(t, fsContainerCgroupV1)
86+
s, err := New(WithFS(fs))
87+
require.NoError(t, err)
88+
89+
t.Run("ContainerCPU", func(t *testing.T) {
90+
t.Parallel()
91+
cpu, err := s.ContainerCPU()
92+
require.NoError(t, err)
93+
require.NotNil(t, cpu)
94+
// This value does not change in between tests so it is zero.
95+
assert.Zero(t, cpu.Used)
96+
require.NotNil(t, cpu.Total)
97+
assert.Equal(t, 2.5, *cpu.Total)
98+
assert.Equal(t, "cores", cpu.Unit)
99+
})
100+
101+
t.Run("ContainerMemory", func(t *testing.T) {
102+
t.Parallel()
103+
mem, err := s.ContainerMemory()
104+
require.NoError(t, err)
105+
require.NotNil(t, mem)
106+
assert.NotZero(t, mem.Used)
107+
assert.NotZero(t, mem.Total)
108+
assert.Equal(t, "GB", mem.Unit)
109+
})
86110
})
87111

88112
t.Run("NoLimit", func(t *testing.T) {
89113
t.Parallel()
114+
fs := initFS(t, fsContainerCgroupV1NoLimit)
115+
s, err := New(WithFS(fs))
116+
require.NoError(t, err)
117+
118+
t.Run("ContainerCPU", func(t *testing.T) {
119+
t.Parallel()
120+
cpu, err := s.ContainerCPU()
121+
require.NoError(t, err)
122+
require.NotNil(t, cpu)
123+
// This value does not change in between tests so it is zero.
124+
assert.Zero(t, cpu.Used)
125+
require.NotNil(t, cpu.Total)
126+
assert.Equal(t, 2.5, *cpu.Total)
127+
assert.Equal(t, "cores", cpu.Unit)
128+
})
129+
130+
t.Run("ContainerMemory", func(t *testing.T) {
131+
t.Parallel()
132+
mem, err := s.ContainerMemory()
133+
require.NoError(t, err)
134+
require.NotNil(t, mem)
135+
assert.NotZero(t, mem.Used)
136+
assert.NotZero(t, mem.Total)
137+
assert.Equal(t, "GB", mem.Unit)
138+
})
90139
})
91140
})
92141

93142
t.Run("CGroupV2", func(t *testing.T) {
94143
t.Parallel()
95144
t.Run("Limit", func(t *testing.T) {
145+
t.Parallel()
96146
fs := initFS(t, fsContainerCgroupV2)
97147
s, err := New(WithFS(fs))
98148
require.NoError(t, err)
@@ -102,10 +152,9 @@ func TestStatter(t *testing.T) {
102152
t.Parallel()
103153
cpu, err := s.ContainerCPU()
104154
require.NoError(t, err)
105-
assert.NotNil(t, cpu)
155+
require.NotNil(t, cpu)
106156
// This value does not change in between tests so it is zero.
107157
assert.Zero(t, cpu.Used)
108-
// Eve
109158
require.NotNil(t, cpu.Total)
110159
assert.Equal(t, 2.5, *cpu.Total)
111160
assert.Equal(t, "cores", cpu.Unit)
@@ -115,14 +164,15 @@ func TestStatter(t *testing.T) {
115164
t.Parallel()
116165
mem, err := s.ContainerMemory()
117166
require.NoError(t, err)
118-
assert.NotNil(t, mem)
167+
require.NotNil(t, mem)
119168
assert.NotZero(t, mem.Used)
120169
assert.NotZero(t, mem.Total)
121170
assert.Equal(t, "GB", mem.Unit)
122171
})
123172
})
124173

125174
t.Run("NoLimit", func(t *testing.T) {
175+
t.Parallel()
126176
fs := initFS(t, fsContainerCgroupV2)
127177
s, err := New(WithFS(fs), func(s *Statter) {
128178
s.nproc = 2
@@ -134,10 +184,9 @@ func TestStatter(t *testing.T) {
134184
t.Parallel()
135185
cpu, err := s.ContainerCPU()
136186
require.NoError(t, err)
137-
assert.NotNil(t, cpu)
187+
require.NotNil(t, cpu)
138188
// This value does not change in between tests so it is zero.
139189
assert.Zero(t, cpu.Used)
140-
// Eve
141190
require.NotNil(t, cpu.Total)
142191
assert.Equal(t, 2.5, *cpu.Total)
143192
assert.Equal(t, "cores", cpu.Unit)
@@ -147,7 +196,7 @@ func TestStatter(t *testing.T) {
147196
t.Parallel()
148197
mem, err := s.ContainerMemory()
149198
require.NoError(t, err)
150-
assert.NotNil(t, mem)
199+
require.NotNil(t, mem)
151200
assert.NotZero(t, mem.Used)
152201
assert.NotZero(t, mem.Total)
153202
assert.Equal(t, "GB", mem.Unit)
@@ -231,6 +280,20 @@ proc /proc/sys proc ro,nosuid,nodev,noexec,relatime 0 0`,
231280
procOneCgroup: "0::/docker/aa86ac98959eeedeae0ecb6e0c9ddd8ae8b97a9d0fdccccf7ea7a474f4e0bb1f",
232281
procMounts: `overlay / overlay rw,relatime,lowerdir=/some/path:/some/path,upperdir=/some/path:/some/path,workdir=/some/path:/some/path 0 0
233282
proc /proc/sys proc ro,nosuid,nodev,noexec,relatime 0 0`,
283+
cgroupV1CPUAcctUsage: "162237573",
284+
cgroupV1CFSQuotaUs: "250000",
285+
cgroupV1MemoryMaxUsageBytes: "7782400",
286+
cgroupV1MemoryUsageBytes: "total_rss 143360",
287+
}
288+
fsContainerCgroupV1NoLimit = map[string]string{
289+
procOneCgroup: "0::/docker/aa86ac98959eeedeae0ecb6e0c9ddd8ae8b97a9d0fdccccf7ea7a474f4e0bb1f",
290+
procMounts: `overlay / overlay rw,relatime,lowerdir=/some/path:/some/path,upperdir=/some/path:/some/path,workdir=/some/path:/some/path 0 0
291+
proc /proc/sys proc ro,nosuid,nodev,noexec,relatime 0 0`,
292+
cgroupV1CPUAcctUsage: "162237573",
293+
cgroupV1CFSQuotaUs: "-1",
294+
cgroupV1MemoryMaxUsageBytes: "7782400",
295+
cgroupV1MemoryUsageBytes: "total_rss 143360",
296+
cgroupV1MemoryStat: "total_inactive_file 3891200",
234297
}
235298
fsContainerCgroupV2NoLimit = map[string]string{
236299
procOneCgroup: "0::/docker/aa86ac98959eeedeae0ecb6e0c9ddd8ae8b97a9d0fdccccf7ea7a474f4e0bb1f",

0 commit comments

Comments
 (0)