s3:tests: Add blackbox test for 'net usershare'
authorAndreas Schneider <asn@samba.org>
Thu, 22 Jun 2017 12:17:07 +0000 (14:17 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 27 Jun 2017 14:57:42 +0000 (16:57 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
selftest/target/Samba3.pm
source3/script/tests/test_net_usershare.sh [new file with mode: 0755]
source3/selftest/tests.py

index ec8625d84d295b86972bcb2f668b9b402b5e3940..f67818adc1a2210829c7189deb86fc35bbc68801 100755 (executable)
@@ -10,6 +10,7 @@ use Cwd qw(abs_path);
 use FindBin qw($RealBin);
 use POSIX;
 use target::Samba;
+use File::Path 'remove_tree';
 
 sub have_ads($) {
         my ($self) = @_;
@@ -740,6 +741,12 @@ sub setup_fileserver($$)
 
        mkdir($prefix_abs, 0777);
 
+       my $usershare_dir="$prefix_abs/lib/usershare";
+
+       mkdir("$prefix_abs/lib", 0755);
+       remove_tree($usershare_dir);
+       mkdir($usershare_dir, 01770);
+
        my $share_dir="$prefix_abs/share";
 
        # Create share directory structure
@@ -770,7 +777,15 @@ sub setup_fileserver($$)
        my $tarmode_sharedir="$share_dir/tarmode";
        push(@dirs,$tarmode_sharedir);
 
+       my $usershare_sharedir="$share_dir/usershares";
+       push(@dirs,$usershare_sharedir);
+
        my $fileserver_options = "
+       usershare path = $usershare_dir
+       usershare max shares = 10
+       usershare allow guests = yes
+       usershare prefix allow list = $usershare_sharedir
+
 [lowercase]
        path = $lower_case_share_dir
        comment = smb username is [%U]
diff --git a/source3/script/tests/test_net_usershare.sh b/source3/script/tests/test_net_usershare.sh
new file mode 100755 (executable)
index 0000000..bc19fe8
--- /dev/null
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+if [ $# -lt 5 ]; then
+cat <<EOF
+Usage: test_net_usershare.sh SERVER SERVER_IP DOMAIN USERNAME PASSWORD SMBCLIENT <smbclient arguments>
+EOF
+exit 1;
+fi
+
+SERVER="$1"
+SERVER_IP="$2"
+USERNAME="$3"
+PASSWORD="$4"
+smbclient="$5"
+shift 5
+ADDARGS="$@"
+
+failed=0
+
+samba_bindir="$BINDIR"
+samba_net="$samba_bindir/net"
+samba_smbcontrol="$samba_bindir/smbcontrol"
+
+samba_share_dir="$LOCAL_PATH"
+samba_usershare_dir="$samba_share_dir/usershares"
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+
+test_smbclient() {
+       name="$1"
+       share="$2"
+       cmd="$3"
+       shift 3
+       echo "test: $name"
+       $VALGRIND $smbclient $CONFIGURATION //$SERVER/$share -c "$cmd" "$@"
+       status=$?
+       if [ x$status = x0 ]; then
+               echo "success: $name"
+       else
+               echo "failure: $name"
+       fi
+       return $status
+}
+
+test_net_usershare() {
+       name="$1"
+       cmd="$2"
+       shift
+       shift
+       echo "test: $name"
+       $VALGRIND $samba_net usershare "$cmd" "$@"
+       status=$?
+       if [ x$status = x0 ]; then
+               echo "success: $name"
+       else
+               echo "failure: $name"
+       fi
+       return $status
+}
+
+###########################################################
+# Check if we can add and delete a usershare
+###########################################################
+
+samba_usershare_name="test_usershare_1"
+samba_usershare_path="$samba_usershare_dir/$samba_usershare_name"
+
+testit "create usershare dir for $samba_usershare_name" mkdir --mode=0755 --verbose $samba_usershare_path || failed=`expr $failed + 1`
+
+test_net_usershare "net usershare add $samba_usershare_name" "add" "$samba_usershare_name" "$samba_usershare_path" "$samba_usershare_name"
+
+test_net_usershare "net usershare info $samba_usershare_name" "info" "$samba_usershare_name"
+
+test_smbclient "smbclient to $samba_usershare_name" "$samba_usershare_name" 'ls' -U$USERNAME%$PASSWORD || failed=`expr $failed + 1`
+
+# CLEANUP
+test_net_usershare "net usershare delete $samba_usershare_name" "delete" "$samba_usershare_name"
+testit "remove usershare dir for $samba_usershare_name" rm -rf $samba_usershare_path || failed=`expr $failed + 1`
+
+exit $failed
index f23428cb7871f783a06f2ff9c73b03d43707ccc5..7b514084aee4a037438fc55a2f0ca8f6d6aee679 100755 (executable)
@@ -258,6 +258,8 @@ for env in ["fileserver"]:
                        '-d', '$PREFIX', '-b', smbclient3,
                        '--subunit', '--', configuration])
 
+plantestsuite("samba3.blackbox.net_usershare", "fileserver:local", [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
+
 #TODO encrypted against member, with member creds, and with DC creds
 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),