Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/tools/testing/selftests/net/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  netns-name.sh   Sprache: Shell

 
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

source lib.sh
set -o pipefail

DEV=dummy-dev0
DEV2=dummy-dev1
ALT_NAME=some-alt-name
NSIM_ADDR=2025

RET_CODE=0

cleanup() {
    cleanup_netdevsim $NSIM_ADDR
    cleanup_ns $NS $test_ns
}

trap cleanup EXIT

fail() {
    echo "ERROR: ${1:-unexpected return code} (ret: $_)" >&2
    RET_CODE=1
}

setup_ns NS test_ns

#
# Test basic move without a rename
# Use netdevsim because it has extra asserts for notifiers.
#

nsim=$(create_netdevsim $NSIM_ADDR $NS)
ip -netns $NS link set dev $nsim netns $test_ns ||
    fail "Can't perform a netns move"
ip -netns $test_ns link show dev $nsim >> /dev/null ||
    fail "Device not found after move"
cleanup_netdevsim $NSIM_ADDR

#
# Test move with a conflict
#
ip -netns $test_ns link add name $DEV type dummy
ip -netns $NS link add name $DEV type dummy || fail
ip -netns $NS link set dev $DEV netns $test_ns 2> /dev/null &&
    fail "Performed a netns move with a name conflict"
ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move"
ip -netns $NS link del $DEV || fail
ip -netns $test_ns link del $DEV || fail

#
# Test move with a conflict and rename
#
ip -netns $test_ns link add name $DEV type dummy
ip -netns $NS link add name $DEV type dummy || fail
ip -netns $NS link set dev $DEV netns $test_ns name $DEV2 ||
    fail "Can't perform a netns move with rename"
ip -netns $test_ns link del $DEV2 || fail
ip -netns $test_ns link del $DEV || fail

#
# Test dup alt-name with netns move
#
ip -netns $test_ns link add name $DEV type dummy || fail
ip -netns $test_ns link property add dev $DEV altname $ALT_NAME || fail
ip -netns $NS link add name $DEV2 type dummy || fail
ip -netns $NS link property add dev $DEV2 altname $ALT_NAME || fail

ip -netns $NS link set dev $DEV2 netns $test_ns 2> /dev/null &&
    fail "Moved with alt-name dup"

ip -netns $test_ns link del $DEV || fail
ip -netns $NS link del $DEV2 || fail

#
# Test creating alt-name in one net-ns and using in another
#
ip -netns $NS link add name $DEV type dummy || fail
ip -netns $NS link property add dev $DEV altname $ALT_NAME || fail
ip -netns $NS link set dev $DEV netns $test_ns || fail
ip -netns $test_ns link show dev $ALT_NAME >> /dev/null || fail "Can't find alt-name after move"
ip -netns $NS link show dev $ALT_NAME 2> /dev/null &&
    fail "Can still find alt-name after move"
ip -netns $test_ns link del $DEV || fail

#
# Test no conflict of the same name/ifindex in different netns
#
ip -netns $NS link add name $DEV index 100 type dummy || fail
ip -netns $NS link add netns $test_ns name $DEV index 100 type dummy ||
    fail "Can create in netns without moving"
ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found"
ip -netns $NS link del $DEV || fail
ip -netns $test_ns link del $DEV || fail

echo -ne "$(basename $0) \t\t\t\t"
if [ $RET_CODE -eq 0 ]; then
    echo "[ OK ]"
else
    echo "[ FAIL ]"
fi
exit $RET_CODE

Messung V0.5
C=80 H=100 G=90

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.