a8cc30a8a65e314ce068e1e163a2e9e0f2a6af6c
[ira/wip.git] / source / script / tests / test_cifsdd.sh
1 #!/bin/sh
2
3 # Basic script to make sure that cifsdd can do both local and remote I/O.
4
5 if [ $# -lt 4 ]; then
6 cat <<EOF
7 Usage: test_cifsdd.sh SERVER USERNAME PASSWORD DOMAIN
8 EOF
9 exit 1;
10 fi
11
12 SERVER=$1
13 USERNAME=$2
14 PASSWORD=$3
15 DOMAIN=$4
16
17 DD=bin/cifsdd
18
19 SHARE=tmp
20 DEBUGLEVEL=1
21
22 failed=0
23
24 failtest() {
25         failed=`expr $failed + 1`
26 }
27
28 runcopy() {
29         message="$1"
30         shift
31         
32         testit "$message" $VALGRIND $DD $CONFIGURATION --debuglevel=$DEBUGLEVEL -W "$DOMAIN" -U "$USERNAME"%"$PASSWORD" \
33             "$@"
34 }
35
36 compare() {
37     cmp "$1" "$2"
38 }
39
40 incdir=`dirname $0`
41 . $incdir/test_functions.sh
42
43 sourcepath=tempfile.src.$$
44 destpath=tempfile.dst.$$
45
46 # Create a source file with arbitrary contents
47 dd if=$DD of=$sourcepath bs=1024 count=50 > /dev/null
48
49 ls -l $sourcepath
50
51 for bs in 512 4k 48k ; do
52
53 echo "Testing $bs block size ..."
54
55 # Check whether we can do local IO
56 runcopy "Testing local -> local copy" if=$sourcepath of=$destpath bs=$bs || failtest
57 compare $sourcepath $destpath || failtest
58
59 # Check whether we can do a round trip
60 runcopy "Testing local -> remote copy" \
61             if=$sourcepath of=//$SERVER/$SHARE/$sourcepath bs=$bs || failtest
62 runcopy "Testing remote -> local copy" \
63             if=//$SERVER/$SHARE/$sourcepath of=$destpath bs=$bs || failtest
64 compare $sourcepath $destpath || failtest
65
66 # Check that copying within the remote server works
67 runcopy "Testing local -> remote copy" \
68             if=//$SERVER/$SHARE/$sourcepath of=//$SERVER/$SHARE/$sourcepath bs=$bs || failtest
69 runcopy "Testing remote -> remote copy" \
70             if=//$SERVER/$SHARE/$sourcepath of=//$SERVER/$SHARE/$destpath bs=$bs || failtest
71 runcopy "Testing remote -> local copy" \
72             if=//$SERVER/$SHARE/$destpath of=$destpath bs=$bs || failtest
73 compare $sourcepath $destpath || failtest
74
75 done
76
77 rm -f $sourcepath $destpath
78
79 testok $0 $failed