Skip to content

Commit 69e33b2

Browse files
Florian Westphaldavem330
authored andcommitted
selftests: rtnetlink.sh: add test case for device ifalias
Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent bffa72c commit 69e33b2

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

tools/testing/selftests/net/rtnetlink.sh

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ check_err()
1515
fi
1616
}
1717

18+
# same but inverted -- used when command must fail for test to pass
19+
check_fail()
20+
{
21+
if [ $1 -eq 0 ]; then
22+
ret=1
23+
fi
24+
}
25+
1826
kci_add_dummy()
1927
{
2028
ip link add name "$devdummy" type dummy
@@ -235,6 +243,54 @@ kci_test_addrlabel()
235243
echo "PASS: ipv6 addrlabel"
236244
}
237245

246+
kci_test_ifalias()
247+
{
248+
ret=0
249+
namewant=$(uuidgen)
250+
syspathname="/sys/class/net/$devdummy/ifalias"
251+
252+
ip link set dev "$devdummy" alias "$namewant"
253+
check_err $?
254+
255+
if [ $ret -ne 0 ]; then
256+
echo "FAIL: cannot set interface alias of $devdummy to $namewant"
257+
return 1
258+
fi
259+
260+
ip link show "$devdummy" | grep -q "alias $namewant"
261+
check_err $?
262+
263+
if [ -r "$syspathname" ] ; then
264+
read namehave < "$syspathname"
265+
if [ "$namewant" != "$namehave" ]; then
266+
echo "FAIL: did set ifalias $namewant but got $namehave"
267+
return 1
268+
fi
269+
270+
namewant=$(uuidgen)
271+
echo "$namewant" > "$syspathname"
272+
ip link show "$devdummy" | grep -q "alias $namewant"
273+
check_err $?
274+
275+
# sysfs interface allows to delete alias again
276+
echo "" > "$syspathname"
277+
278+
ip link show "$devdummy" | grep -q "alias $namewant"
279+
check_fail $?
280+
281+
# re-add the alias -- kernel should free mem when dummy dev is removed
282+
ip link set dev "$devdummy" alias "$namewant"
283+
check_err $?
284+
fi
285+
286+
if [ $ret -ne 0 ]; then
287+
echo "FAIL: set interface alias $devdummy to $namewant"
288+
return 1
289+
fi
290+
291+
echo "PASS: set ifalias $namewant for $devdummy"
292+
}
293+
238294
kci_test_rtnl()
239295
{
240296
kci_add_dummy
@@ -249,6 +305,7 @@ kci_test_rtnl()
249305
kci_test_gre
250306
kci_test_bridge
251307
kci_test_addrlabel
308+
kci_test_ifalias
252309

253310
kci_del_dummy
254311
}

0 commit comments

Comments
 (0)