2 # Blackbox tests for smbclient
3 # Copyright (C) 2006-2007 Jelmer Vernooij <jelmer@samba.org>
4 # Copyright (C) 2006-2007 Andrew Bartlett <abartlet@samba.org>
8 Usage: test_smbclient.sh SERVER USERNAME PASSWORD DOMAIN PREFIX SMBCLIENT
22 .
`dirname $0`/..
/..
/..
/testprogs
/blackbox
/subunit.sh
30 $VALGRIND $smbclient $CONFIGURATION //$SERVER/tmp
-c "$cmd" -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@
32 if [ x
$status = x0
]; then
40 testit
"share and server list" $VALGRIND $smbclient -L $SERVER $CONFIGURATION -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ || failed
=`expr $failed + 1`
42 testit
"share and server list anonymously" $VALGRIND $smbclient -N -L $SERVER $CONFIGURATION $@ || failed
=`expr $failed + 1`
44 # Use the smbclient binary as our test file
45 cat $smbclient >tmpfile
48 runcmd
"MPutting file" 'mput tmpfile' || failed
=`expr $failed + 1`
50 runcmd
"Getting alternative name" 'altname tmpfile'|| failed
=`expr $failed + 1`
51 # run allinfo on that file
52 runcmd
"Checking info on file" 'allinfo tmpfile'|| failed
=`expr $failed + 1`
54 mv tmpfile tmpfile-old
55 runcmd
"MGetting file" 'mget tmpfile' || failed
=`expr $failed + 1`
57 runcmd
"Removing file" 'rm tmpfile' || failed
=`expr $failed + 1`
59 testit
"Comparing files" diff tmpfile-old tmpfile || failed
=`expr $failed + 1`
62 # cd to top level directory
64 runcmd
"Creating directory, Changing directory, Going back" 'mkdir bla; cd bla; cd ..; rmdir bla' || failed
=`expr $failed + 1`
65 # enable recurse, create nested directory
66 runcmd
"Creating nested directory" 'mkdir bla/bloe' || failed
=`expr $failed + 1`
67 # remove child directory
68 runcmd
"Removing directory" 'rmdir bla/bloe' || failed
=`expr $failed + 1`
69 # remove parent directory
70 runcmd
"Removing directory" 'rmdir bla'|| failed
=`expr $failed + 1`
71 # enable recurse, create nested directory
72 runcmd
"Creating nested directory" 'mkdir bla' || failed
=`expr $failed + 1`
74 runcmd
"rename of nested directory" 'rename bla bla2' || failed
=`expr $failed + 1`
76 runcmd
"deltree of nested directory" 'deltree bla2' || failed
=`expr $failed + 1`
78 runcmd
"Getting file system info" 'fsinfo allocation'|| failed
=`expr $failed + 1`
79 runcmd
"Getting file system info" 'fsinfo volume'|| failed
=`expr $failed + 1`
80 runcmd
"Getting file system info" 'fsinfo volumeinfo'|| failed
=`expr $failed + 1`
81 runcmd
"Getting file system info" 'fsinfo sizeinfo'|| failed
=`expr $failed + 1`
82 runcmd
"Getting file system info" 'fsinfo deviceinfo'|| failed
=`expr $failed + 1`
83 runcmd
"Getting file system info" 'fsinfo attributeinfo'|| failed
=`expr $failed + 1`
84 runcmd
"Getting file system info" 'fsinfo volume-information'|| failed
=`expr $failed + 1`
85 runcmd
"Getting file system info" 'fsinfo size-information'|| failed
=`expr $failed + 1`
86 runcmd
"Getting file system info" 'fsinfo device-information'|| failed
=`expr $failed + 1`
87 runcmd
"Getting file system info" 'fsinfo attribute-information'|| failed
=`expr $failed + 1`
88 runcmd
"Getting file system info" 'fsinfo quota-information'|| failed
=`expr $failed + 1`
89 runcmd
"Getting file system info" 'fsinfo fullsize-information'|| failed
=`expr $failed + 1`
90 runcmd
"Getting file system info" 'fsinfo objectid'|| failed
=`expr $failed + 1`
93 runcmd
"Putting file" 'put tmpfile'|| failed
=`expr $failed + 1`
95 mv tmpfile tmpfile-old
96 runcmd
"Getting file" 'get tmpfile'|| failed
=`expr $failed + 1`
97 runcmd
"Getting file EA info" 'eainfo tmpfile'|| failed
=`expr $failed + 1`
99 runcmd
"Removing file" 'rm tmpfile' || failed
=`expr $failed + 1`
101 testit
"Comparing files" diff tmpfile-old tmpfile || failed
=`expr $failed + 1`
103 runcmd
"Putting file with different name" 'put tmpfile tmpfilex' || failed
=`expr $failed + 1`
105 runcmd
"Getting file again" 'get tmpfilex' || failed
=`expr $failed + 1`
107 testit
"Comparing files" diff tmpfilex tmpfile || failed
=`expr $failed + 1`
109 runcmd
"Removing file" 'rm tmpfilex'|| failed
=`expr $failed + 1`
111 runcmd
"Lookup name" "lookup $DOMAIN\\$USERNAME" || failed
=`expr $failed + 1`
113 #Fails unless there are privileges
114 #runcmd "Lookup privs of name" "privileges $DOMAIN\\$USERNAME" || failed=`expr $failed + 1`
116 # do some simple operations using old protocol versions
117 runcmd
"List directory with LANMAN1" 'ls' -m LANMAN1
--option=clientntlmv2auth
=no || failed
=`expr $failed + 1`
118 runcmd
"List directory with LANMAN2" 'ls' -m LANMAN2
--option=clientntlmv2auth
=no || failed
=`expr $failed + 1`
120 runcmd
"Print current working directory" 'pwd'|| failed
=`expr $failed + 1`
123 echo "password=$PASSWORD"
124 echo "username=$USERNAME"
125 echo "domain=$DOMAIN"
128 testit
"Test login with --authentication-file" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp
--authentication-file=tmpauthfile || failed
=`expr $failed + 1`
130 PASSWD_FILE
="tmppassfile"
131 echo "$PASSWORD" > $PASSWD_FILE
133 testit
"Test login with PASSWD_FILE" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp
-W "$DOMAIN" -U"$USERNAME" || failed
=`expr $failed + 1`
140 testit
"Test login with PASSWD" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp
-W "$DOMAIN" -U"$USERNAME" || failed
=`expr $failed + 1`
145 testit
"Test login with USER and PASSWD" $VALGRIND $smbclient -k no
-c 'ls' $CONFIGURATION //$SERVER/tmp
-W "$DOMAIN" || failed
=`expr $failed + 1`
152 rm -f tmpfile tmpfile-old tmpfilex tmpauthfile tmppassfile