| #!/bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| |
| lib_dir=$(dirname $0)/forwarding |
| |
| ALL_TESTS="altnames_test" |
| NUM_NETIFS=0 |
| source $lib_dir/lib.sh |
| |
| DUMMY_DEV=dummytest |
| SHORT_NAME=shortname |
| LONG_NAME=someveryveryveryveryveryverylongname |
| |
| altnames_test() |
| { |
| RET=0 |
| local output |
| local name |
| |
| ip link property add $DUMMY_DEV altname $SHORT_NAME |
| check_err $? "Failed to add short alternative name" |
| |
| output=$(ip -j -p link show $SHORT_NAME) |
| check_err $? "Failed to do link show with short alternative name" |
| |
| name=$(echo $output | jq -e -r ".[0].altnames[0]") |
| check_err $? "Failed to get short alternative name from link show JSON" |
| |
| [ "$name" == "$SHORT_NAME" ] |
| check_err $? "Got unexpected short alternative name from link show JSON" |
| |
| ip -j -p link show $DUMMY_DEV &>/dev/null |
| check_err $? "Failed to do link show with original name" |
| |
| ip link property add $DUMMY_DEV altname $LONG_NAME |
| check_err $? "Failed to add long alternative name" |
| |
| output=$(ip -j -p link show $LONG_NAME) |
| check_err $? "Failed to do link show with long alternative name" |
| |
| name=$(echo $output | jq -e -r ".[0].altnames[1]") |
| check_err $? "Failed to get long alternative name from link show JSON" |
| |
| [ "$name" == "$LONG_NAME" ] |
| check_err $? "Got unexpected long alternative name from link show JSON" |
| |
| ip link property del $DUMMY_DEV altname $SHORT_NAME |
| check_err $? "Failed to delete short alternative name" |
| |
| ip -j -p link show $SHORT_NAME &>/dev/null |
| check_fail $? "Unexpected success while trying to do link show with deleted short alternative name" |
| |
| # long name is left there on purpose to be removed alongside the device |
| |
| log_test "altnames test" |
| } |
| |
| setup_prepare() |
| { |
| ip link add name $DUMMY_DEV type dummy |
| } |
| |
| cleanup() |
| { |
| pre_cleanup |
| ip link del name $DUMMY_DEV |
| } |
| |
| trap cleanup EXIT |
| |
| setup_prepare |
| |
| tests_run |
| |
| exit $EXIT_STATUS |