Files
AetherForge/agent/client/resource_pressure_test.go

56 lines
1.4 KiB
Go

package client
import "testing"
func TestResourcePressureDiskPressure(t *testing.T) {
if (&ResourcePressure{}).DiskPressure() {
t.Fatal("nil pct should not pressure")
}
low := 5
if !(&ResourcePressure{DiskFreePct: &low}).DiskPressure() {
t.Fatal("5% should be disk pressure")
}
ok := 15
if (&ResourcePressure{DiskFreePct: &ok}).DiskPressure() {
t.Fatal("15% should not pressure")
}
}
func TestResourcePressureThermalPressure(t *testing.T) {
if (&ResourcePressure{}).ThermalPressure() {
t.Fatal("empty should not pressure")
}
cpuHot := 90
if !(&ResourcePressure{CPUTempC: &cpuHot}).ThermalPressure() {
t.Fatal("cpu > 85 should pressure")
}
cpuOK := 80
gpuHot := 85
if !(&ResourcePressure{CPUTempC: &cpuOK, GPUTempC: &gpuHot}).ThermalPressure() {
t.Fatal("gpu > 82 should pressure")
}
}
func TestResourcePressureThrottled(t *testing.T) {
if (&ResourcePressure{}).Throttled() {
t.Fatal("nil throttle false")
}
yes := true
if !(&ResourcePressure{CPUThrottle: &yes}).Throttled() {
t.Fatal("throttle true")
}
no := false
if (&ResourcePressure{CPUThrottle: &no}).Throttled() {
t.Fatal("throttle false")
}
}
func TestResourcePressureJSONOmitempty(t *testing.T) {
freq := 3000
r := ResourcePressure{CPUFreqMHz: &freq}
// smoke: struct tags compile; fields accessible
if r.CPUFreqMHz == nil || *r.CPUFreqMHz != 3000 {
t.Fatal("field set")
}
}