@@ -15,6 +15,14 @@ check_err()
15
15
fi
16
16
}
17
17
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
+
18
26
kci_add_dummy ()
19
27
{
20
28
ip link add name " $devdummy " type dummy
@@ -235,6 +243,54 @@ kci_test_addrlabel()
235
243
echo " PASS: ipv6 addrlabel"
236
244
}
237
245
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
+
238
294
kci_test_rtnl ()
239
295
{
240
296
kci_add_dummy
@@ -249,6 +305,7 @@ kci_test_rtnl()
249
305
kci_test_gre
250
306
kci_test_bridge
251
307
kci_test_addrlabel
308
+ kci_test_ifalias
252
309
253
310
kci_del_dummy
254
311
}
0 commit comments