diff options
Diffstat (limited to 'testprogs')
-rwxr-xr-x | testprogs/blackbox/test_smbclient.sh | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/testprogs/blackbox/test_smbclient.sh b/testprogs/blackbox/test_smbclient.sh new file mode 100755 index 0000000000..1d28fa2f71 --- /dev/null +++ b/testprogs/blackbox/test_smbclient.sh @@ -0,0 +1,102 @@ +#!/bin/sh + +if [ $# -lt 5 ]; then +cat <<EOF +Usage: test_smbclient.sh SERVER USERNAME PASSWORD DOMAIN PREFIX +EOF +exit 1; +fi + +SERVER=$1 +USERNAME=$2 +PASSWORD=$3 +DOMAIN=$4 +PREFIX=$5 +shift 5 +failed=0 + +testit() { + name="$1" + shift + cmdline="$*" + echo "test: $name" + $cmdline + status=$? + if [ x$status = x0 ]; then + echo "success: $name" + else + echo "failure: $name" + fi + return $status +} + +runcmd() { + name="$1" + shift + testit "$name" $VALGRIND bin/smbclient $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ + return $? +} + +# Generate random file +cat >tmpfile<<EOF +foo +bar +bloe +blah +EOF + +# put that file +echo mput tmpfile | runcmd "MPutting file" || failed=`expr $failed + 1` +# check file info +echo altname tmpfile | runcmd "Getting alternative name" || failed=`expr $failed + 1` +# run allinfo on that file +echo allinfo tmpfile | runcmd "Checking info on file" || failed=`expr $failed + 1` +# get that file +mv tmpfile tmpfile-old +echo mget tmpfile | runcmd "MGetting file" || failed=`expr $failed + 1` +# remove that file +echo rm tmpfile | runcmd "Removing file" || failed=`expr $failed + 1` +# compare locally +testit "Comparing files" diff tmpfile-old tmpfile || failed=`expr $failed + 1` +# create directory +echo mkdir bla | runcmd "Creating directory" || failed=`expr $failed + 1` +# cd to directory +echo cd bla | runcmd "Changing directory" || failed=`expr $failed + 1` +# cd to top level directory +echo cd .. | runcmd "Going back" || failed=`expr $failed + 1` +# remove directory +echo rmdir bla | runcmd "Removing directory" || failed=`expr $failed + 1` +# enable recurse, create nested directory +echo "recurse; echo mkdir bla/bloe; exit" | runcmd "Creating nested directory" || failed=`expr $failed + 1` +# remove parent directory +echo rmdir bla/bloe | runcmd "Removing directory" || failed=`expr $failed + 1` +# remove child directory +echo rmdir bla | runcmd "Removing directory" || failed=`expr $failed + 1` +# run fsinfo +echo fsinfo objectid | runcmd "Getting file system info" || failed=`expr $failed + 1` + +# put that file +echo put tmpfile | runcmd "Putting file" || failed=`expr $failed + 1` +# get that file +mv tmpfile tmpfile-old +echo get tmpfile | runcmd "Getting file" || failed=`expr $failed + 1` +# remove that file +echo rm tmpfile | runcmd "Removing file" || failed=`expr $failed + 1` +# compare locally +testit "Comparing files" diff tmpfile-old tmpfile || failed=`expr $failed + 1` +# put that file +echo put tmpfile tmpfilex | runcmd "Putting file with different name" || failed=`expr $failed + 1` +# get that file +echo get tmpfilex | runcmd "Getting file again" || failed=`expr $failed + 1` +# compare locally +testit "Comparing files" diff tmpfilex tmpfile || failed=`expr $failed + 1` +# remove that file +echo rm tmpfilex | runcmd "Removing file" || failed=`expr $failed + 1` + +# do some simple operations using old protocol versions +echo ls | runcmd "List directory with LANMAN1" -m LANMAN1 || failed=`expr $failed + 1` +echo ls | runcmd "List directory with LANMAN2" -m LANMAN2 || failed=`expr $failed + 1` + +rm -f tmpfile tmpfile-old tmpfilex + +exit $failed |