1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/testsuite/smbd/sighup.exp
2000-07-24 06:18:21 +00:00

108 lines
2.0 KiB
Plaintext

#
# @(#) 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