github.com/mackerelio/mackerel-agent-plugins@v0.89.3/mackerel-plugin-mssql/lib/mssql_test.go (about) 1 //go:build windows 2 3 package mpmssql 4 5 import ( 6 "os/exec" 7 "strings" 8 "testing" 9 ) 10 11 func instance() (string, error) { 12 b, err := exec.Command("wmi2struct", "-l").CombinedOutput() 13 if err != nil { 14 return "", nil 15 } 16 for _, line := range strings.Split(string(b), "\n") { 17 if strings.Contains(line, "SQLEXPRESS") { 18 return "SQLEXPRESS", nil 19 } 20 if strings.Contains(line, "SQLServer") { 21 return "SQLSERVER", nil 22 } 23 } 24 return "", nil 25 } 26 27 func TestGraphDefinition(t *testing.T) { 28 var mssql MSSQLPlugin 29 30 name, err := instance() 31 if err != nil { 32 t.Fatal(err) 33 } 34 if name == "" { 35 t.Skip("SQLServer/SQLEXPRESS is not installed") 36 } 37 graphdef := mssql.GraphDefinition() 38 if len(graphdef) != 3 { 39 t.Errorf("GraphDefinition: %d definitions should be exists", len(graphdef)) 40 } 41 values, err := mssql.FetchMetrics() 42 if err != nil { 43 t.Errorf("FetchMetrics: %v", err) 44 } 45 if len(values) != 10 { 46 t.Errorf("FetchMetrics: %d metrics must be exists", len(values)) 47 } 48 }