Test transfer of large random file w/o corruption.
[nivanova/samba-autobuild/.git] / testsuite / server / xfer.exp
diff --git a/testsuite/server/xfer.exp b/testsuite/server/xfer.exp
new file mode 100644 (file)
index 0000000..6d00b29
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Test file transfer
+#
+
+# Initialisation
+
+load_lib util-defs.exp
+load_lib smbclient.exp
+load_lib env-single.exp
+
+set timeout 60
+
+# Spawn a connection
+
+if {![spawn_smbclient //$server/$share -U $user]} {
+    perror "error spawning smbclient"
+    return -1
+}
+
+# Create a big file, store it and fetch it again
+
+foreach { op } { "!dd if=/dev/urandom of=/tmp/file bs=1048576 count=1\r" \
+       "lcd /tmp\r" "put file\r" "get file /tmp/file2\r" } {
+
+    set action "doing $op"
+    set output [do_smbclient $op $action]
+
+    if {[regexp "ERR" $output]} {
+       error $action
+       puts $output
+       return -1
+    }
+}
+
+# Compare the two files
+
+set output [util_start "diff" "/tmp/file /tmp/file2" ""]
+
+if {[regexp "differ" $output]} {
+    fail "xfertest"
+    puts $output
+} else {
+    pass "xfertest"
+}
+
+# Clean up temporary files
+
+file delete /tmp/file /tmp/file2