package collector import ( "io/ioutil" "os" "testing" ) const ( loadExpected = 0.21 memTotalExpected = "3742148" memDirectMap2MExpected = "3698688" interruptsNmi1Expected = "5031" netReceiveWlan0Bytes = "10437182923" netTransmitTun0Packages = "934" diskSda4ReadsCompleted = "25353629" diskMmcIoTimeWeighted = "68" testProcLoad = "fixtures/loadavg" testProcMemInfo = "fixtures/meminfo" testProcInterrupts = "fixtures/interrupts" testProcNetDev = "fixtures/net-dev" testProcDiskStats = "fixtures/diskstats" ) func TestLoad(t *testing.T) { data, err := ioutil.ReadFile(testProcLoad) if err != nil { t.Fatal(err) } load, err := parseLoad(string(data)) if err != nil { t.Fatal(err) } if load != loadExpected { t.Fatalf("Unexpected load: %f != %f", load, loadExpected) } } func TestMemInfo(t *testing.T) { file, err := os.Open(testProcMemInfo) if err != nil { t.Fatal(err) } memInfo, err := parseMemInfo(file) if err != nil { t.Fatal(err) } if memInfo["MemTotal_kB"] != memTotalExpected { t.Fatalf("Unexpected memory: %s != %s", memInfo["MemTotal_kB"], memTotalExpected) } if memInfo["DirectMap2M_kB"] != memDirectMap2MExpected { t.Fatalf("Unexpected memory: %s != %s", memInfo["MemTotal_kB"], memTotalExpected) } } func TestInterrupts(t *testing.T) { file, err := os.Open(testProcInterrupts) if err != nil { t.Fatal(err) } interrupts, err := parseInterrupts(file) if err != nil { t.Fatal(err) } if interrupts["NMI"].values[1] != interruptsNmi1Expected { t.Fatalf("Unexpected interrupts: %s != %s", interrupts["NMI"].values[1], interruptsNmi1Expected) } } func TestNetStats(t *testing.T) { file, err := os.Open(testProcNetDev) if err != nil { t.Fatal(err) } netStats, err := parseNetStats(file) if err != nil { t.Fatal(err) } if netStats["receive"]["wlan0"]["bytes"] != netReceiveWlan0Bytes { t.Fatalf("Unexpected netstats: %s != %s", netStats["receive"]["wlan0"]["bytes"], netReceiveWlan0Bytes) } if netStats["transmit"]["tun0"]["packets"] != netTransmitTun0Packages { t.Fatalf("Unexpected netstats: %s != %s", netStats["transmit"]["tun0"]["packets"], netTransmitTun0Packages) } } func TestDiskStats(t *testing.T) { file, err := os.Open(testProcDiskStats) if err != nil { t.Fatal(err) } diskStats, err := parseDiskStats(file) if err != nil { t.Fatal(err) } if diskStats["sda4"]["reads_completed"] != diskSda4ReadsCompleted { t.Fatalf("Unexpected diskstats: %s != %s", diskStats["sda4"]["reads_completed"], diskSda4ReadsCompleted) } if diskStats["mmcblk0p2"]["io_time_weighted"] != diskMmcIoTimeWeighted { t.Fatalf("Unexpected diskstats: %s != %s", diskStats["mmcblk0p2"]["io_time_weighted"], diskMmcIoTimeWeighted) } }