drm/bridge: adv7511: Switch to atomic operations
[drm/drm-misc.git] / tools / testing / selftests / net / netns-name.sh
blob6974474c26f3e0b7139f7e24a018212298b30b4b
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
4 source lib.sh
5 set -o pipefail
7 DEV=dummy-dev0
8 DEV2=dummy-dev1
9 ALT_NAME=some-alt-name
11 RET_CODE=0
13 cleanup() {
14 cleanup_ns $NS $test_ns
17 trap cleanup EXIT
19 fail() {
20 echo "ERROR: ${1:-unexpected return code} (ret: $_)" >&2
21 RET_CODE=1
24 setup_ns NS test_ns
27 # Test basic move without a rename
29 ip -netns $NS link add name $DEV type dummy || fail
30 ip -netns $NS link set dev $DEV netns $test_ns ||
31 fail "Can't perform a netns move"
32 ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move"
33 ip -netns $test_ns link del $DEV || fail
36 # Test move with a conflict
38 ip -netns $test_ns link add name $DEV type dummy
39 ip -netns $NS link add name $DEV type dummy || fail
40 ip -netns $NS link set dev $DEV netns $test_ns 2> /dev/null &&
41 fail "Performed a netns move with a name conflict"
42 ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move"
43 ip -netns $NS link del $DEV || fail
44 ip -netns $test_ns link del $DEV || fail
47 # Test move with a conflict and rename
49 ip -netns $test_ns link add name $DEV type dummy
50 ip -netns $NS link add name $DEV type dummy || fail
51 ip -netns $NS link set dev $DEV netns $test_ns name $DEV2 ||
52 fail "Can't perform a netns move with rename"
53 ip -netns $test_ns link del $DEV2 || fail
54 ip -netns $test_ns link del $DEV || fail
57 # Test dup alt-name with netns move
59 ip -netns $test_ns link add name $DEV type dummy || fail
60 ip -netns $test_ns link property add dev $DEV altname $ALT_NAME || fail
61 ip -netns $NS link add name $DEV2 type dummy || fail
62 ip -netns $NS link property add dev $DEV2 altname $ALT_NAME || fail
64 ip -netns $NS link set dev $DEV2 netns $test_ns 2> /dev/null &&
65 fail "Moved with alt-name dup"
67 ip -netns $test_ns link del $DEV || fail
68 ip -netns $NS link del $DEV2 || fail
71 # Test creating alt-name in one net-ns and using in another
73 ip -netns $NS link add name $DEV type dummy || fail
74 ip -netns $NS link property add dev $DEV altname $ALT_NAME || fail
75 ip -netns $NS link set dev $DEV netns $test_ns || fail
76 ip -netns $test_ns link show dev $ALT_NAME >> /dev/null || fail "Can't find alt-name after move"
77 ip -netns $NS link show dev $ALT_NAME 2> /dev/null &&
78 fail "Can still find alt-name after move"
79 ip -netns $test_ns link del $DEV || fail
81 echo -ne "$(basename $0) \t\t\t\t"
82 if [ $RET_CODE -eq 0 ]; then
83 echo "[ OK ]"
84 else
85 echo "[ FAIL ]"
87 exit $RET_CODE