github.com/cilium/cilium@v1.16.2/pkg/datapath/link/link_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package link
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  	"github.com/vishvananda/netlink"
    11  
    12  	"github.com/cilium/cilium/pkg/testutils"
    13  )
    14  
    15  func setup(tb testing.TB) {
    16  	testutils.PrivilegedTest(tb)
    17  }
    18  
    19  func TestDeleteByName(t *testing.T) {
    20  	setup(t)
    21  
    22  	testCases := []struct {
    23  		name   string
    24  		create bool
    25  	}{
    26  		{"foo", true},
    27  		{"bar", false},
    28  	}
    29  	var err error
    30  
    31  	for _, tc := range testCases {
    32  		if tc.create {
    33  			err = netlink.LinkAdd(&netlink.Dummy{
    34  				LinkAttrs: netlink.LinkAttrs{
    35  					Name: tc.name,
    36  				},
    37  			})
    38  			require.Nil(t, err)
    39  		}
    40  
    41  		require.Nil(t, DeleteByName(tc.name))
    42  	}
    43  }
    44  
    45  func TestRename(t *testing.T) {
    46  	setup(t)
    47  
    48  	testCases := []struct {
    49  		curName     string
    50  		newName     string
    51  		create      bool
    52  		expectError bool
    53  	}{
    54  		{
    55  			"abc",
    56  			"xyz",
    57  			true,
    58  			false,
    59  		},
    60  		{
    61  			"fizz",
    62  			"buzz",
    63  			false,
    64  			true,
    65  		},
    66  	}
    67  	var err error
    68  
    69  	for _, tc := range testCases {
    70  		if tc.create {
    71  			err = netlink.LinkAdd(&netlink.Dummy{
    72  				LinkAttrs: netlink.LinkAttrs{
    73  					Name: tc.curName,
    74  				},
    75  			})
    76  			require.Nil(t, err)
    77  		}
    78  
    79  		err = Rename(tc.curName, tc.newName)
    80  		if tc.expectError {
    81  			require.Error(t, err)
    82  		} else {
    83  			require.Nil(t, err)
    84  		}
    85  
    86  		DeleteByName(tc.newName)
    87  	}
    88  }