summaryrefslogtreecommitdiff
path: root/tests/test-slirp4netns-cidr.sh
diff options
context:
space:
mode:
authorReinhard Tartler <siretart@tauware.de>2019-03-30 10:53:01 -0400
committerReinhard Tartler <siretart@tauware.de>2019-03-30 10:53:01 -0400
commit3925631f27136b690f806464227497af42cb529d (patch)
treec9d6d8eaba72f372ef68fee2d999eda9328e0a41 /tests/test-slirp4netns-cidr.sh
parent2495596df437ed78585cb469e63bec16318c3645 (diff)
New upstream version 0.3.0
Diffstat (limited to 'tests/test-slirp4netns-cidr.sh')
-rwxr-xr-xtests/test-slirp4netns-cidr.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/test-slirp4netns-cidr.sh b/tests/test-slirp4netns-cidr.sh
new file mode 100755
index 0000000..737e4b9
--- /dev/null
+++ b/tests/test-slirp4netns-cidr.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+set -xeuo pipefail
+
+. $(dirname $0)/common.sh
+
+unshare -r -n sleep infinity &
+child=$!
+
+wait_for_network_namespace $child
+
+set +e
+result=$(slirp4netns -c --cidr 24 $child tun11 2>&1)
+set -e
+echo $result | grep "invalid CIDR"
+
+set +e
+result=$(slirp4netns -c --cidr foo $child tun11 2>&1)
+set -e
+echo $result | grep "invalid CIDR"
+
+set +e
+result=$(slirp4netns -c --cidr 10.0.2.0 $child tun11 2>&1)
+set -e
+echo $result | grep "invalid CIDR"
+
+set +e
+result=$(slirp4netns -c --cidr 10.0.2.100/24 $child tun11 2>&1)
+set -e
+echo $result | grep "CIDR needs to be a network address like 10.0.2.0/24, not like 10.0.2.100/24"
+
+set +e
+result=$(slirp4netns -c --cidr 10.0.2.100/26 $child tun11 2>&1)
+set -e
+echo $result | grep "prefix length needs to be 1-25"
+
+slirp4netns -c $child --cidr 10.0.135.128/25 tun11 &
+slirp_pid=$!
+
+wait_for_network_device $child tun11
+
+function cleanup {
+ kill -9 $child $slirp_pid
+}
+trap cleanup EXIT
+
+ip=$(nsenter --preserve-credentials -U -n --target=$child ip -json a show dev tun11 | jq -r .[1].addr_info[0].local)
+[[ $ip = 10.0.135.228 ]]