github.com/elastic/gosigar@v0.14.3/cgroup/cpu_test.go (about) 1 package cgroup 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 const cpuPath = "testdata/docker/sys/fs/cgroup/cpu/docker/b29faf21b7eff959f64b4192c34d5d67a707fe8561e9eaa608cb27693fba4242" 11 12 func TestCpuStats(t *testing.T) { 13 cpu := CPUSubsystem{} 14 if err := cpuStat(cpuPath, &cpu); err != nil { 15 t.Fatal(err) 16 } 17 18 assert.Equal(t, uint64(769021), cpu.Stats.Periods) 19 assert.Equal(t, uint64(1046), cpu.Stats.ThrottledPeriods) 20 assert.Equal(t, uint64(352597023453), cpu.Stats.ThrottledTimeNanos) 21 } 22 23 func TestCpuCFS(t *testing.T) { 24 cpu := CPUSubsystem{} 25 if err := cpuCFS(cpuPath, &cpu); err != nil { 26 t.Fatal(err) 27 } 28 29 assert.Equal(t, uint64(100000), cpu.CFS.PeriodMicros) 30 assert.Equal(t, uint64(0), cpu.CFS.QuotaMicros) // -1 is changed to 0. 31 assert.Equal(t, uint64(1024), cpu.CFS.Shares) 32 } 33 34 func TestCpuRT(t *testing.T) { 35 cpu := CPUSubsystem{} 36 if err := cpuRT(cpuPath, &cpu); err != nil { 37 t.Fatal(err) 38 } 39 40 assert.Equal(t, uint64(1000000), cpu.RT.PeriodMicros) 41 assert.Equal(t, uint64(0), cpu.RT.RuntimeMicros) 42 } 43 44 func TestCpuSubsystemGet(t *testing.T) { 45 cpu := CPUSubsystem{} 46 if err := cpu.get(cpuPath); err != nil { 47 t.Fatal(err) 48 } 49 50 assert.Equal(t, uint64(769021), cpu.Stats.Periods) 51 assert.Equal(t, uint64(100000), cpu.CFS.PeriodMicros) 52 assert.Equal(t, uint64(1000000), cpu.RT.PeriodMicros) 53 } 54 55 func TestCpuSubsystemJSON(t *testing.T) { 56 cpu := CPUSubsystem{} 57 if err := cpu.get(cpuPath); err != nil { 58 t.Fatal(err) 59 } 60 61 json, err := json.MarshalIndent(cpu, "", " ") 62 if err != nil { 63 t.Fatal(err) 64 } 65 66 t.Log(string(json)) 67 }