From 232ded2a24121796b4c77cf0d6a3c1fc69de864e Mon Sep 17 00:00:00 2001 From: Tristan Wilson Date: Mon, 17 Jul 2023 13:49:03 -0700 Subject: [PATCH] Split cgroups test into 3 tests --- .../resource_management_test.go | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/arbnode/resourcemanager/resource_management_test.go b/arbnode/resourcemanager/resource_management_test.go index 3d1248d913..699bcd24e1 100644 --- a/arbnode/resourcemanager/resource_management_test.go +++ b/arbnode/resourcemanager/resource_management_test.go @@ -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") } }