selftest: Add test for the dfree command
authorAndreas Schneider <asn@samba.org>
Tue, 14 Jul 2015 14:30:35 +0000 (16:30 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 17 Jul 2015 20:09:33 +0000 (22:09 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Fri Jul 17 22:09:34 CEST 2015 on sn-devel-104

selftest/target/Samba3.pm
source3/script/tests/test_dfree_command.sh [new file with mode: 0755]
source3/selftest/tests.py
testprogs/blackbox/dfree.sh [new file with mode: 0755]

index 03c78f254b3fd58596c7d6c3a003e9dd652a89f5..9af8faa8f881796862872973454b1e05352b0b6f 100755 (executable)
@@ -563,6 +563,7 @@ sub setup_fileserver($$)
 {
        my ($self, $path) = @_;
        my $prefix_abs = abs_path($path);
+       my $srcdir_abs = abs_path($self->{srcdir});
 
        print "PROVISIONING file server ...\n";
 
@@ -579,6 +580,9 @@ sub setup_fileserver($$)
        my $lower_case_share_dir_30000="$share_dir/lower-case-30000";
        push(@dirs, $lower_case_share_dir_30000);
 
+       my $dfree_share_dir="$share_dir/dfree";
+       push(@dirs, $dfree_share_dir);
+
        my $fileserver_options = "
 [lowercase]
        path = $lower_case_share_dir
@@ -594,6 +598,10 @@ sub setup_fileserver($$)
        default case = lower
        preserve case = no
        short preserve case = no
+[dfree]
+       path = $dfree_share_dir
+       comment = smb username is [%U]
+       dfree command = $srcdir_abs/testprogs/blackbox/dfree.sh
        ";
 
        my $vars = $self->provision($path,
diff --git a/source3/script/tests/test_dfree_command.sh b/source3/script/tests/test_dfree_command.sh
new file mode 100755 (executable)
index 0000000..c9c3aa6
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# Blackbox test for 'dfree command'
+#
+
+if [ $# -lt 6 ]; then
+cat <<EOF
+Usage: test_dfree_command.sh SERVER DOMAIN USERNAME PASSWORD PREFIX SMBCLIENT
+EOF
+exit 1;
+fi
+
+SERVER=$1
+DOMAIN=$2
+USERNAME=$3
+PASSWORD=$4
+PREFIX=$5
+smbclient=$6
+shift 6
+failed=0
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+test_smbclient_dfree() {
+       name="$1"
+       share="$2"
+       cmd="$3"
+       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
+                       subunit_pass_test "$name"
+               else
+                       echo "$output" | subunit_fail_test "$name"
+               fi
+       else
+               echo "$output" | subunit_fail_test "$name"
+       fi
+       return $status
+}
+
+
+test_smbclient_dfree "Test dfree command" dfree "l" -U$USERNAME%$PASSWORD || failed=`expr $failed + 1`
+
+exit $failed
index 1f6174c19128c7e07b7d9db7b010d343bc52fc11..1833b9f371323506de62a1ba6c51c2ab013c775d 100755 (executable)
@@ -176,6 +176,7 @@ for env in ["nt4_dc"]:
 
 for env in ["fileserver"]:
     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
+    plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
 
     #
     # tar command tests
diff --git a/testprogs/blackbox/dfree.sh b/testprogs/blackbox/dfree.sh
new file mode 100755 (executable)
index 0000000..2da3cbd
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo "1000 10 2048"