• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/samba-3.5.8/source3/script/tests/
1#!/bin/sh
2
3# this runs the file serving tests that are expected to pass with samba3
4
5if [ $# -lt 4 ]; then
6cat <<EOF
7Usage: test_smbclient_s3.sh SERVER SERVER_IP USERNAME PASSWORD
8EOF
9exit 1;
10fi
11
12SERVER="$1"
13SERVER_IP="$2"
14USERNAME="$3"
15PASSWORD="$4"
16SMBCLIENT="$VALGRIND ${SMBCLIENT:-$BINDIR/smbclient} $CONFIGURATION"
17shift 4
18ADDARGS="$*"
19
20test x"$TEST_FUNCTIONS_SH" != x"INCLUDED" && {
21incdir=`dirname $0`
22. $incdir/test_functions.sh
23}
24
25failed=0
26
27# Test that a noninteractive smbclient does not prompt
28test_noninteractive_no_prompt()
29{
30    prompt="smb"
31
32    cmd='echo du | $SMBCLIENT $CONFIGURATION "$@" -U$USERNAME%$PASSWORD //$SERVER/tmp -I $SERVER_IP $ADDARGS 2>&1'
33    eval echo "$cmd"
34    out=`eval $cmd`
35
36    if [ $? != 0 ] ; then
37	echo "$out"
38	echo "command failed"
39	false
40	return
41    fi
42
43    echo "$out" | grep $prompt >/dev/null 2>&1
44
45    if [ $? = 0 ] ; then
46	# got a prompt .. fail
47	echo matched interactive prompt in non-interactive mode
48	false
49    else
50	true
51    fi
52}
53
54# Test that an interactive smbclient prompts to stdout
55test_interactive_prompt_stdout()
56{
57    prompt="smb"
58    tmpfile=/tmp/smbclient.in.$$
59
60    cat > $tmpfile <<EOF
61du
62quit
63EOF
64
65    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT $CONFIGURATION "$@" -U$USERNAME%$PASSWORD //$SERVER/tmp -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
66    eval echo "$cmd"
67    out=`eval $cmd`
68    ret=$?
69    rm -f $tmpfile
70
71    if [ $ret != 0 ] ; then
72	echo "$out"
73	echo "command failed"
74	false
75	return
76    fi
77
78    echo "$out" | grep $prompt >/dev/null 2>&1
79
80    if [ $? = 0 ] ; then
81	# got a prompt .. succeed
82	true
83    else
84	echo failed to match interactive prompt on stdout
85	false
86    fi
87}
88
89# Test creating a bad symlink and deleting it.
90test_bad_symlink()
91{
92    prompt="posix_unlink deleted file /newname"
93    tmpfile=/tmp/smbclient.in.$$
94
95    cat > $tmpfile <<EOF
96posix
97posix_unlink newname
98symlink badname newname
99posix_unlink newname
100quit
101EOF
102
103    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT $CONFIGURATION "$@" -U$USERNAME%$PASSWORD //$SERVER/tmp -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
104    eval echo "$cmd"
105    out=`eval $cmd`
106    ret=$?
107    rm -f $tmpfile
108
109    if [ $ret != 0 ] ; then
110	echo "$out"
111	echo "failed create then delete bad symlink with error $ret"
112	false
113	return
114    fi
115
116    echo "$out" | grep "$prompt" >/dev/null 2>&1
117
118    ret=$?
119    if [ $ret = 0 ] ; then
120	# got the correct prompt .. succeed
121	true
122    else
123	echo "$out"
124	echo "failed create then delete bad symlink - grep failed with $ret"
125	false
126    fi
127}
128
129
130testit "smbclient -L $SERVER_IP" $SMBCLIENT $CONFIGURATION -L $SERVER_IP -N -p 139 || failed=`expr $failed + 1`
131testit "smbclient -L $SERVER -I $SERVER_IP" $SMBCLIENT $CONFIGURATION -L $SERVER -I $SERVER_IP -N -p 139 || failed=`expr $failed + 1`
132
133testit "noninteractive smbclient does not prompt" \
134    test_noninteractive_no_prompt || \
135    failed=`expr $failed + 1`
136
137testit "noninteractive smbclient -l does not prompt" \
138   test_noninteractive_no_prompt -l /tmp || \
139    failed=`expr $failed + 1`
140
141testit "interactive smbclient prompts on stdout" \
142   test_interactive_prompt_stdout || \
143    failed=`expr $failed + 1`
144
145testit "interactive smbclient -l prompts on stdout" \
146   test_interactive_prompt_stdout -l /tmp || \
147    failed=`expr $failed + 1`
148
149testit "creating a bad symlink and deleting it" \
150   test_bad_symlink || \
151   failed=`expr $failed + 1`
152
153testok $0 $failed
154