mirror of
https://github.com/samba-team/samba.git
synced 2025-01-03 01:18:10 +03:00
s3: tests: Add regression test for smbd crash on share force group change with existing connection.
Mark as known fail for now. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13690 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
parent
e903d37ea4
commit
7b21b4c1f5
@ -363,3 +363,5 @@
|
||||
^samba.tests.ntlmdisabled.python\(ktest\).python2.ntlmdisabled.NtlmDisabledTests.test_samr_change_password\(ktest\)
|
||||
^samba.tests.ntlmdisabled.python\(ad_dc_no_ntlm\).python3.ntlmdisabled.NtlmDisabledTests.test_ntlm_connection\(ad_dc_no_ntlm\)
|
||||
^samba.tests.ntlmdisabled.python\(ad_dc_no_ntlm\).python2.ntlmdisabled.NtlmDisabledTests.test_ntlm_connection\(ad_dc_no_ntlm\)
|
||||
# BUG:https://bugzilla.samba.org/show_bug.cgi?id=13690
|
||||
^samba3.blackbox.force_group_change.*
|
||||
|
@ -207,3 +207,4 @@ smbcquotas = binpath('smbcquotas')
|
||||
smbget = binpath('smbget')
|
||||
rpcclient = binpath('rpcclient')
|
||||
smbcacls = binpath('smbcacls')
|
||||
smbcontrol = binpath('smbcontrol')
|
||||
|
@ -984,6 +984,11 @@ sub setup_fileserver
|
||||
comment = inherit only unix owner
|
||||
inherit owner = unix only
|
||||
acl_xattr:ignore system acls = yes
|
||||
# BUG: https://bugzilla.samba.org/show_bug.cgi?id=13690
|
||||
[force_group_test]
|
||||
path = $share_dir
|
||||
comment = force group test
|
||||
# force group = everyone
|
||||
[homes]
|
||||
comment = Home directories
|
||||
browseable = No
|
||||
|
73
source3/script/tests/test_force_group_change.sh
Executable file
73
source3/script/tests/test_force_group_change.sh
Executable file
@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (c) Jeremy Allison <jra@samba.org>
|
||||
# License: GPLv3
|
||||
# Regression test for BUG:https://bugzilla.samba.org/show_bug.cgi?id=13690
|
||||
|
||||
if [ $# -lt 6 ]; then
|
||||
echo "Usage: test_force_group_change.sh SERVER USERNAME PASSWORD LOCAL_PATH SMBCLIENT SMBCONTROL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SERVER="${1}"
|
||||
USERNAME="${2}"
|
||||
PASSWORD="${3}"
|
||||
LOCAL_PATH="${4}"
|
||||
SMBCLIENT="${5}"
|
||||
SMBCONTROL="${6}"
|
||||
shift 6
|
||||
|
||||
incdir=`dirname $0`/../../../testprogs/blackbox
|
||||
. $incdir/subunit.sh
|
||||
|
||||
failed=0
|
||||
|
||||
test_force_group_change()
|
||||
{
|
||||
#
|
||||
# A SMB_CONF variable passed in here is the client smb.conf.
|
||||
# We need to convert to the server.conf file from
|
||||
# the LOCAL_PATH variable.
|
||||
#
|
||||
SERVER_CONFIG=`dirname $LOCAL_PATH`/lib/server.conf
|
||||
SERVER_CONFIG_SAVE=${SERVER_CONFIG}.bak
|
||||
SERVER_CONFIG_NEW=${SERVER_CONFIG}.new
|
||||
cp $SERVER_CONFIG $SERVER_CONFIG_SAVE
|
||||
|
||||
sed -e 's/#\tforce group = everyone/\tforce group = everyone/' <${SERVER_CONFIG} >${SERVER_CONFIG_NEW}
|
||||
|
||||
tmpfile=$PREFIX/smbclient_force_group_change_commands
|
||||
cat > $tmpfile <<EOF
|
||||
ls
|
||||
!cp ${SERVER_CONFIG_NEW} ${SERVER_CONFIG}
|
||||
!${SMBCONTROL} --configfile=${SERVER_CONFIG} all reload-config
|
||||
ls
|
||||
!cp ${SERVER_CONFIG_SAVE} ${SERVER_CONFIG}
|
||||
!${SMBCONTROL} --configfile=${SERVER_CONFIG} all reload-config
|
||||
quit
|
||||
EOF
|
||||
|
||||
cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/force_group_test $CONFIGURATION < $tmpfile 2>&1'
|
||||
eval echo "$cmd"
|
||||
out=$(eval $cmd)
|
||||
ret=$?
|
||||
rm -f $tmpfile
|
||||
rm -f $SERVER_CONFIG_SAVE
|
||||
rm -f $SERVER_CONFIG_NEW
|
||||
|
||||
echo "$out" | grep 'NT_STATUS_CONNECTION_DISCONNECTED'
|
||||
ret=$?
|
||||
if [ $ret -eq 0 ] ; then
|
||||
# Client was disconnected as server crashed.
|
||||
echo "$out"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
testit "test force group change" \
|
||||
test_force_group_change || \
|
||||
failed=`expr $failed + 1`
|
||||
|
||||
testok $0 $failed
|
@ -29,6 +29,7 @@ from selftesthelpers import net, wbinfo, dbwrap_tool, rpcclient, python
|
||||
from selftesthelpers import smbget, smbcacls, smbcquotas, ntlm_auth3
|
||||
from selftesthelpers import valgrindify, smbtorture4_testsuites
|
||||
from selftesthelpers import smbtorture4_options
|
||||
from selftesthelpers import smbcontrol
|
||||
smbtorture4_options.extend([
|
||||
'--option=torture:sharedelay=100000',
|
||||
'--option=torture:writetimeupdatedelay=500000',
|
||||
@ -327,6 +328,9 @@ for env in ["fileserver"]:
|
||||
plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
|
||||
plantestsuite("samba3.blackbox.give_owner", env, [os.path.join(samba3srcdir, "script/tests/test_give_owner.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp'])
|
||||
plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
|
||||
plantestsuite("samba3.blackbox.force_group_change", env,
|
||||
[os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
|
||||
'$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
|
||||
|
||||
#
|
||||
# tar command tests
|
||||
|
Loading…
Reference in New Issue
Block a user