52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
package collector
|
|
|
|
import "testing"
|
|
|
|
func TestParseSFPDOM(t *testing.T) {
|
|
raw := `
|
|
Module temperature : 41.23 C
|
|
Module voltage : 3.30 V
|
|
Laser bias current : 6.12 mA
|
|
Laser output power : 0.4712 mW / -3.27 dBm
|
|
Receiver signal average optical power : 0.4123 mW / -3.85 dBm
|
|
`
|
|
got := parseSFPDOM(raw)
|
|
|
|
if v, ok := got["sfp_temperature_c"].(float64); !ok || v != 41.23 {
|
|
t.Fatalf("sfp_temperature_c mismatch: %#v", got["sfp_temperature_c"])
|
|
}
|
|
if v, ok := got["sfp_voltage_v"].(float64); !ok || v != 3.30 {
|
|
t.Fatalf("sfp_voltage_v mismatch: %#v", got["sfp_voltage_v"])
|
|
}
|
|
if v, ok := got["sfp_bias_ma"].(float64); !ok || v != 6.12 {
|
|
t.Fatalf("sfp_bias_ma mismatch: %#v", got["sfp_bias_ma"])
|
|
}
|
|
if v, ok := got["sfp_tx_power_dbm"].(float64); !ok || v != -3.27 {
|
|
t.Fatalf("sfp_tx_power_dbm mismatch: %#v", got["sfp_tx_power_dbm"])
|
|
}
|
|
if v, ok := got["sfp_rx_power_dbm"].(float64); !ok || v != -3.85 {
|
|
t.Fatalf("sfp_rx_power_dbm mismatch: %#v", got["sfp_rx_power_dbm"])
|
|
}
|
|
}
|
|
|
|
func TestDBMValue(t *testing.T) {
|
|
tests := []struct {
|
|
in string
|
|
want float64
|
|
ok bool
|
|
}{
|
|
{"0.4123 mW / -3.85 dBm", -3.85, true},
|
|
{"-1.23 dBm", -1.23, true},
|
|
{"not supported", 0, false},
|
|
}
|
|
for _, tt := range tests {
|
|
got, ok := dbmValue(tt.in)
|
|
if ok != tt.ok {
|
|
t.Fatalf("dbmValue(%q) ok=%v want %v", tt.in, ok, tt.ok)
|
|
}
|
|
if ok && got != tt.want {
|
|
t.Fatalf("dbmValue(%q)=%v want %v", tt.in, got, tt.want)
|
|
}
|
|
}
|
|
}
|