1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0-or-later 3# Copyright (c) Köry Maincent <kory.maincent@bootlin.com> 2020 4# Copyright (c) 2015 Red Hat, Inc. 5# 6# Tests that a separate network namespace cannot affect sysfs contents 7# of the main namespace. 8 9TST_NEEDS_DRIVERS="dummy" 10TST_CLEANUP=do_cleanup 11TST_SETUP=do_setup 12TST_TESTFUNC=do_test 13TST_NEEDS_TMPDIR=1 14 15do_setup() 16{ 17 NS_TYPE="net,mnt" 18 DUMMYDEV_HOST="dummy_test0" 19 DUMMYDEV="dummy_test1" 20 21 setns_check 22 if [ $? -eq 32 ]; then 23 tst_brk TCONF "setns not supported" 24 fi 25 26 NS_HANDLE=$(ns_create $NS_TYPE) 27 if [ $? -eq 1 ]; then 28 tst_res TINFO "$NS_HANDLE" 29 tst_brk TBROK "unable to create a new network namespace" 30 fi 31 32 ip link add $DUMMYDEV_HOST type dummy || \ 33 tst_brk TBROK "failed to add a new (host) dummy device" 34 35 ns_exec $NS_HANDLE $NS_TYPE mount --make-rprivate /sys 36 ns_exec $NS_HANDLE $NS_TYPE ip link add $DUMMYDEV type dummy || \ 37 tst_brk TBROK "failed to add a new dummy device" 38 ns_exec $NS_HANDLE $NS_TYPE mount -t sysfs none /sys 2>/dev/null 39} 40 41do_cleanup() 42{ 43 ip link del $DUMMYDEV_HOST 2>/dev/null 44 ip link del $DUMMYDEV 2>/dev/null 45 kill -9 $NS_HANDLE 2>/dev/null 46} 47 48do_test() 49{ 50 EXPECT_PASS ns_exec $NS_HANDLE $NS_TYPE test -e /sys/class/net/$DUMMYDEV 51 EXPECT_FAIL ns_exec $NS_HANDLE $NS_TYPE test -e /sys/class/net/$DUMMYDEV_HOST 52 EXPECT_FAIL test -e /sys/class/net/$DUMMYDEV 53} 54 55. tst_test.sh 56tst_run 57