Files
AetherForge/agent/stats/reporter_linux_test.go
AetherForge feba06e008 Improve portable launch, forge persistence, and operator auth UX.
Persist build extra_files for Build Manager history, print dashboard login on every start, add libp2p for Mesh P2P forge, defer WebSocket until login, and split devrun.bat from LAUNCH.bat with USB deck auto-detection.
2026-05-31 18:56:43 -07:00

44 lines
972 B
Go

//go:build linux
package stats
import (
"strings"
"testing"
)
func TestParseKB(t *testing.T) {
if got := parseKB("MemTotal: 16384000 kB"); got != 16384000 {
t.Fatalf("got %d", got)
}
if parseKB("short") != 0 {
t.Fatal("invalid line should return 0")
}
if parseKB("MemAvailable: 0 kB") != 0 {
t.Fatal("zero kB should parse as 0")
}
}
func TestParseMeminfo(t *testing.T) {
content := strings.Join([]string{
"MemTotal: 16384000 kB",
"MemFree: 8192000 kB",
"MemAvailable: 4096000 kB",
}, "\n")
total, avail := parseMeminfo(strings.NewReader(content))
if total != 16384000*1024 {
t.Fatalf("total %d", total)
}
if avail != 4096000*1024 {
t.Fatalf("avail %d", avail)
}
}
func TestParseMeminfoMissingTotal(t *testing.T) {
content := "MemAvailable: 4096000 kB\n"
total, avail := parseMeminfo(strings.NewReader(content))
if total != 0 || avail != 0 {
t.Fatalf("missing MemTotal: total=%d avail=%d", total, avail)
}
}