github.com/elastic/gosigar@v0.14.3/cgroup/cpuacct_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 cpuacctPath = "testdata/docker/sys/fs/cgroup/cpuacct/docker/b29faf21b7eff959f64b4192c34d5d67a707fe8561e9eaa608cb27693fba4242" 11 12 func TestCPUAccountingStats(t *testing.T) { 13 cpuacct := CPUAccountingSubsystem{} 14 if err := cpuacctStat(cpuacctPath, &cpuacct); err != nil { 15 t.Fatal(err) 16 } 17 18 assert.Equal(t, uint64(61950000000), cpuacct.Stats.UserNanos) 19 assert.Equal(t, uint64(7730000000), cpuacct.Stats.SystemNanos) 20 } 21 22 func TestCpuacctUsage(t *testing.T) { 23 cpuacct := CPUAccountingSubsystem{} 24 if err := cpuacctUsage(cpuacctPath, &cpuacct); err != nil { 25 t.Fatal(err) 26 } 27 28 assert.Equal(t, uint64(95996653175), cpuacct.TotalNanos) 29 } 30 31 func TestCpuacctUsagePerCPU(t *testing.T) { 32 cpuacct := CPUAccountingSubsystem{} 33 if err := cpuacctUsagePerCPU(cpuacctPath, &cpuacct); err != nil { 34 t.Fatal(err) 35 } 36 37 assert.Equal(t, []uint64{26571825468, 23185259690, 24300973729, 21937433730}, cpuacct.UsagePerCPU) 38 } 39 40 func TestCPUAccountingSubsystem_Get(t *testing.T) { 41 cpuacct := CPUAccountingSubsystem{} 42 if err := cpuacct.get(cpuacctPath); err != nil { 43 t.Fatal(err) 44 } 45 46 assert.Equal(t, uint64(61950000000), cpuacct.Stats.UserNanos) 47 assert.Equal(t, uint64(95996653175), cpuacct.TotalNanos) 48 assert.Len(t, cpuacct.UsagePerCPU, 4) 49 } 50 51 func TestCPUAccountingSubsystemJSON(t *testing.T) { 52 cpuacct := CPUAccountingSubsystem{} 53 if err := cpuacct.get(cpuacctPath); err != nil { 54 t.Fatal(err) 55 } 56 57 json, err := json.MarshalIndent(cpuacct, "", " ") 58 if err != nil { 59 t.Fatal(err) 60 } 61 62 t.Log(string(json)) 63 }