From: Andrew Bartlett Date: Fri, 18 Feb 2011 07:52:00 +0000 (+1100) Subject: Add tests for various s3 auth modes X-Git-Tag: tevent-0.9.11~389 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=1650da8a9964ba2ca3d389bdb39f65f7fa579ffc;p=samba.git Add tests for various s3 auth modes --- diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index a0a13f9c726..06f070d65d0 100644 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -98,6 +98,8 @@ sub setup_env($$$) if ($envname eq "dc") { return $self->setup_dc("$path/dc"); + } elsif ($envname eq "secshare") { + return $self->setup_secshare("$path/secshare"); } elsif ($envname eq "member") { if (not defined($self->{vars}->{dc})) { $self->setup_dc("$path/dc"); @@ -178,6 +180,34 @@ sub setup_member($$$) return $ret; } +sub setup_secshare($$) +{ + my ($self, $path) = @_; + + print "PROVISIONING server with security=share..."; + + my $secshare_options = " + security = share + lanman auth = yes +"; + + my $vars = $self->provision($path, + "LOCALSHARE4", + 4, + "local4pass", + $secshare_options); + + $self->check_or_start($vars, + ($ENV{SMBD_MAXTIME} or 2700), + "yes", "no", "yes"); + + $self->wait_for_start($vars); + + $self->{vars}->{secshare} = $vars; + + return $vars; +} + sub stop_sig_term($$) { my ($self, $pid) = @_; kill("USR1", $pid) or kill("ALRM", $pid) or warn("Unable to kill $pid: $!"); @@ -572,6 +602,21 @@ sub provision($$$$$$) print CONF " [tmp] path = $shrdir +[tmpguest] + path = $shrdir + guest ok = yes +[guestonly] + path = $shrdir + guest only = yes + guest ok = yes +[forceuser] + path = $shrdir + force user = $unix_name + guest ok = yes +[forcegroup] + path = $shrdir + force group = nogroup + guest ok = yes [ro-tmp] path = $ro_shrdir guest ok = yes diff --git a/source3/script/tests/test_posix_s3.sh b/source3/script/tests/test_posix_s3.sh index 904f9f1f093..69c71fd2d45 100755 --- a/source3/script/tests/test_posix_s3.sh +++ b/source3/script/tests/test_posix_s3.sh @@ -60,10 +60,7 @@ winbind="winbind.struct winbind.wbclient" rap="rap.basic rap.rpc rap.printing rap.sam" -# note: to enable the unix-whoami test, we need to change the default share -# config to allow guest access. i'm not sure whether this would break other -# tests, so leaving it alone for now -- jpeach -unix="unix.info2" +unix="unix.info2 unix.whoami" tests="$base $raw $smb2 $rpc $unix $local $winbind $rap" @@ -83,6 +80,9 @@ for t in $tests; do name="$t" if [ "$t" = "base.delaywrite" ]; then testit "$name" $VALGRIND $SMBTORTURE4 $TORTURE4_OPTIONS --maximum-runtime=900 $ADDARGS $unc -U"$username"%"$password" $t || failed=`expr $failed + 1` + elif [ "$t" = "unix.whoami" ]; then + #"Testing with guest-enabled share" + testit "$name" $VALGRIND $SMBTORTURE4 $TORTURE4_OPTIONS $ADDARGS "$unc"guest -U"$username"%"$password" $t || failed=`expr $failed + 1` else testit "$name" $VALGRIND $SMBTORTURE4 $TORTURE4_OPTIONS $ADDARGS $unc -U"$username"%"$password" $t || failed=`expr $failed + 1` fi @@ -90,6 +90,10 @@ for t in $tests; do echo "Testing with case sensitive" testit "$name" $VALGRIND $SMBTORTURE4 $TORTURE4_OPTIONS $ADDARGS "$unc"case -U"$username"%"$password" $t || failed=`expr $failed + 1` fi + if [ "$t" = "unix.whoami" ]; then + echo "Testing with guest-enabled share" + testit "$name" $VALGRIND $SMBTORTURE4 $TORTURE4_OPTIONS $ADDARGS "$unc"guest -U"$username"%"$password" $t || failed=`expr $failed + 1` + fi done testok $0 $failed diff --git a/source3/script/tests/test_smbclient_auth.sh b/source3/script/tests/test_smbclient_auth.sh new file mode 100755 index 00000000000..dab914a61ca --- /dev/null +++ b/source3/script/tests/test_smbclient_auth.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +# this runs the file serving tests that are expected to pass with samba3 against shares with various options + +if [ $# -lt 5 ]; then +cat <