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 }