mirror of
https://github.com/tw93/Mole.git
synced 2026-03-24 01:30:07 +00:00
feat(status): alert on persistent high-cpu processes (#602)
* feat(status): alert on persistent high-cpu processes * refactor(status): keep high-cpu alerts read-only * fix(status): address lint and sudo test regressions --------- Co-authored-by: Tw93 <hitw93@gmail.com>
This commit is contained in:
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestShouldUseJSONOutput_ForceFlag(t *testing.T) {
|
||||
@@ -42,3 +43,50 @@ func TestShouldUseJSONOutput_NonTTYFile(t *testing.T) {
|
||||
t.Fatalf("expected file stdout to use JSON mode")
|
||||
}
|
||||
}
|
||||
|
||||
func TestProcessWatchOptionsFromFlags(t *testing.T) {
|
||||
oldThreshold := *procCPUThreshold
|
||||
oldWindow := *procCPUWindow
|
||||
oldAlerts := *procCPUAlerts
|
||||
defer func() {
|
||||
*procCPUThreshold = oldThreshold
|
||||
*procCPUWindow = oldWindow
|
||||
*procCPUAlerts = oldAlerts
|
||||
}()
|
||||
|
||||
*procCPUThreshold = 125
|
||||
*procCPUWindow = 2 * time.Minute
|
||||
*procCPUAlerts = false
|
||||
|
||||
opts := processWatchOptionsFromFlags()
|
||||
if opts.CPUThreshold != 125 {
|
||||
t.Fatalf("CPUThreshold = %v, want 125", opts.CPUThreshold)
|
||||
}
|
||||
if opts.Window != 2*time.Minute {
|
||||
t.Fatalf("Window = %v, want 2m", opts.Window)
|
||||
}
|
||||
if opts.Enabled {
|
||||
t.Fatal("Enabled = true, want false")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateFlags(t *testing.T) {
|
||||
oldThreshold := *procCPUThreshold
|
||||
oldWindow := *procCPUWindow
|
||||
defer func() {
|
||||
*procCPUThreshold = oldThreshold
|
||||
*procCPUWindow = oldWindow
|
||||
}()
|
||||
|
||||
*procCPUThreshold = -1
|
||||
*procCPUWindow = 5 * time.Minute
|
||||
if err := validateFlags(); err == nil {
|
||||
t.Fatal("expected negative threshold to fail validation")
|
||||
}
|
||||
|
||||
*procCPUThreshold = 100
|
||||
*procCPUWindow = 0
|
||||
if err := validateFlags(); err == nil {
|
||||
t.Fatal("expected zero window to fail validation")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user