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 <[EMAIL PROTECTED]> 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:[EMAIL 
PROTECTED]"
+       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

Reply via email to