summaryrefslogtreecommitdiff
path: root/test.sh
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2018-09-05 10:33:52 +0200
committerAndrej Shadura <andrewsh@debian.org>2018-09-05 10:33:52 +0200
commit7b7a89d37947b4cf893d0d3b23fcd4f3f10b96d9 (patch)
tree2c2256be230ceb18116c6dc041c80ecbc0d4def5 /test.sh
Import Upstream version 1.3
Diffstat (limited to 'test.sh')
-rw-r--r--test.sh61
1 files changed, 61 insertions, 0 deletions
diff --git a/test.sh b/test.sh
new file mode 100644
index 0000000..7b58498
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+expect() {
+ addr=$1
+ opts=$(echo $2 |tr , '\n' |sort |tr '\n' , |sed 's/,$//')
+ mtpt=$(eval 'echo $'$#)
+ expected="mount -t 9p -o $opts $addr $mtpt"
+ shift; shift
+ actual=$(9mount -n "$@" 2>&1)
+ aopts=$(echo $actual |sed 's/.*-o \([^ ]*\) .*/\1/' |tr , '\n' |sort |tr '\n' , |sed 's/,$//')
+ actual=$(echo $actual |sed 's/-o [^ ]*/-o '"$aopts"'/')
+ if [ "$expected" != "$actual" ]; then
+ echo ' '9mount "$@"
+ echo $expected' #expected'
+ echo $actual' #actual'
+ exit 1
+ fi
+}
+
+mtpt=/tmp/9mount
+mkdir -p $mtpt
+trap 'rmdir $mtpt' EXIT
+dfltopts="name=$USER,uname=$USER,noextend,nodev"
+
+expect 127.0.0.1 $dfltopts,tcp,trans=tcp,port=888 tcp!localhost!888 $mtpt
+expect /tmp/ns.$USER.:0/foo $dfltopts,unix,trans=unix unix!/tmp/ns.$USER.:0/foo $mtpt
+expect /dev/bar $dfltopts,virtio,trans=virtio virtio!/dev/bar $mtpt
+expect nodev $dfltopts,fd,trans=fd,rfdno=0,wrfdno=1 - $mtpt
+
+dfltopts="tcp,trans=tcp,$dfltopts"
+
+testflag() {
+ opts=$1
+ shift
+ expect 127.0.0.1 $dfltopts,$opts "$@" tcp!localhost $mtpt
+}
+
+testflag "uid=$(id -u),gid=$(id -g),dfltuid=$(id -u),dfltgid=$(id -g)" -i
+testflag "access=any" -s
+expect 127.0.0.1 $(echo $dfltopts |sed 's/,noextend//') -u tcp!localhost $mtpt
+expect 127.0.0.1 $(echo $dfltopts |sed 's/,nodev//') -v tcp!localhost $mtpt
+testflag "access=$(id -u)" -x
+testflag "aname=abcdef" -a abcdef
+testflag "cache=loose" -c loose
+testflag "debug=0x0130" -d fcall,conv,mux
+testflag "msize=16384" -m 16384
+
+shouldfail() {
+ output=$(9mount -n "$@" 2>&1) && {
+ echo ' '9mount "$@"
+ echo $output' #should have failed!'
+ }
+}
+
+shouldfail -a tcp!localhost $mtpt
+shouldfail -a main/active,bwahaha tcp!localhost $mtpt
+shouldfail -d lol tcp!localhost $mtpt
+shouldfail -m z tcp!localhost $mtpt
+shouldfail udp!localhost $mtpt
+shouldfail unix!/tmp/9mount!qux $mtpt
+shouldfail virtio!/dev/chan!bar $mtpt
+shouldfail tcp!localhost!564!foo $mtpt