Node_Exporter/collector/megacli_test.go
Johannes 'fish' Ziemke f47abc5d06 Add MegaCLI collector
This collector exports the following metrics:

- raid_drive_temperature: drive temperature
- raid_drive_count: drive error and event counters
- raid_adapter_disk_presence: disk presence per adapter
2014-07-09 14:56:06 +02:00

55 lines
1.1 KiB
Go

// +build megacli
package collector
import (
"os"
"testing"
)
const (
testMegaCliAdapter = "fixtures/megacli_adapter.txt"
testMegaCliDisks = "fixtures/megacli_disks.txt"
physicalDevicesExpected = "5"
virtualDevicesDegraded = "0"
)
func TestMegaCliAdapter(t *testing.T) {
data, err := os.Open(testMegaCliAdapter)
if err != nil {
t.Fatal(err)
}
stats, err := parseMegaCliAdapter(data)
if err != nil {
t.Fatal(err)
}
if stats["Device Present"]["Physical Devices"] != physicalDevicesExpected {
t.Fatalf("Unexpected device count: %d != %d", stats["Device Present"]["Physical Devices"], physicalDevicesExpected)
}
if stats["Device Present"]["Degraded"] != virtualDevicesDegraded {
t.Fatal()
}
}
func TestMegaCliDisks(t *testing.T) {
data, err := os.Open(testMegaCliDisks)
if err != nil {
t.Fatal(err)
}
stats, err := parseMegaCliDisks(data)
if err != nil {
t.Fatal(err)
}
if stats[32][0]["Drive Temperature"] != "37C (98.60 F)" {
t.Fatalf("Unexpected drive temperature: %s", stats[32][0]["Drive Temperature"])
}
if stats[32][3]["Predictive Failure Count"] != "23" {
t.Fatal()
}
}