xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/net/altnames.sh (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker#!/bin/bash
2*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
3*053f45beSAndroid Build Coastguard Worker
4*053f45beSAndroid Build Coastguard Workerlib_dir=$(dirname $0)/forwarding
5*053f45beSAndroid Build Coastguard Worker
6*053f45beSAndroid Build Coastguard WorkerALL_TESTS="altnames_test"
7*053f45beSAndroid Build Coastguard WorkerNUM_NETIFS=0
8*053f45beSAndroid Build Coastguard Workersource $lib_dir/lib.sh
9*053f45beSAndroid Build Coastguard Worker
10*053f45beSAndroid Build Coastguard WorkerDUMMY_DEV=dummytest
11*053f45beSAndroid Build Coastguard WorkerSHORT_NAME=shortname
12*053f45beSAndroid Build Coastguard WorkerLONG_NAME=someveryveryveryveryveryverylongname
13*053f45beSAndroid Build Coastguard Worker
14*053f45beSAndroid Build Coastguard Workeraltnames_test()
15*053f45beSAndroid Build Coastguard Worker{
16*053f45beSAndroid Build Coastguard Worker	RET=0
17*053f45beSAndroid Build Coastguard Worker	local output
18*053f45beSAndroid Build Coastguard Worker	local name
19*053f45beSAndroid Build Coastguard Worker
20*053f45beSAndroid Build Coastguard Worker	ip link property add $DUMMY_DEV altname $SHORT_NAME
21*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to add short alternative name"
22*053f45beSAndroid Build Coastguard Worker
23*053f45beSAndroid Build Coastguard Worker	output=$(ip -j -p link show $SHORT_NAME)
24*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to do link show with short alternative name"
25*053f45beSAndroid Build Coastguard Worker
26*053f45beSAndroid Build Coastguard Worker	name=$(echo $output | jq -e -r ".[0].altnames[0]")
27*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to get short alternative name from link show JSON"
28*053f45beSAndroid Build Coastguard Worker
29*053f45beSAndroid Build Coastguard Worker	[ "$name" == "$SHORT_NAME" ]
30*053f45beSAndroid Build Coastguard Worker	check_err $? "Got unexpected short alternative name from link show JSON"
31*053f45beSAndroid Build Coastguard Worker
32*053f45beSAndroid Build Coastguard Worker	ip -j -p link show $DUMMY_DEV &>/dev/null
33*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to do link show with original name"
34*053f45beSAndroid Build Coastguard Worker
35*053f45beSAndroid Build Coastguard Worker	ip link property add $DUMMY_DEV altname $LONG_NAME
36*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to add long alternative name"
37*053f45beSAndroid Build Coastguard Worker
38*053f45beSAndroid Build Coastguard Worker	output=$(ip -j -p link show $LONG_NAME)
39*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to do link show with long alternative name"
40*053f45beSAndroid Build Coastguard Worker
41*053f45beSAndroid Build Coastguard Worker	name=$(echo $output | jq -e -r ".[0].altnames[1]")
42*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to get long alternative name from link show JSON"
43*053f45beSAndroid Build Coastguard Worker
44*053f45beSAndroid Build Coastguard Worker	[ "$name" == "$LONG_NAME" ]
45*053f45beSAndroid Build Coastguard Worker	check_err $? "Got unexpected long alternative name from link show JSON"
46*053f45beSAndroid Build Coastguard Worker
47*053f45beSAndroid Build Coastguard Worker	ip link property del $DUMMY_DEV altname $SHORT_NAME
48*053f45beSAndroid Build Coastguard Worker	check_err $? "Failed to delete short alternative name"
49*053f45beSAndroid Build Coastguard Worker
50*053f45beSAndroid Build Coastguard Worker	ip -j -p link show $SHORT_NAME &>/dev/null
51*053f45beSAndroid Build Coastguard Worker	check_fail $? "Unexpected success while trying to do link show with deleted short alternative name"
52*053f45beSAndroid Build Coastguard Worker
53*053f45beSAndroid Build Coastguard Worker	# long name is left there on purpose to be removed alongside the device
54*053f45beSAndroid Build Coastguard Worker
55*053f45beSAndroid Build Coastguard Worker	log_test "altnames test"
56*053f45beSAndroid Build Coastguard Worker}
57*053f45beSAndroid Build Coastguard Worker
58*053f45beSAndroid Build Coastguard Workersetup_prepare()
59*053f45beSAndroid Build Coastguard Worker{
60*053f45beSAndroid Build Coastguard Worker	ip link add name $DUMMY_DEV type dummy
61*053f45beSAndroid Build Coastguard Worker}
62*053f45beSAndroid Build Coastguard Worker
63*053f45beSAndroid Build Coastguard Workercleanup()
64*053f45beSAndroid Build Coastguard Worker{
65*053f45beSAndroid Build Coastguard Worker	pre_cleanup
66*053f45beSAndroid Build Coastguard Worker	ip link del name $DUMMY_DEV
67*053f45beSAndroid Build Coastguard Worker}
68*053f45beSAndroid Build Coastguard Worker
69*053f45beSAndroid Build Coastguard Workertrap cleanup EXIT
70*053f45beSAndroid Build Coastguard Worker
71*053f45beSAndroid Build Coastguard Workersetup_prepare
72*053f45beSAndroid Build Coastguard Worker
73*053f45beSAndroid Build Coastguard Workertests_run
74*053f45beSAndroid Build Coastguard Worker
75*053f45beSAndroid Build Coastguard Workerexit $EXIT_STATUS
76