cpu_test.go 1.5 KB

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