You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.1 KiB
55 lines
1.1 KiB
// +build !nomegacli
|
|
|
|
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()
|
|
}
|
|
}
|