Complete Go agent command parity
This commit is contained in:
49
agent/go/cmd/rmm-agent/main_test.go
Normal file
49
agent/go/cmd/rmm-agent/main_test.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestParseIwinfoAssocList(t *testing.T) {
|
||||
output := `AA:BB:CC:DD:EE:FF -49 dBm / -95 dBm (SNR 46) 210 ms ago
|
||||
RX: 72.2 MBit/s, MCS 7, 20MHz
|
||||
TX: 135.0 MBit/s, MCS 6, 40MHz
|
||||
|
||||
11:22:33:44:55:66 -62 dBm / -95 dBm (SNR 33) 30 ms ago
|
||||
RX: 6.0 MBit/s
|
||||
TX: 54.0 MBit/s`
|
||||
|
||||
clients := parseIwinfoAssocList("phy0-ap0", output)
|
||||
if len(clients) != 2 {
|
||||
t.Fatalf("expected 2 clients, got %d", len(clients))
|
||||
}
|
||||
if clients[0]["interface"] != "phy0-ap0" {
|
||||
t.Fatalf("unexpected interface: %q", clients[0]["interface"])
|
||||
}
|
||||
if clients[0]["mac"] != "AA:BB:CC:DD:EE:FF" {
|
||||
t.Fatalf("unexpected mac: %q", clients[0]["mac"])
|
||||
}
|
||||
if clients[0]["signal_dbm"] != "-49" {
|
||||
t.Fatalf("unexpected signal: %q", clients[0]["signal_dbm"])
|
||||
}
|
||||
if clients[0]["rx_rate"] == "" || clients[0]["tx_rate"] == "" {
|
||||
t.Fatalf("expected RX/TX rates, got %#v", clients[0])
|
||||
}
|
||||
if clients[1]["mac"] != "11:22:33:44:55:66" {
|
||||
t.Fatalf("unexpected second mac: %q", clients[1]["mac"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestLooksLikeMAC(t *testing.T) {
|
||||
valid := []string{"aa:bb:cc:dd:ee:ff", "AA:BB:CC:DD:EE:FF", "11:22:33:44:55:66,"}
|
||||
for _, value := range valid {
|
||||
if !looksLikeMAC(value) {
|
||||
t.Fatalf("expected %q to be a MAC", value)
|
||||
}
|
||||
}
|
||||
|
||||
invalid := []string{"", "aa:bb:cc:dd:ee", "aa-bb-cc-dd-ee-ff", "not-a-mac-address"}
|
||||
for _, value := range invalid {
|
||||
if looksLikeMAC(value) {
|
||||
t.Fatalf("expected %q to be invalid", value)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user