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