mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-16 10:22:45 +00:00
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package router
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/Control-D-Inc/ctrld"
|
|
)
|
|
|
|
func Test_normalizeIP(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
in string
|
|
want string
|
|
}{
|
|
{"v4", "127.0.0.1", "127.0.0.1"},
|
|
{"v4 with index", "127.0.0.1%lo", "127.0.0.1"},
|
|
{"v6", "fe80::1", "fe80::1"},
|
|
{"v6 with index", "fe80::1%22002", "fe80::1"},
|
|
}
|
|
for _, tc := range tests {
|
|
tc := tc
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
if got := normalizeIP(tc.in); got != tc.want {
|
|
t.Errorf("normalizeIP() = %v, want %v", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_readClientInfoReader(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
in string
|
|
mac string
|
|
}{
|
|
{
|
|
"good",
|
|
`1683329857 e6:20:59:b8:c1:6d 192.168.1.186 * 01:e6:20:59:b8:c1:6d
|
|
`,
|
|
"e6:20:59:b8:c1:6d",
|
|
},
|
|
{
|
|
"bad seen on UDMdream machine",
|
|
`1683329857 e6:20:59:b8:c1:6e 192.168.1.111 * 01:e6:20:59:b8:c1:6e
|
|
duid 00:01:00:01:2b:e4:2e:2c:52:52:14:26:dc:1c
|
|
1683322985 117442354 2600:4040:b0e6:b700::111 ASDASD 00:01:00:01:2a:d0:b9:81:00:07:32:4c:1c:07
|
|
`,
|
|
"e6:20:59:b8:c1:6e",
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
r := routerPlatform.Load()
|
|
r.mac.Delete(tc.mac)
|
|
if err := readClientInfoReader(strings.NewReader(tc.in)); err != nil {
|
|
t.Errorf("readClientInfoReader() error = %v", err)
|
|
}
|
|
info, existed := r.mac.Load(tc.mac)
|
|
if !existed {
|
|
t.Error("client info missing")
|
|
}
|
|
if ci, ok := info.(*ctrld.ClientInfo); ok && existed && ci.Mac != tc.mac {
|
|
t.Errorf("mac mismatched, got: %q, want: %q", ci.Mac, tc.mac)
|
|
}
|
|
})
|
|
}
|
|
}
|