36 lines
995 B
Go
36 lines
995 B
Go
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)
|
|
}
|