skip v6 test when no v6 interface

This commit is contained in:
Will Scott
2020-03-08 13:08:23 -07:00
parent 1e73e463a8
commit cb7084c083
2 changed files with 14 additions and 1 deletions
+1 -1
View File
@@ -29,5 +29,5 @@ func New() (routing.Router, error) {
if err != nil {
return nil, err
}
return router{r}, nil
return &router{r}, nil
}
+13
View File
@@ -18,6 +18,7 @@ func TestRoute(t *testing.T) {
}
var localAddr net.IP
var hasV6 bool
addrs, err := ifs[0].Addrs()
for _, addr := range addrs {
if strings.HasPrefix(addr.Network(), "ip") {
@@ -25,6 +26,15 @@ func TestRoute(t *testing.T) {
break
}
}
for _, addr := range addrs {
if strings.HasPrefix(addr.Network(), "ip") {
_, ipn, _ := net.ParseCIDR(addr.String())
if ipn.IP.To4() == nil {
hasV6 = true
break
}
}
}
_, gw, src, err := r.Route(localAddr)
if err != nil {
@@ -44,6 +54,9 @@ func TestRoute(t *testing.T) {
}
// Route to v4 and v6 should differ.
if !hasV6 {
return
}
_, v6gw, _, err := r.Route(net.ParseIP("2607:f8b0:400a:809::200e")) // at one point google.
if err != nil {
t.Fatal(err)