mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
selftest: Add test for failing chdir call in smbd
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13189 Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
b0e1fc74fd
commit
0d3000be2a
@ -343,3 +343,4 @@
|
||||
# Disabling NTLM means you can't use samr to change the password
|
||||
^samba.tests.ntlmdisabled.python\(ktest\).ntlmdisabled.NtlmDisabledTests.test_samr_change_password\(ktest\)
|
||||
^samba.tests.ntlmdisabled.python\(ad_dc_no_ntlm\).ntlmdisabled.NtlmDisabledTests.test_ntlm_connection\(ad_dc_no_ntlm\)
|
||||
^samba3.blackbox.smbd_error.check_panic_2
|
||||
|
56
source3/script/tests/test_smbd_error.sh
Executable file
56
source3/script/tests/test_smbd_error.sh
Executable file
@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Test smbd with failing chdir system call.
|
||||
#
|
||||
# Verify that smbd does not panic when the chdir system call is
|
||||
# returning an error. ensure that the output format for ACL entries
|
||||
#
|
||||
# Copyright (C) 2017 Christof Schmitt
|
||||
|
||||
. $(dirname $0)/../../../testprogs/blackbox/subunit.sh
|
||||
failed=0
|
||||
error_inject_conf=$(dirname $SMB_CONF_PATH)/error_inject.conf
|
||||
|
||||
panic_count_0=$(grep -c PANIC $SMBD_TEST_LOG)
|
||||
|
||||
#
|
||||
# Verify that a panic in smbd will result in a PANIC message in the log
|
||||
#
|
||||
|
||||
# As a panic is expected here, also overwrite the default "panic
|
||||
# action" in selftest to not start a debugger
|
||||
echo 'error_inject:chdir = panic' > $error_inject_conf
|
||||
echo '[global]' >> $error_inject_conf
|
||||
echo 'panic action = ""' >> $error_inject_conf
|
||||
|
||||
testit_expect_failure "smbclient" $VALGRIND \
|
||||
$BINDIR/smbclient //$SERVER_IP/error_inject \
|
||||
-U$USERNAME%$PASSWORD -c dir ||
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
rm $error_inject_conf
|
||||
|
||||
panic_count_1=$(grep -c PANIC $SMBD_TEST_LOG)
|
||||
|
||||
testit "check_panic_1" test $(expr $panic_count_0 + 1) -eq $panic_count_1 ||
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
#
|
||||
# Verify that a failing chdir vfs call does not result in a smbd panic
|
||||
#
|
||||
|
||||
echo 'error_inject:chdir = ESTALE' > $error_inject_conf
|
||||
|
||||
testit_expect_failure "smbclient" $VALGRIND \
|
||||
$BINDIR/smbclient //$SERVER_IP/error_inject \
|
||||
-U$USERNAME%$PASSWORD -c dir ||
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
panic_count_2=$(grep -c PANIC $SMBD_TEST_LOG)
|
||||
|
||||
testit "check_panic_2" test $panic_count_1 -eq $panic_count_2 ||
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
rm $error_inject_conf
|
||||
|
||||
testok $0 $failed
|
@ -585,6 +585,9 @@ plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
|
||||
smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
|
||||
configuration, '$LOCAL_PATH', '$LOCK_DIR' ])
|
||||
|
||||
plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
|
||||
[ os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh") ])
|
||||
|
||||
plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
|
||||
[ os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
|
||||
'$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
|
||||
|
Loading…
Reference in New Issue
Block a user