mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-25 08:09:30 +01:00
9f35a7fb8d
Ignore ipv6 labeled address
72 lines
1.7 KiB
Go
72 lines
1.7 KiB
Go
package stdnet
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func Test_parseInterfacesString(t *testing.T) {
|
|
testData := []struct {
|
|
name string
|
|
index int
|
|
mtu int
|
|
up bool
|
|
broadcast bool
|
|
loopBack bool
|
|
pointToPoint bool
|
|
multicast bool
|
|
addr string
|
|
}{
|
|
{"wlan0", 30, 1500, true, true, false, false, true, "10.1.10.131/24"},
|
|
{"rmnet0", 30, 1500, true, true, false, false, true, "192.168.0.56/24"},
|
|
{"rmnet_data1", 30, 1500, true, true, false, false, true, "fec0::118c:faf7:8d97:3cb2/64"},
|
|
{"rmnet_data2", 30, 1500, true, true, false, false, true, "fec0::118c:faf7:8d97:3cb2%rmnet2/64"},
|
|
}
|
|
|
|
var exampleString string
|
|
for _, d := range testData {
|
|
exampleString = fmt.Sprintf("%s\n%s %d %d %t %t %t %t %t | %s", exampleString,
|
|
d.name,
|
|
d.index,
|
|
d.mtu,
|
|
d.up,
|
|
d.broadcast,
|
|
d.loopBack,
|
|
d.pointToPoint,
|
|
d.multicast,
|
|
d.addr)
|
|
}
|
|
d := mobileIFaceDiscover{}
|
|
nets := d.parseInterfacesString(exampleString)
|
|
if len(nets) == 0 {
|
|
t.Fatalf("failed to parse interfaces")
|
|
}
|
|
|
|
log.Printf("%d", len(nets))
|
|
for i, net := range nets {
|
|
if net.MTU != testData[i].mtu {
|
|
t.Errorf("invalid mtu: %d, expected: %d", net.MTU, testData[0].mtu)
|
|
|
|
}
|
|
|
|
if net.Interface.Name != testData[i].name {
|
|
t.Errorf("invalid interface name: %s, expected: %s", net.Interface.Name, testData[i].name)
|
|
}
|
|
|
|
addr, err := net.Addrs()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if len(addr) == 0 {
|
|
t.Errorf("invalid address parsing")
|
|
}
|
|
log.Printf("%v", addr)
|
|
if addr[0].String() != testData[i].addr {
|
|
t.Errorf("invalid address: %s, expected: %s", addr[0].String(), testData[i].addr)
|
|
}
|
|
}
|
|
}
|