cgroup_linux_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package internal
  2. import (
  3. "fmt"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestRunningInUserNS(t *testing.T) {
  8. // should be false in docker
  9. assert.False(t, runningInUserNS())
  10. }
  11. func TestCgroupV1(t *testing.T) {
  12. if isCgroup2UnifiedMode() {
  13. cg, err := currentCgroupV1()
  14. assert.NoError(t, err)
  15. _, err = cg.cpus()
  16. assert.Error(t, err)
  17. _, err = cg.cpuPeriodUs()
  18. assert.Error(t, err)
  19. _, err = cg.cpuQuotaUs()
  20. assert.Error(t, err)
  21. _, err = cg.usageAllCpus()
  22. assert.Error(t, err)
  23. }
  24. }
  25. func TestParseUint(t *testing.T) {
  26. tests := []struct {
  27. input string
  28. want uint64
  29. err error
  30. }{
  31. {"0", 0, nil},
  32. {"123", 123, nil},
  33. {"-1", 0, nil},
  34. {"-18446744073709551616", 0, nil},
  35. {"foo", 0, fmt.Errorf("cgroup: bad int format: foo")},
  36. }
  37. for _, tt := range tests {
  38. got, err := parseUint(tt.input)
  39. assert.Equal(t, tt.err, err)
  40. assert.Equal(t, tt.want, got)
  41. }
  42. }
  43. func TestParseUints(t *testing.T) {
  44. tests := []struct {
  45. input string
  46. want []uint64
  47. err error
  48. }{
  49. {"", nil, nil},
  50. {"1,2,3", []uint64{1, 2, 3}, nil},
  51. {"1-3", []uint64{1, 2, 3}, nil},
  52. {"1-3,5,7-9", []uint64{1, 2, 3, 5, 7, 8, 9}, nil},
  53. {"foo", nil, fmt.Errorf("cgroup: bad int format: foo")},
  54. {"1-bar", nil, fmt.Errorf("cgroup: bad int list format: 1-bar")},
  55. {"bar-3", nil, fmt.Errorf("cgroup: bad int list format: bar-3")},
  56. {"3-1", nil, fmt.Errorf("cgroup: bad int list format: 3-1")},
  57. }
  58. for _, tt := range tests {
  59. got, err := parseUints(tt.input)
  60. assert.Equal(t, tt.err, err)
  61. assert.Equal(t, tt.want, got)
  62. }
  63. }