From cb7084c0833c1fb4ce99345933595b3d7e69e014 Mon Sep 17 00:00:00 2001 From: Will Scott Date: Sun, 8 Mar 2020 13:08:23 -0700 Subject: [PATCH] skip v6 test when no v6 interface --- netroute_linux.go | 2 +- netroute_test.go | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/netroute_linux.go b/netroute_linux.go index 18c691c..203efb8 100644 --- a/netroute_linux.go +++ b/netroute_linux.go @@ -29,5 +29,5 @@ func New() (routing.Router, error) { if err != nil { return nil, err } - return router{r}, nil + return &router{r}, nil } diff --git a/netroute_test.go b/netroute_test.go index 1ad8bac..0aeffbd 100644 --- a/netroute_test.go +++ b/netroute_test.go @@ -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)