1dcbabb4883bf21a5702f625f14a891b52e01b26
[jra/samba/.git] / source4 / selftest / win / wintest_setup.exp
1 # An expect script to setup a directory and share for an smbtorture test.
2 # Copyright Brad Henry <brad@samba.org> 2006
3 # Released under the GNU GPL v2 or later.
4
5 proc setup_test { remote_prompt sharepath sharename username local_hostname \
6                         local_ip hosts_file_path backup_hosts_filename } {
7
8         # If creating the directory fails, remove, then
9         # re-create the directory.
10         set err_str [create_directory $remote_prompt $sharepath]
11         if { $err_str != "OK" } {
12                 if { $err_str != "Directory already exists" } {
13                         puts stderr "\nUnexpected error occured in setup_test.\n"
14                         puts stderr "Function create_directory returned $err_str."
15                 } else {
16                         puts stdout "\nDirectory $sharepath exists."
17                 }
18                 puts stdout "Re-creating directory $sharepath."
19
20                 set err_str [delete_directory $remote_prompt $sharepath]
21                 if { $err_str != "OK" } {
22                         return $err_str
23                 }
24                 set err_str [create_directory $remote_prompt $sharepath]
25                 if { $err_str != "OK" } {
26                         return $err_str
27                 }
28         }
29
30         # If creating the share fails, remove, then
31         # re-create the share.
32         set err_str [create_share $remote_prompt $username $sharepath \
33                         $sharename]
34         if { $err_str != "OK" } {
35                 if { $err_str != "The name has already been shared" } {
36                         puts stderr "\nUnexpected error occured in setup_test."
37                         puts stderr "Function create_share returned $err_str."
38                 } else {
39                         puts stdout "\nShare $sharename exists."
40                 }
41                 puts stdout "Re-creating share $sharename."
42
43                 set err_str [delete_share $remote_prompt $sharename]
44                 if { $err_str != "OK" } {
45                         return $err_str
46                 }
47                 set err_str [create_share $remote_prompt $username $sharepath \
48                         $sharename]
49                 if { $err_str != "OK" } {
50                         return $err_str
51                 }
52         }
53
54         # Add a hosts file entry on the windows machine for the smbtorture host.
55         set err_str [create_hosts_entry $remote_prompt $hosts_file_path \
56                         $local_hostname $local_ip $backup_hosts_filename]
57         return $err_str
58 }
59
60 # Read parameters.
61 set remote_host $env(SMBTORTURE_REMOTE_HOST)
62 set remote_prompt $env(SMBTORTURE_REMOTE_PROMPT)
63
64 set username $env(SMBTORTURE_USERNAME)
65 set password $env(SMBTORTURE_PASSWORD)
66
67 set timeout $env(SMBTORTURE_EXPECT_TIMEOUT)
68
69 set sharepath $env(SMBTORTURE_REMOTE_SHARE_PATH)
70 set sharename $env(SMBTORTURE_REMOTE_SHARE_NAME)
71
72 set local_hostname $env(SMBTORTURE_LOCAL_HOSTNAME)
73 set local_ip $env(SMBTORTURE_LOCAL_IP)
74
75 set backup_hosts_filename $env(REMOTE_BACKUP_HOSTS_FILENAME)
76 set hosts_file_path $env(REMOTE_HOSTS_FILE_PATH)
77
78 set err_val [spawn $env(SHELL)]
79 if {$err_val == 0} {
80         puts stderr "Expect failed while spawning a shell process."
81         exit $err_val
82 }
83
84 set err_str [telnet_login $remote_prompt $remote_host $username $password]
85 if {$err_str != "OK"} {
86         puts stderr "\nFunction telnet_login failed during setup."
87         puts stderr "Error was: $err_str."
88         exit 1
89 }
90
91 set err_str [setup_test $remote_prompt $sharepath $sharename $username \
92                 $local_hostname $local_ip $hosts_file_path \
93                 $backup_hosts_filename]
94 if {$err_str != "OK"} {
95         puts stderr "\nFunction setup_test failed during setup."
96         puts stderr "Error was: $err_str."
97         # Log off from the telnet server.
98         send "exit\r\n"
99         exit 1
100 }
101
102 # Log off from the telnet server.
103 send "exit\r\n"
104 exit 0