s4:samba-tool: Fix samba-tool fsmo --role=schema
[Samba/vl.git] / testsuite / smbd / sighup.exp
bloba9e1bffe11d4929576d923c790b45744ac9c51b9
2 # @(#) Check services file reloaded after SIGHUP
5 load_lib "util-defs.exp"
7 # Create a smb.conf file from a list of sections.  Each section consists of
8 # a name and a list of lines which are the contents of that section.
9 # Returns a temporary filename which must be deleted after use.
11 proc write_smb_conf { args } {
13     # Set up temporary file
15     set name "/tmp/smb.conf-test-[pid]"
16     set f [open $name "w"]
18     # Parse sections
20     foreach section [lindex $args 0] {
21         set secname [lindex $section 0]
22         set contents [lindex $section 1]
23         
24         puts $f "\[$secname]"
26         foreach { line } $contents {
27             puts $f "\t$line"
28         }
30         puts $f ""
31     }
33     close $f
35     # Return filename of smb.conf file
37     return $name
40 proc append_smb_conf { args } {
41     
42     set name [lindex $args 0]
43     set f [open $name "a"]
44     
45     foreach section [lindex $args 1] {
46         set secname [lindex $section 0]
47         set contents [lindex $section 1]
48         
49         puts $f "\[$secname]"
51         foreach { line } $contents {
52             puts $f "\t$line"
53         }
55         puts $f ""
56     }
58     close $f
61 # Create a smb.conf file
63 set smb_conf [list \
64         [list "global" \
65             [list "netbios name = testing" \
66                   "guest ok = true"]]]
68 set name [write_smb_conf $smb_conf]
70 # Run smbd and smbclient output
72 set smbd_output [util_start "bin/smbd" "-s $name"]
73 set nmbd_output [util_start "bin/nmbd" "-s $name"]
75 sleep 5
77 set smbclient_output [util_start "bin/smbclient -L //testing -N"]
78 verbose $smbclient_output
80 if { ![regexp "Anonymous login successful" $smbclient_output] } {
81     untested "smbd could not be started"
82     util_start "killall" "smbd nmbd"
83     file delete $name
84     return
87 # Append another share and sighup
89 append_smb_conf $name [list [list "tmp" [list "browseable = true"]]]
90 set output [util_start "killall" "-HUP smbd"]
91 verbose $output
93 sleep 2
95 set smbclient_output2 [util_start "bin/smbclient -L //testing -N"]
96 verbose $smbclient_output2
98 if { [regexp "tmp.*Disk" $smbclient_output2] } {
99     pass "sighup reload"
100 } else {
101     fail "sighup reload"
104 # Clean up
106 util_start "killall" "smbd nmbd"
107 file delete $name