svn commit: samba r17649 - in branches/SOC/bnh/expect: .
brad at samba.org
brad at samba.org
Mon Aug 21 04:05:14 GMT 2006
Author: brad
Date: 2006-08-21 04:05:13 +0000 (Mon, 21 Aug 2006)
New Revision: 17649
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17649
Log:
Added functions map_share, unmap_share, xcopy_file, create_tmp_file and compare_files to common.exp.
These are used by the windows client / samba server test.
Some output cleanup in wintest_remote.exp and wintest_setup.exp.
Modified:
branches/SOC/bnh/expect/common.exp
branches/SOC/bnh/expect/wintest_remove.exp
branches/SOC/bnh/expect/wintest_setup.exp
Changeset:
Modified: branches/SOC/bnh/expect/common.exp
===================================================================
--- branches/SOC/bnh/expect/common.exp 2006-08-21 03:52:43 UTC (rev 17648)
+++ branches/SOC/bnh/expect/common.exp 2006-08-21 04:05:13 UTC (rev 17649)
@@ -2,12 +2,175 @@
# Copyright Brad Henry <brad at samba.org> 2006
# Released under the GNU GPL v2 or later.
+# This function maps a drive letter to a share point.
+proc map_share { remote_prompt share_drive sharepoint username domain password } {
+ set default_err_str "Unknown error in function map_share"
+ set err_str $default_err_str
+
+ set cmd "net use $share_drive $sharepoint $password /USER:$username@$domain\r\n"
+ send $cmd
+
+ expect {
+ "The command completed successfully." {
+ expect_prompt $remote_prompt
+ set err_str "OK"
+ } \
+ "The local device name is already in use." {
+ expect_prompt $remote_prompt
+ set err_str "The device name $share_drive is already in use"
+ } \
+ "The network name cannot be found." {
+ expect_prompt $remote_prompt
+ set err_str "Sharepoint $sharepoint could not be found"
+ } \
+ timeout {
+ set err_str "Function map_share timed out while mapping $share_drive to $sharepoint"
+ }
+ }
+ return $err_str
+}
+
+# This function unmaps a drive letter from a share point.
+proc unmap_share { remote_prompt share_drive } {
+ set default_err_str "Unknown error in function unmap_share"
+ set err_str $default_err_str
+
+ set cmd "net use $share_drive /DELETE\r\n"
+ send $cmd
+
+ expect {
+ "was deleted successfully." {
+ expect_prompt $remote_prompt
+ set err_str "OK"
+ } \
+ "NET HELPMSG 2250" {
+ expect_prompt $remote_prompt
+ set err_str "The network connection could not be found while unmapping $share_drive"
+ } \
+ timeout {
+ set err_str "Function unmap_share timed out while unmapping $share_drive"
+ }
+ }
+ return $err_str
+}
+
+# This function uses xcopy to copy a text file from one location on the
+# remote windows host to another.
+proc xcopy_file { remote_prompt in_filename out_filename xcopy_options } {
+ set default_err_str "Unknown error in function xcopy_file"
+ set err_str $default_err_str
+
+ set cmd "xcopy $in_filename $out_filename $xcopy_options\r\n"
+ send $cmd
+
+ expect {
+ "(F = file, D = directory)? " {
+ set cmd "F\r\n"
+ send $cmd
+ expect {
+ "1 File(s) copied\r\n\r\n" {
+ expect_prompt $remote_prompt
+ set err_str "OK"
+ } \
+ "0 File(s) copied\r\n\r\n" {
+ expect_prompt $remote_prompt
+ set err_str $default_err_str
+ } \
+ timeout {
+ set err_str "Function xcopy_file has timed out while copying $in_filename"
+ }
+ }
+ } \
+ "1 File(s) copied\r\n\r\n" {
+ expect_prompt $remote_prompt
+ set err_str "OK"
+ } \
+ "0 File(s) copied\r\n\r\n" {
+ expect_prompt $remote_prompt
+ set err_str $default_err_str
+ } \
+ timeout {
+ set err_str "Function xcopy_file timed out while copying $in_filename"
+ }
+ }
+ return $err_str
+}
+
+# This function creates a temporary file on the remote windows host.
+# The file contents are populated by a recursive directory listing of
+# the windows %HOMEDRIVE%.
+proc create_tmp_file { remote_prompt filename } {
+ set default_err_str "Unknown error in function create_tmp_file"
+ set err_str $default_err_str
+
+ set cmd "dir %HOMEDRIVE%\\ /S > $filename\r\n"
+ send $cmd
+ expect {
+ $remote_prompt {
+ set err_str "OK"
+ } \
+ timeout {
+ set err_str "Function create_tmp_file timed out while creating $filename"
+ }
+ }
+ return $err_str
+}
+
+# This function compares two files on the remote windows host.
+proc compare_files { remote_prompt file1 file2 } {
+ set default_err_str "Unknown error in function compare_files"
+ set err_str $default_err_str
+
+ set cmd "fc $file1 $file2\r\n"
+ send $cmd
+ expect {
+ "FC: no differences encountered\r\n\r\n\r\n" {
+ expect_prompt $remote_prompt
+ set err_str "OK"
+ } \
+ "\*\*\*\*\* $file1" {
+ expect_prompt $remote_prompt
+ set err_str "Files $file1 and $file2 differ"
+ } \
+ "\*\*\*\*\* $file2" {
+ expect_prompt $remote_prompt
+ set err_str "Files $file1 and $file2 differ"
+ } \
+ timeout {
+ set err_str "Function compare_files timed out while comparing files $file1 and $file2"
+ }
+ }
+ return $err_str
+}
+
+# This function deletes a file on the remote windows host.
+proc delete_file { remote_prompt filename } {
+ set default_err_str "Unknown error in function delete_file"
+ set err_str $default_err_str
+
+ set cmd "del $filename\r\n"
+ send $cmd
+ expect {
+ "Could Not" {
+ expect_prompt $remote_prompt
+ set err_str $default_err_str
+ } \
+ $remote_prompt {
+ set err_str "OK"
+ } \
+ timeout {
+ set err_str "Function delete_file timed oout while deleting $filename"
+ }
+ }
+ return $err_str
+}
+
# This function copies a text file over telnet from the local unix host
# to the remote windows host.
proc copy_file { remote_prompt in_filename out_filename } {
set default_err_str "Unknown error in function copy_file"
set err_str $default_err_str
-
+
# The octal ASCII code for Control-Z is 032.
set CTRLZ \032
@@ -16,7 +179,7 @@
set in_data [read $in_file]
# Initiate copy on remote host.
- set cmd "copy con $out_filename\r"
+ set cmd "copy con $out_filename\r\n"
send $cmd
# Separate $in_data into lines and send to remote host.
@@ -29,7 +192,7 @@
# If so, exit so we can handle it.
expect {
"(Yes/No/All)" {
- send "NO\r"
+ send "NO\r\n"
expect_prompt $remote_prompt
set err_str "File exists"
} \
@@ -152,7 +315,7 @@
set default_err_str "Unknown error in function create_directory"
set err_str $default_err_str
- set cmd "mkdir $sharepath\r"
+ set cmd "mkdir $sharepath\r\n"
send $cmd
expect {
"already exists" {
@@ -175,7 +338,7 @@
set default_err_str "Unknown error in function delete_directory"
set err_str $default_err_str
- set cmd "rmdir $sharepath\r"
+ set cmd "rmdir $sharepath\r\n"
send $cmd
expect {
"Access is denied." {
@@ -198,7 +361,7 @@
set default_err_str "Unknown error in function create_share"
set err_str $default_err_str
- set cmd "net share $sharename=$sharepath /GRANT:$username,FULL\r"
+ set cmd "net share $sharename=$sharepath /GRANT:$username,FULL\r\n"
send $cmd
expect {
"was shared successfully." {
@@ -224,7 +387,7 @@
set default_err_str "Unknown error in function delete_share"
set err_str $default_err_str
- set cmd "net share $sharename /DELETE\r"
+ set cmd "net share $sharename /DELETE\r\n"
send $cmd
expect {
"was deleted successfully." {
@@ -250,7 +413,7 @@
set default_err_str "Unknown error in function delete_hosts_entry"
set err_str $default_err_str
- set cmd "cd $hosts_file_path\r"
+ set cmd "cd $hosts_file_path\r\n"
send $cmd
expect {
"." {
@@ -271,7 +434,7 @@
set err_str $default_err_str
}
- set cmd "move /Y $backup_hosts_filename hosts\r"
+ set cmd "move /Y $backup_hosts_filename hosts\r\n"
send $cmd
expect {
"1 file(s) moved." {
@@ -298,7 +461,7 @@
set default_err_str "Unknown error in function create_hosts_entry"
set err_str $default_err_str
- set cmd "cd $hosts_file_path\r"
+ set cmd "cd $hosts_file_path\r\n"
send $cmd
expect {
"." {
@@ -319,7 +482,7 @@
set err_str $default_err_str
}
- set cmd "copy /Y hosts $backup_hosts_filename\r"
+ set cmd "copy /Y hosts $backup_hosts_filename\r\n"
send $cmd
expect {
"1 file(s) copied." {
@@ -343,7 +506,7 @@
set err_str $default_err_str
}
- set cmd "echo $ip $hostname #smbtorture host. >> hosts\r"
+ set cmd "echo $ip $hostname #smbtorture host. >> hosts\r\n"
send $cmd
expect {
$remote_prompt {
Modified: branches/SOC/bnh/expect/wintest_remove.exp
===================================================================
--- branches/SOC/bnh/expect/wintest_remove.exp 2006-08-21 03:52:43 UTC (rev 17648)
+++ branches/SOC/bnh/expect/wintest_remove.exp 2006-08-21 04:05:13 UTC (rev 17649)
@@ -61,9 +61,11 @@
if {$err_str != "OK"} {
puts stderr "\nFunction remove_test failed."
puts stderr "Error was: $err_str."
+ # Log off from the telnet server.
+ send "exit\r\n"
exit 1
}
# Log off from the telnet server.
-send "exit\r"
+send "exit\r\n"
exit 0
Modified: branches/SOC/bnh/expect/wintest_setup.exp
===================================================================
--- branches/SOC/bnh/expect/wintest_setup.exp 2006-08-21 03:52:43 UTC (rev 17648)
+++ branches/SOC/bnh/expect/wintest_setup.exp 2006-08-21 04:05:13 UTC (rev 17649)
@@ -10,7 +10,7 @@
set err_str [create_directory $remote_prompt $sharepath]
if { $err_str != "OK" } {
if { $err_str != "Directory already exists" } {
- puts stderr "\nUnexpected error occured in setup_test."
+ puts stderr "\nUnexpected error occured in setup_test.\n"
puts stderr "Function create_directory returned $err_str."
} else {
puts stdout "\nDirectory $sharepath exists."
@@ -94,9 +94,11 @@
if {$err_str != "OK"} {
puts stderr "\nFunction setup_test failed during setup."
puts stderr "Error was: $err_str."
+ # Log off from the telnet server.
+ send "exit\r\n"
exit 1
}
# Log off from the telnet server.
-send "exit\r"
+send "exit\r\n"
exit 0
More information about the samba-cvs
mailing list