blob: 071336e8569c8fd7522dcae952944fed22a77f27 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/bin/sh
# A shell script to connect to a windows host over telnet,
# setup for a smbtorture test,
# run the test,
# and remove the previously configured directory and share.
# Copyright Brad Henry <brad@samba.org> 2006
# Released under the GNU GPL v2 or later.
. script/tests/test_functions.sh
# This variable is defined in the per-hosts .fns file.
. $WINTESTCONF
# Setup the windows environment.
# This was the best way I could figure out including library files
# for the moment.
# I was finding that "cat common.exp wintest_setup.exp | expect -f -"
# fails to run, but exits with 0 status something like 1% of the time.
setup_share_test()
{
echo -e "\nSetting up windows environment."
cat $WINTEST_DIR/common.exp > $TMPDIR/setup.exp
cat $WINTEST_DIR/wintest_setup.exp >> $TMPDIR/setup.exp
expect $TMPDIR/setup.exp
err_rtn=$?
rm -f $TMPDIR/setup.exp
}
# Clean up the windows environment after the test has run or failed.
remove_share_test()
{
echo -e "\nCleaning up windows environment."
cat $WINTEST_DIR/common.exp > $TMPDIR/remove.exp
cat $WINTEST_DIR/wintest_remove.exp >> $TMPDIR/remove.exp
expect $TMPDIR/remove.exp
err_rtn=$?
rm -f $TMPDIR/remove.exp
}
restore_snapshot()
{
echo -e $1
perl -I$WINTEST_DIR $WINTEST_DIR/vm_load_snapshot.pl
echo "Snapshot restored."
}
# Index variable to count the total number of tests which fail.
all_errs=0
export SMBTORTURE_REMOTE_HOST=`perl -I$WINTEST_DIR $WINTEST_DIR/vm_get_ip.pl`
if [ -z $SMBTORTURE_REMOTE_HOST ]; then
# Restore snapshot to ensure VM is in a known state, then exit.
restore_snapshot "Test failed to get the IP address of the windows host."
exit 1
fi
share_tests="BASE-UNLINK BASE-ATTR BASE-DELETE BASE-TCON BASE-OPEN BASE-CHKPATH"
share_tests="$share_tests RAW-QFILEINFO RAW-SFILEINFO RAW-MKDIR RAW-SEEK"
share_tests="$share_tests RAW-OPEN RAW-WRITE RAW-UNLINK RAW-READ RAW-CLOSE"
share_tests="$share_tests RAW-IOCTL RAW-RENAME RAW-EAS RAW-STREAMS"
for t in $share_tests; do
test_name="$t / WINDOWS SERVER"
echo -e "\n$test_name SETUP PHASE"
setup_share_test
if [ $err_rtn -ne 0 ]; then
# If test setup fails, load VM snapshot and skip test.
restore_snapshot "\n$test_name setup failed, skipping test."
else
echo -e "\n$test_name setup completed successfully."
old_errs=$all_errs
testit "$test_name" $SMBTORTURE_BIN_PATH \
-U $SMBTORTURE_USERNAME%$SMBTORTURE_PASSWORD \
-d 10 -W $SMBTORTURE_WORKGROUP \
//$SMBTORTURE_REMOTE_HOST/$SMBTORTURE_REMOTE_SHARE_NAME \
$t || all_errs=`expr $all_errs + 1`
if [ $old_errs -lt $all_errs ]; then
# If test fails, load VM snapshot and skip cleanup.
restore_snapshot "\n$test_name failed."
else
echo -e "\n$test_name CLEANUP PHASE"
remove_share_test
if [ $err_rtn -ne 0 ]; then
# If cleanup fails, restore VM snapshot.
restore_snapshot "\n$test_name removal failed."
else
echo -e "\n$test_name removal completed successfully."
fi
fi
fi
done
rpc_tests="RPC-WINREG RPC-ASYNCBIND RPC-ATSVC RPC-DSSETUP RPC-EPMAPPER"
rpc_tests="$rpc_tests RPC-INITSHUTDOWN RPC-LSA-GETUSER RPC-MULTIBIND RPC-ROT"
rpc_tests="$rpc_tests RPC-SECRETS RPC-SRVSVC RPC-SVCCTL RPC-WKSSVC"
for t in $rpc_tests; do
test_name="$t / WINDOWS SERVER"
old_errs=$all_errs
testit "$test_name" $SMBTORTURE_BIN_PATH \
-U $SMBTORTURE_USERNAME%$SMBTORTURE_PASSWORD \
-W $SMBTORTURE_WORKGROUP \
ncacn_np:$SMBTORTURE_REMOTE_HOST \
$t || all_errs=`expr $all_errs + 1`
if [ $old_errs -lt $all_errs ]; then
restore_snapshot "\n$test_name failed."
fi
done
test_name="WINDOWS CLIENT / SAMBA SERVER SHARE"
old_errs=$all_errs
cat $WINTEST_DIR/common.exp > $TMPDIR/client_test.exp
cat $WINTEST_DIR/wintest_client.exp >> $TMPDIR/client_test.exp
testit "$test_name" \
expect $TMPDIR/client_test.exp || all_errs=`expr $all_errs + 1`
if [ $old_errs -lt $all_errs ]; then
# Restore snapshot to ensure VM is in a known state.
restore_snapshot "\n$test_name failed."
echo "Snapshot restored."
fi
rm -f $TMPDIR/client_test.exp
testok $0 $all_errs
|