selftest: more dfree command and smbclient disk usage tests
authorUri Simchoni <uri@samba.org>
Tue, 5 Jan 2016 22:12:36 +0000 (00:12 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 6 Jan 2016 02:58:59 +0000 (03:58 +0100)
Add tests that cover disk usage printing by smbclient, as well
as passing directory info to the "dfree command" script.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11662

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Jan  6 03:58:59 CET 2016 on sn-devel-144

selftest/target/Samba3.pm
source3/script/tests/test_dfree_command.sh
testprogs/blackbox/dfree.sh

index c9e57ad206993df52c1cdc2414a1079bfa232c40..09066203e8621b4ab912b4dfba21fb5e44b08897 100755 (executable)
@@ -590,6 +590,8 @@ sub setup_fileserver($$)
 
        my $dfree_share_dir="$share_dir/dfree";
        push(@dirs, $dfree_share_dir);
+       push(@dirs, "$dfree_share_dir/subdir1");
+       push(@dirs, "$dfree_share_dir/subdir2");
 
        my $valid_users_sharedir="$share_dir/valid_users";
        push(@dirs,$valid_users_sharedir);
index c9c3aa6ca9e48ed69ba0b4c1d68e23ddd4c78b68..a60a52de5c4048f7d659445bca49fb56afcea740 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/sh
 #
-# Blackbox test for 'dfree command'
+# Blackbox test for 'dfree command' and smbclient "l"
+# command disk free printout.
 #
 
 if [ $# -lt 6 ]; then
@@ -26,15 +27,16 @@ test_smbclient_dfree() {
        name="$1"
        share="$2"
        cmd="$3"
+    expected="$4"
        shift
        shift
+    shift
        subunit_start_test "$name"
        output=$($VALGRIND $smbclient //$SERVER/$share -c "$cmd" $@ 2>&1)
        status=$?
        if [ x$status = x0 ]; then
-               echo "$output" | grep "2000 blocks of size 1024. 20 blocks available" >/dev/null
-               status=$?
-               if [ x$status = x0 ]; then
+               received=$(echo "$output" | awk '/blocks of size/ {print $1, $5, $6}')
+               if [ "$expected" = "$received" ]; then
                        subunit_pass_test "$name"
                else
                        echo "$output" | subunit_fail_test "$name"
@@ -46,6 +48,11 @@ test_smbclient_dfree() {
 }
 
 
-test_smbclient_dfree "Test dfree command" dfree "l" -U$USERNAME%$PASSWORD || failed=`expr $failed + 1`
+test_smbclient_dfree "Test dfree command share root SMB3" dfree "l" "2000 1024. 20" -U$USERNAME%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
+test_smbclient_dfree "Test dfree command share root NT1" dfree "l" "2000 1024. 20" -U$USERNAME%$PASSWORD --option=clientmaxprotocol=NT1 || failed=`expr $failed + 1`
+test_smbclient_dfree "Test dfree command subdir1 SMB3" dfree "cd subdir1; l" "8000 1024. 80" -U$USERNAME%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
+test_smbclient_dfree "Test dfree command subdir2 SMB3" dfree "cd subdir2; l" "32000 1024. 320" -U$USERNAME%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
+#SMB1 queries disk usage stat on the share's root, regardless of working directory
+test_smbclient_dfree "Test dfree command subdir1 NT1" dfree "cd subdir1; l" "2000 1024. 20" -U$USERNAME%$PASSWORD --option=clientmaxprotocol=NT1 || failed=`expr $failed + 1`
 
 exit $failed
index 2da3cbd6c5d62939fd079d2793695e5e18f73f7f..64845cd1784823baadfe82f8c75bd1edb3300392 100755 (executable)
@@ -1,2 +1,8 @@
 #!/bin/sh
-echo "1000 10 2048"
+if [ "$1" = "." ] ; then
+    echo "1000 10 2048"
+elif [ "$1" = "subdir1" ] ; then
+    echo "2000 20 4096"
+else
+    echo "4000 40 8192"
+fi