Skip to content

Commit

Permalink
Split cgroups test into 3 tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Tristan-Wilson committed Jul 17, 2023
1 parent 0009f06 commit 232ded2
Showing 1 changed file with 32 additions and 22 deletions.
54 changes: 32 additions & 22 deletions arbnode/resourcemanager/resource_management_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,52 +31,62 @@ func updateFakeCgroupFiles(c *cgroupsMemoryLimitChecker, limit, usage, inactive
if err != nil {
return err
}
if _, err = fmt.Fprintf(statsFile, `total_cache 1029980160
_, err = fmt.Fprintf(statsFile, `total_cache 1029980160
total_rss 1016209408
total_inactive_file %d
total_active_file 321544192
`, inactive); err != nil {
return err
}
return nil
`, inactive)
return err
}

func TestCgroupsMemoryLimit(t *testing.T) {
cgroupDir := t.TempDir()
testFiles := cgroupsMemoryFiles{
func makeCgroupsTestDir(cgroupDir string) cgroupsMemoryFiles {
return cgroupsMemoryFiles{
limitFile: cgroupDir + "/memory.limit_in_bytes",
usageFile: cgroupDir + "/memory.usage_in_bytes",
statsFile: cgroupDir + "/memory.stat",
inactiveRe: regexp.MustCompile(`total_inactive_file (\d+)`),
}
}

func TestCgroupsFailIfCantOpen(t *testing.T) {
testFiles := makeCgroupsTestDir(t.TempDir())
c := newCgroupsMemoryLimitChecker(testFiles, 95)
_, err := c.isLimitExceeded()
if err == nil {
t.Error("Should fail open if can't read files")
var err error
if _, err = c.isLimitExceeded(); err == nil {
t.Fatal("Should fail open if can't read files")
}
}

err = updateFakeCgroupFiles(c, 1000, 1000, 51)
if err != nil {
t.Error(err)
func TestCgroupsLimitNotExceeded(t *testing.T) {
testFiles := makeCgroupsTestDir(t.TempDir())
c := newCgroupsMemoryLimitChecker(testFiles, 95)

var err error
if err = updateFakeCgroupFiles(c, 1000, 1000, 51); err != nil {
t.Fatal(err)
}
exceeded, err := c.isLimitExceeded()
if err != nil {
t.Error(err)
t.Fatal(err)
}
if exceeded {
t.Error("Expected under limit")
t.Fatal("Expected under limit")
}
}

err = updateFakeCgroupFiles(c, 1000, 1000, 50)
if err != nil {
t.Error(err)
func TestCgroupsLimitExceeded(t *testing.T) {
testFiles := makeCgroupsTestDir(t.TempDir())
c := newCgroupsMemoryLimitChecker(testFiles, 95)

var err error
if err = updateFakeCgroupFiles(c, 1000, 1000, 50); err != nil {
t.Fatal(err)
}
exceeded, err = c.isLimitExceeded()
exceeded, err := c.isLimitExceeded()
if err != nil {
t.Error(err)
t.Fatal(err)
}
if !exceeded {
t.Error("Expected over limit")
t.Fatal("Expected over limit")
}
}

0 comments on commit 232ded2

Please sign in to comment.