memory_test.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package fs
  2. import (
  3. "testing"
  4. )
  5. const (
  6. memoryStatContents = `cache 512
  7. rss 1024`
  8. memoryUsageContents = "2048\n"
  9. memoryMaxUsageContents = "4096\n"
  10. )
  11. func TestMemoryStats(t *testing.T) {
  12. helper := NewCgroupTestUtil("memory", t)
  13. defer helper.cleanup()
  14. helper.writeFileContents(map[string]string{
  15. "memory.stat": memoryStatContents,
  16. "memory.usage_in_bytes": memoryUsageContents,
  17. "memory.max_usage_in_bytes": memoryMaxUsageContents,
  18. })
  19. memory := &memoryGroup{}
  20. stats, err := memory.Stats(helper.CgroupData)
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. expectedStats := map[string]int64{"cache": 512, "rss": 1024, "usage_in_bytes": 2048, "max_usage_in_bytes": 4096}
  25. expectStats(t, expectedStats, stats)
  26. }
  27. func TestMemoryStatsNoStatFile(t *testing.T) {
  28. helper := NewCgroupTestUtil("memory", t)
  29. defer helper.cleanup()
  30. helper.writeFileContents(map[string]string{
  31. "memory.usage_in_bytes": memoryUsageContents,
  32. "memory.max_usage_in_bytes": memoryMaxUsageContents,
  33. })
  34. memory := &memoryGroup{}
  35. _, err := memory.Stats(helper.CgroupData)
  36. if err == nil {
  37. t.Fatal("Expected failure")
  38. }
  39. }
  40. func TestMemoryStatsNoUsageFile(t *testing.T) {
  41. helper := NewCgroupTestUtil("memory", t)
  42. defer helper.cleanup()
  43. helper.writeFileContents(map[string]string{
  44. "memory.stat": memoryStatContents,
  45. "memory.max_usage_in_bytes": memoryMaxUsageContents,
  46. })
  47. memory := &memoryGroup{}
  48. _, err := memory.Stats(helper.CgroupData)
  49. if err == nil {
  50. t.Fatal("Expected failure")
  51. }
  52. }
  53. func TestMemoryStatsNoMaxUsageFile(t *testing.T) {
  54. helper := NewCgroupTestUtil("memory", t)
  55. defer helper.cleanup()
  56. helper.writeFileContents(map[string]string{
  57. "memory.stat": memoryStatContents,
  58. "memory.usage_in_bytes": memoryUsageContents,
  59. })
  60. memory := &memoryGroup{}
  61. _, err := memory.Stats(helper.CgroupData)
  62. if err == nil {
  63. t.Fatal("Expected failure")
  64. }
  65. }
  66. func TestMemoryStatsBadStatFile(t *testing.T) {
  67. helper := NewCgroupTestUtil("memory", t)
  68. defer helper.cleanup()
  69. helper.writeFileContents(map[string]string{
  70. "memory.stat": "rss rss",
  71. "memory.usage_in_bytes": memoryUsageContents,
  72. "memory.max_usage_in_bytes": memoryMaxUsageContents,
  73. })
  74. memory := &memoryGroup{}
  75. _, err := memory.Stats(helper.CgroupData)
  76. if err == nil {
  77. t.Fatal("Expected failure")
  78. }
  79. }
  80. func TestMemoryStatsBadUsageFile(t *testing.T) {
  81. helper := NewCgroupTestUtil("memory", t)
  82. defer helper.cleanup()
  83. helper.writeFileContents(map[string]string{
  84. "memory.stat": memoryStatContents,
  85. "memory.usage_in_bytes": "bad",
  86. "memory.max_usage_in_bytes": memoryMaxUsageContents,
  87. })
  88. memory := &memoryGroup{}
  89. _, err := memory.Stats(helper.CgroupData)
  90. if err == nil {
  91. t.Fatal("Expected failure")
  92. }
  93. }
  94. func TestMemoryStatsBadMaxUsageFile(t *testing.T) {
  95. helper := NewCgroupTestUtil("memory", t)
  96. defer helper.cleanup()
  97. helper.writeFileContents(map[string]string{
  98. "memory.stat": memoryStatContents,
  99. "memory.usage_in_bytes": memoryUsageContents,
  100. "memory.max_usage_in_bytes": "bad",
  101. })
  102. memory := &memoryGroup{}
  103. _, err := memory.Stats(helper.CgroupData)
  104. if err == nil {
  105. t.Fatal("Expected failure")
  106. }
  107. }