[LTP] [PATCH 2/2] testcases: netns: Handle "Operation not supported" error
Mylène Josserand
mylene.josserand@bootlin.com
Thu Aug 2 16:12:51 CEST 2018
If there is no support for "dummy" or "veth", the tests will fail
with errors:
RTNETLINK answers: Operation not supported
netns_sysfs 1 TBROK: failed to add a new (host) dummy device
and
RTNETLINK answers: Operation not supported
netns_comm_ip_ipv6_ioctl 1 TBROK: unable to create veth pair devices
Cannot find device "veth0"
This commit is storing the output of the commands and verifies
if there is any reference to "Operation not supported".
This code is based on what it is already done in "ipsec_lib.sh"
stress test.
Signed-off-by: Mylène Josserand <mylene.josserand@bootlin.com>
---
testcases/kernel/containers/netns/netns_helper.sh | 16 ++++++++++++++--
testcases/kernel/containers/netns/netns_sysfs.sh | 6 +++++-
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/testcases/kernel/containers/netns/netns_helper.sh b/testcases/kernel/containers/netns/netns_helper.sh
index 6aea10b47..58be60148 100755
--- a/testcases/kernel/containers/netns/netns_helper.sh
+++ b/testcases/kernel/containers/netns/netns_helper.sh
@@ -199,8 +199,14 @@ netns_ns_exec_setup()
tst_brkm TBROK "unable to create a new network namespace"
fi
- $NS_EXEC $NS_HANDLE0 $NS_TYPE ip link add veth0 type veth peer name veth1 || \
+ local output=$($NS_EXEC $NS_HANDLE0 $NS_TYPE ip link add veth0 type \
+ veth peer name veth1 2>&1 || echo 'TERR')
+ if echo "$output" | grep -q "TERR"; then
+ echo "$output" | grep -q \
+ 'RTNETLINK answers: Operation not supported' && \
+ tst_brkm TCONF "Command not supported (maybe missing 'veth' support)"
tst_brkm TBROK "unable to create veth pair devices"
+ fi
$NS_EXEC $NS_HANDLE0 $NS_TYPE ns_ifmove veth1 $NS_HANDLE1
ret=$?
@@ -235,8 +241,14 @@ netns_ip_setup()
ip netns add $NS_HANDLE1 || \
tst_brkm TBROK "unable to create a new network namespace"
- $NS_EXEC $NS_HANDLE0 ip link add veth0 type veth peer name veth1 || \
+ local output=$($NS_EXEC $NS_HANDLE0 ip link add veth0 type \
+ veth peer name veth1 2>&1 || echo 'TERR')
+ if echo "$output" | grep -q "TERR"; then
+ echo "$output" | grep -q \
+ 'RTNETLINK answers: Operation not supported' && \
+ tst_brkm TCONF "Command not supported (maybe missing 'veth' support)"
tst_brkm TBROK "unable to create veth pair devices"
+ fi
$NS_EXEC $NS_HANDLE0 ip link set veth1 netns $NS_HANDLE1 || \
tst_brkm TBROK "unable to add device veth1 to the separate network namespace"
diff --git a/testcases/kernel/containers/netns/netns_sysfs.sh b/testcases/kernel/containers/netns/netns_sysfs.sh
index 944a4c152..138d11402 100644
--- a/testcases/kernel/containers/netns/netns_sysfs.sh
+++ b/testcases/kernel/containers/netns/netns_sysfs.sh
@@ -54,8 +54,12 @@ if [ $? -eq 1 ]; then
fi
TST_CLEANUP=cleanup
-ip link add $DUMMYDEV_HOST type dummy || \
+output=$(ip link add $DUMMYDEV_HOST type dummy 2>&1 || echo 'TERR')
+if echo "$output" | grep -q "TERR"; then
+ echo "$output" | grep -q 'RTNETLINK answers: Operation not supported' && \
+ tst_brkm TCONF "Command not supported (maybe missing 'dummy' support)"
tst_brkm TBROK "failed to add a new (host) dummy device"
+fi
ns_exec $NS_HANDLE $NS_TYPE mount --make-rprivate /sys
ns_exec $NS_HANDLE $NS_TYPE ip link add $DUMMYDEV type dummy || \
--
2.11.0
More information about the ltp
mailing list