[openssh-commits] [openssh] 06/07: upstream: Add regress test for sftp resume.

git+noreply at mindrot.org git+noreply at mindrot.org
Tue Mar 11 19:26:17 AEDT 2025


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 4bcbac742968f5086cfd4c570a51de25ef77931f
Author: dtucker at openbsd.org <dtucker at openbsd.org>
AuthorDate: Tue Mar 11 07:50:20 2025 +0000

    upstream: Add regress test for sftp resume.
    
    OpenBSD-Regress-ID: 37f629b3014338fa23a85df1e1bb320ea12282e1
---
 regress/Makefile       |  3 ++-
 regress/sftp-resume.sh | 41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/regress/Makefile b/regress/Makefile
index 7f734970..7e7f95b5 100644
--- a/regress/Makefile
+++ b/regress/Makefile
@@ -1,4 +1,4 @@
-#	$OpenBSD: Makefile,v 1.135 2024/06/14 04:43:11 djm Exp $
+#	$OpenBSD: Makefile,v 1.136 2025/03/11 07:50:20 dtucker Exp $
 
 tests:		prep file-tests t-exec unit
 
@@ -65,6 +65,7 @@ LTESTS= 	connect \
 		sftp-batch \
 		sftp-glob \
 		sftp-perm \
+		sftp-resume \
 		sftp-uri \
 		reconfigure \
 		dynamic-forward \
diff --git a/regress/sftp-resume.sh b/regress/sftp-resume.sh
new file mode 100644
index 00000000..4c2f6f11
--- /dev/null
+++ b/regress/sftp-resume.sh
@@ -0,0 +1,41 @@
+#	$OpenBSD: sftp-resume.sh,v 1.1 2025/03/11 07:50:20 dtucker Exp $
+#	Placed in the Public Domain.
+
+tid="sftp resume"
+
+CLIENT_LOG=${OBJ}/sftp.log
+
+# We test up to 1MB, ensure source data is large enough.
+increase_datafile_size 1200
+
+for cmd in put get; do
+    verbose "$tid: ${cmd}"
+    for size in 0 1 1k 1m size-1 same; do
+	trace "$tid: test ${cmd} ${size}"
+	rm -rf ${COPY}.1 ${COPY}.2
+	cp ${DATA} ${COPY}.1
+
+	# Set up requested source and destination file sizes.
+	case "${size}" in
+	0)	touch ${COPY}.2
+		;;
+	size-1)	dd if=${DATA} of=${COPY}.1 bs=1024 count=1 >/dev/null 2>&1
+		dd if=${DATA} of=${COPY}.2 bs=1023 count=1 >/dev/null 2>&1
+		;;
+	same)	cp ${DATA} ${COPY}.2
+		;;
+	*)	dd if=${COPY}.1 of=${COPY}.2 bs=${size} count=1 >/dev/null 2>&1
+		;;
+	esac
+
+	# Perform copy and check.
+	echo "${cmd} -a ${COPY}.1 ${COPY}.2" | \
+	    ${SFTP} -D ${SFTPSERVER} -vvv >${CLIENT_LOG} 2>&1 \
+	    || fail "${cmd} failed"
+	cmp ${COPY}.1 ${COPY}.2 || fail "corrupted copy after ${cmd} ${size}"
+	grep "reordered" ${CLIENT_LOG} >/dev/null && \
+	    fail "server reordered requests ${cmd} ${size}"
+    done
+done
+
+rm -rf ${COPY}.1 ${COPY}.2

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list