Merge branch 'ucount-fixes-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / tools / testing / selftests / net / altnames.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3
4 lib_dir=$(dirname $0)/forwarding
5
6 ALL_TESTS="altnames_test"
7 NUM_NETIFS=0
8 source $lib_dir/lib.sh
9
10 DUMMY_DEV=dummytest
11 SHORT_NAME=shortname
12 LONG_NAME=someveryveryveryveryveryverylongname
13
14 altnames_test()
15 {
16         RET=0
17         local output
18         local name
19
20         ip link property add $DUMMY_DEV altname $SHORT_NAME
21         check_err $? "Failed to add short alternative name"
22
23         output=$(ip -j -p link show $SHORT_NAME)
24         check_err $? "Failed to do link show with short alternative name"
25
26         name=$(echo $output | jq -e -r ".[0].altnames[0]")
27         check_err $? "Failed to get short alternative name from link show JSON"
28
29         [ "$name" == "$SHORT_NAME" ]
30         check_err $? "Got unexpected short alternative name from link show JSON"
31
32         ip -j -p link show $DUMMY_DEV &>/dev/null
33         check_err $? "Failed to do link show with original name"
34
35         ip link property add $DUMMY_DEV altname $LONG_NAME
36         check_err $? "Failed to add long alternative name"
37
38         output=$(ip -j -p link show $LONG_NAME)
39         check_err $? "Failed to do link show with long alternative name"
40
41         name=$(echo $output | jq -e -r ".[0].altnames[1]")
42         check_err $? "Failed to get long alternative name from link show JSON"
43
44         [ "$name" == "$LONG_NAME" ]
45         check_err $? "Got unexpected long alternative name from link show JSON"
46
47         ip link property del $DUMMY_DEV altname $SHORT_NAME
48         check_err $? "Failed to delete short alternative name"
49
50         ip -j -p link show $SHORT_NAME &>/dev/null
51         check_fail $? "Unexpected success while trying to do link show with deleted short alternative name"
52
53         # long name is left there on purpose to be removed alongside the device
54
55         log_test "altnames test"
56 }
57
58 setup_prepare()
59 {
60         ip link add name $DUMMY_DEV type dummy
61 }
62
63 cleanup()
64 {
65         pre_cleanup
66         ip link del name $DUMMY_DEV
67 }
68
69 trap cleanup EXIT
70
71 setup_prepare
72
73 tests_run
74
75 exit $EXIT_STATUS