Initial import
[samba] / testsuite / lib / smbclient.exp
diff --git a/testsuite/lib/smbclient.exp b/testsuite/lib/smbclient.exp
new file mode 100644 (file)
index 0000000..dc55d72
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Utilities for driving smbclient
+#
+
+# Variables
+
+set smb_prompt "smb: \\\\>"
+
+# Spawn smbclient and wait for a prompt
+
+proc spawn_smbclient { args } {
+    set result 0
+    global smb_prompt
+    global spawn_id
+
+    # Spawn smbclient
+
+    spawn smbclient [lindex $args 0] [lindex $args 1] [lindex $args 2] \
+           [lindex $args 3] [lindex $args 4] [lindex $args 5] \
+           [lindex $args 6]
+
+    # Wait for prompt
+
+    expect {
+       $smb_prompt   { set result 1 }
+       timeout       { perror "timed out spawning smbclient" }
+       eof           { perror "end of file spawning smbclient" }
+    }
+
+    return $result
+}
+
+# Run a command and wait for a prompt
+
+proc do_smbclient { args } {
+    set action [lindex $args 0]
+    set description [lindex $args 1]
+    global smb_prompt
+
+    # Send command
+
+    verbose $action
+
+    send $action
+
+    expect {
+       $smb_prompt     {}
+       timeout         { perror "timed out $description"; return -1}
+       eof             { perror "end of file $description"; return -1 }
+    }
+
+    verbose $expect_out(buffer)
+    return $expect_out(buffer)
+}