Merge pull request #253 from picatz/test-network-net

Add two more tests for network net
This commit is contained in:
Simone Margaritelli 2018-05-01 17:41:58 +02:00 committed by GitHub
commit 6b297d7e1f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -60,3 +60,61 @@ func TestBuildEndpointFromInterface(t *testing.T) {
t.Error(err)
}
}
func TestFindInterfaceByName(t *testing.T) {
ifaces, err := net.Interfaces()
if err != nil {
t.Error(err)
}
if len(ifaces) <= 0 {
t.Error("Unable to find any network interfaces to run test with.")
}
var exampleIface net.Interface
// emulate libpcap's pcap_lookupdev function to find
// default interface to test with ( maybe could use loopback ? )
for _, iface := range ifaces {
if iface.HardwareAddr != nil {
exampleIface = iface
break
}
}
foundEndpoint, err := findInterfaceByName(exampleIface.Name, ifaces)
if err != nil {
t.Error("unable to find a given interface by name to build endpoint", err)
}
if foundEndpoint.Name() != exampleIface.Name {
t.Error("unable to find a given interface by name to build endpoint")
}
}
func TestMatchByAddress(t *testing.T) {
ifaces, err := net.Interfaces()
if err != nil {
t.Error(err)
}
if len(ifaces) <= 0 {
t.Error("Unable to find any network interfaces to run test with.")
}
var exampleIface net.Interface
// emulate libpcap's pcap_lookupdev function to find
// default interface to test with ( maybe could use loopback ? )
for _, iface := range ifaces {
if iface.HardwareAddr != nil {
exampleIface = iface
break
}
}
// check match by mac address
if !matchByAddress(exampleIface, exampleIface.HardwareAddr.String()) {
t.Error("unable to verify a match with a given interface and mac address")
}
addrs, err := exampleIface.Addrs()
if err != nil || len(addrs) <= 0 {
t.Error("Unable to find any ip addresses to run test with interface:", exampleIface.Name)
}
// check match by ip address
if !matchByAddress(exampleIface, addrs[0].String()) {
t.Error("unable to verify a match with a given interface and ip address")
}
}