package sysinfo import "testing" func TestParse(t *testing.T) { s := Stats{} parseMeminfo("MemTotal: 32740916 kB\nMemFree: 9410408 kB\nMemAvailable: 25719724 kB\n", &s) if s.MemTotal != 32740916 || s.MemAvail != 25719724 { t.Fatalf("meminfo salah: %+v", s) } parseLoadavg("0.42 0.61 0.55 3/1812 123456\n", &s) if s.Load1 != 0.42 { t.Fatalf("loadavg salah: %v", s.Load1) } parseUptime("123456.78 9876.5\n", &s) if s.Uptime != 123456.78 { t.Fatalf("uptime salah: %v", s.Uptime) } // input rusak tidak boleh panic & tidak mengubah nilai valid parseMeminfo("sampah\nMemTotal:\n", &s) parseLoadavg("", &s) if s.MemTotal != 32740916 { t.Fatalf("nilai valid berubah setelah input rusak: %+v", s) } } func TestReadLive(t *testing.T) { s := Read() if s.MemTotal == 0 { t.Skip("bukan Linux / /proc tidak tersedia — dilewati") } t.Logf("total %d MB · avail %d MB · load %.2f · uptime %.0f dtk", s.MemTotal/1024, s.MemAvail/1024, s.Load1, s.Uptime) }