github.com/cilium/cilium@v1.16.2/pkg/datapath/linux/ethtool/ethtool_linux_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package ethtool
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/vishvananda/netlink"
    10  
    11  	"github.com/cilium/cilium/pkg/testutils"
    12  	"github.com/cilium/cilium/pkg/testutils/netns"
    13  )
    14  
    15  func TestIsVirtualDriver(t *testing.T) {
    16  	testutils.PrivilegedTest(t)
    17  
    18  	ns := netns.NewNetNS(t)
    19  
    20  	ns.Do(func() error {
    21  		name := "veth0"
    22  		veth := &netlink.Veth{
    23  			LinkAttrs: netlink.LinkAttrs{Name: name},
    24  			PeerName:  "veth1",
    25  		}
    26  		err := netlink.LinkAdd(veth)
    27  		if err != nil {
    28  			t.Fatalf("failed to create veth link: %v", err)
    29  		}
    30  		defer netlink.LinkDel(veth)
    31  
    32  		isVirtual, err := IsVirtualDriver(name)
    33  		if err != nil {
    34  			t.Fatalf("error checking veth link %q: %v", name, err)
    35  		} else if !isVirtual {
    36  			t.Errorf("IsVirtualDriver(%q) = %t, want true", name, isVirtual)
    37  		}
    38  		return nil
    39  	})
    40  }