1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4lib_dir=$(dirname $0)/forwarding
5
6ALL_TESTS="altnames_test"
7NUM_NETIFS=0
8source $lib_dir/lib.sh
9
10DUMMY_DEV=dummytest
11SHORT_NAME=shortname
12LONG_NAME=someveryveryveryveryveryverylongname
13
14altnames_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
58setup_prepare()
59{
60	ip link add name $DUMMY_DEV type dummy
61}
62
63cleanup()
64{
65	pre_cleanup
66	ip link del name $DUMMY_DEV
67}
68
69trap cleanup EXIT
70
71setup_prepare
72
73tests_run
74
75exit $EXIT_STATUS
76