88 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4source lib.sh5set -o pipefail6 7DEV=dummy-dev08DEV2=dummy-dev19ALT_NAME=some-alt-name10 11RET_CODE=012 13cleanup() {14 cleanup_ns $NS $test_ns15}16 17trap cleanup EXIT18 19fail() {20 echo "ERROR: ${1:-unexpected return code} (ret: $_)" >&221 RET_CODE=122}23 24setup_ns NS test_ns25 26#27# Test basic move without a rename28#29ip -netns $NS link add name $DEV type dummy || fail30ip -netns $NS link set dev $DEV netns $test_ns ||31 fail "Can't perform a netns move"32ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move"33ip -netns $test_ns link del $DEV || fail34 35#36# Test move with a conflict37#38ip -netns $test_ns link add name $DEV type dummy39ip -netns $NS link add name $DEV type dummy || fail40ip -netns $NS link set dev $DEV netns $test_ns 2> /dev/null &&41 fail "Performed a netns move with a name conflict"42ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move"43ip -netns $NS link del $DEV || fail44ip -netns $test_ns link del $DEV || fail45 46#47# Test move with a conflict and rename48#49ip -netns $test_ns link add name $DEV type dummy50ip -netns $NS link add name $DEV type dummy || fail51ip -netns $NS link set dev $DEV netns $test_ns name $DEV2 ||52 fail "Can't perform a netns move with rename"53ip -netns $test_ns link del $DEV2 || fail54ip -netns $test_ns link del $DEV || fail55 56#57# Test dup alt-name with netns move58#59ip -netns $test_ns link add name $DEV type dummy || fail60ip -netns $test_ns link property add dev $DEV altname $ALT_NAME || fail61ip -netns $NS link add name $DEV2 type dummy || fail62ip -netns $NS link property add dev $DEV2 altname $ALT_NAME || fail63 64ip -netns $NS link set dev $DEV2 netns $test_ns 2> /dev/null &&65 fail "Moved with alt-name dup"66 67ip -netns $test_ns link del $DEV || fail68ip -netns $NS link del $DEV2 || fail69 70#71# Test creating alt-name in one net-ns and using in another72#73ip -netns $NS link add name $DEV type dummy || fail74ip -netns $NS link property add dev $DEV altname $ALT_NAME || fail75ip -netns $NS link set dev $DEV netns $test_ns || fail76ip -netns $test_ns link show dev $ALT_NAME >> /dev/null || fail "Can't find alt-name after move"77ip -netns $NS link show dev $ALT_NAME 2> /dev/null &&78 fail "Can still find alt-name after move"79ip -netns $test_ns link del $DEV || fail80 81echo -ne "$(basename $0) \t\t\t\t"82if [ $RET_CODE -eq 0 ]; then83 echo "[ OK ]"84else85 echo "[ FAIL ]"86fi87exit $RET_CODE88