diff options
Diffstat (limited to 'tests/12_socket_remove.sh')
-rwxr-xr-x | tests/12_socket_remove.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/12_socket_remove.sh b/tests/12_socket_remove.sh new file mode 100755 index 0000000..db44380 --- /dev/null +++ b/tests/12_socket_remove.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +TEST_ID="12" +TEST_NAME="Socket device removal" + +CREATE=`pwd`/$1 +DEPLOY=`pwd`/$2 +TEST_TOOLS=$3 + +. ./test_lib.sh + +############# Test specific code ############ +# sockets can only be moved, linked or removed by the file system +# creation is only performed by the program that acts as the server +# tbdiff won't be doing that so the only sensible operation is removal +SOCKBIND=`mktemp` +setup () { + # sockbind creates a socket then writes any data written to it to stdout + # have to fork it because it will never stop, have to wait for it to + # make the socket + gcc sockbind.c -o $SOCKBIND 2>/dev/null >/dev/null + $SOCKBIND "$ORIGIN/toremove" & + SOCKBINDPID=$! + until test -S "$ORIGIN/toremove"; do :; done + kill $SOCKBINDPID && wait $SOCKBINDPID 2>/dev/null + rm -f $SOCKBIND +} + +create_test_return () { + test $1 = 0 +} + +check_results () { + test ! -S "$ORIGIN/toremove" +} + +############################################# +main $@ |