mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
Test for reloading smb.conf after SIGHUP. Needs to be run as root.
This commit is contained in:
parent
a0ee774fe9
commit
db54e72d2f
107
testsuite/smbd/sighup.exp
Normal file
107
testsuite/smbd/sighup.exp
Normal file
@ -0,0 +1,107 @@
|
||||
#
|
||||
# @(#) Check services file reloaded after SIGHUP
|
||||
#
|
||||
|
||||
load_lib "util-defs.exp"
|
||||
|
||||
# Create a smb.conf file from a list of sections. Each section consists of
|
||||
# a name and a list of lines which are the contents of that section.
|
||||
# Returns a temporary filename which must be deleted after use.
|
||||
|
||||
proc write_smb_conf { args } {
|
||||
|
||||
# Set up temporary file
|
||||
|
||||
set name "/tmp/smb.conf-test-[pid]"
|
||||
set f [open $name "w"]
|
||||
|
||||
# Parse sections
|
||||
|
||||
foreach section [lindex $args 0] {
|
||||
set secname [lindex $section 0]
|
||||
set contents [lindex $section 1]
|
||||
|
||||
puts $f "\[$secname]"
|
||||
|
||||
foreach { line } $contents {
|
||||
puts $f "\t$line"
|
||||
}
|
||||
|
||||
puts $f ""
|
||||
}
|
||||
|
||||
close $f
|
||||
|
||||
# Return filename of smb.conf file
|
||||
|
||||
return $name
|
||||
}
|
||||
|
||||
proc append_smb_conf { args } {
|
||||
|
||||
set name [lindex $args 0]
|
||||
set f [open $name "a"]
|
||||
|
||||
foreach section [lindex $args 1] {
|
||||
set secname [lindex $section 0]
|
||||
set contents [lindex $section 1]
|
||||
|
||||
puts $f "\[$secname]"
|
||||
|
||||
foreach { line } $contents {
|
||||
puts $f "\t$line"
|
||||
}
|
||||
|
||||
puts $f ""
|
||||
}
|
||||
|
||||
close $f
|
||||
}
|
||||
|
||||
# Create a smb.conf file
|
||||
|
||||
set smb_conf [list \
|
||||
[list "global" \
|
||||
[list "netbios name = testing" \
|
||||
"guest ok = true"]]]
|
||||
|
||||
set name [write_smb_conf $smb_conf]
|
||||
|
||||
# Run smbd and smbclient output
|
||||
|
||||
set smbd_output [util_start "bin/smbd" "-s $name"]
|
||||
set nmbd_output [util_start "bin/nmbd" "-s $name"]
|
||||
|
||||
sleep 5
|
||||
|
||||
set smbclient_output [util_start "bin/smbclient -L //testing -N"]
|
||||
verbose $smbclient_output
|
||||
|
||||
if { ![regexp "Anonymous login successful" $smbclient_output] } {
|
||||
untested "smbd could not be started"
|
||||
util_start "killall" "smbd nmbd"
|
||||
file delete $name
|
||||
return
|
||||
}
|
||||
|
||||
# Append another share and sighup
|
||||
|
||||
append_smb_conf $name [list [list "tmp" [list "browseable = true"]]]
|
||||
set output [util_start "killall" "-HUP smbd"]
|
||||
verbose $output
|
||||
|
||||
sleep 2
|
||||
|
||||
set smbclient_output2 [util_start "bin/smbclient -L //testing -N"]
|
||||
verbose $smbclient_output2
|
||||
|
||||
if { [regexp "tmp.*Disk" $smbclient_output2] } {
|
||||
pass "sighup reload"
|
||||
} else {
|
||||
fail "sighup reload"
|
||||
}
|
||||
|
||||
# Clean up
|
||||
|
||||
util_start "killall" "smbd nmbd"
|
||||
file delete $name
|
Loading…
Reference in New Issue
Block a user