...
1
16
17 package cgroups
18
19 import (
20 "os"
21 "path/filepath"
22 "testing"
23 )
24
25 const cpuacctStatData = `user 1
26 system 2
27 sched_delay 3
28 `
29
30 func TestGetUsage(t *testing.T) {
31 mock, err := newMock(t)
32 if err != nil {
33 t.Fatal(err)
34 }
35 defer mock.delete()
36 cpuacct := NewCpuacct(mock.root)
37 if cpuacct == nil {
38 t.Fatal("cpuacct is nil")
39 }
40 err = os.Mkdir(filepath.Join(mock.root, string(Cpuacct), "test"), defaultDirPerm)
41 if err != nil {
42 t.Fatal(err)
43 }
44 current := filepath.Join(mock.root, string(Cpuacct), "test", "cpuacct.stat")
45 if err = os.WriteFile(
46 current,
47 []byte(cpuacctStatData),
48 defaultFilePerm,
49 ); err != nil {
50 t.Fatal(err)
51 }
52 user, kernel, err := cpuacct.getUsage("test")
53 if err != nil {
54 t.Fatalf("can't get usage: %v", err)
55 }
56 index := []uint64{
57 user,
58 kernel,
59 }
60 for i, v := range index {
61 expected := ((uint64(i) + 1) * nanosecondsInSecond) / clockTicks
62 if v != expected {
63 t.Errorf("expected value at index %d to be %d but received %d", i, expected, v)
64 }
65 }
66 }
67
View as plain text