public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/openssh] rawhide: Restore parallel test run, add build dependency to run more upstream tests.
@ 2026-07-10 12:17 Dmitry Belyavskiy
  0 siblings, 0 replies; only message in thread
From: Dmitry Belyavskiy @ 2026-07-10 12:17 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/openssh
Branch : rawhide
Commit : c699131d354b48f5d9c0daed435a4f22195b9e6b
Author : Dmitry Belyavskiy <dbelyavs@redhat.com>
Date   : 2026-07-10T14:16:53+02:00
Stats  : +50/-40 in 3 file(s)
URL    : https://src.fedoraproject.org/rpms/openssh/c/c699131d354b48f5d9c0daed435a4f22195b9e6b?branch=rawhide

Log:
Restore parallel test run, add build dependency to run more upstream tests.

---
diff --git a/openssh.spec b/openssh.spec
index edc2787..95038a0 100644
--- a/openssh.spec
+++ b/openssh.spec
@@ -39,7 +39,7 @@
 Summary: An open source implementation of SSH protocol version 2
 Name: openssh
 Version: %{openssh_ver}
-Release: 1%{?dist}
+Release: 2%{?dist}
 URL: http://www.openssh.com/portable.html
 Source0: ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
 Source1: ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz.asc
@@ -340,8 +340,8 @@ popd
 %endif
 
 %check
-#OPENSSL_CONF=/dev/null %{SOURCE22} %{SOURCE23}  # ./parallel_tests.sh parallel_tests.Makefile
-make tests
+OPENSSL_CONF=/dev/null %{SOURCE22} %{SOURCE23}  # ./parallel_tests.sh parallel_tests.Makefile
+#make tests
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -523,6 +523,9 @@ test -f %{sysconfig_anaconda} && \
 %attr(0755,root,root) %{_libdir}/sshtest/sk-dummy.so
 
 %changelog
+* Thu Jul 09 2026 Dmitry Belyavskiy <dbelyavs@redhat.com> - 10.4p1-2
+- Restore parallel test run, add build dependency to run more upstream tests.
+
 * Wed Jul 08 2026 Dmitry Belyavskiy <dbelyavs@redhat.com> - 10.4p1-1
 - Rebasing OpenSSH to 10.4p1
 

diff --git a/parallel_test.Makefile b/parallel_test.Makefile
index f49df30..fc9aee8 100644
--- a/parallel_test.Makefile
+++ b/parallel_test.Makefile
@@ -1,7 +1,4 @@
-# just a Makefile parallel_test.sh uses to run stuff in parallel with make
-%:
-	$(MAKE) -j1 -C .t/$* $*
-
+# Makefile parallel_test.sh uses to run LTESTS partitions in parallel with make
 t-exec-%:
 	$(MAKE) -j1 -C ".t/t-exec-$*" \
 		TEST_SSH_PORT=10$*0 \
@@ -11,4 +8,4 @@ t-exec-%:
 		MAKE=make \
 		TEST_SSH_TRACE=yes \
 		TEST_SSH_FAIL_FATAL=yes \
-		t-exec \
+		t-exec

diff --git a/parallel_test.sh b/parallel_test.sh
index 682c7e8..68f5c31 100755
--- a/parallel_test.sh
+++ b/parallel_test.sh
@@ -4,23 +4,14 @@ set -uexo pipefail
 # The custom %check script to run the OpenSSH upstream testsuite in parallel.
 #
 # The upstream testsuite is serial,
-# so the idea here is to split the testsuite into several $PARTS:
-# * file-tests
-# * interop-tests
-# * unit
-# * ltests-00
-# * ltests-01
-# * ...
-# * ltests-23
+# so the idea here is to split LTESTS into several t-exec-$ii parts
 # and run them in parallel, using make, each in its own build subtree.
+# The remaining test groups (file-tests, interop-tests, extra-tests, unit)
+# run sequentially in the main build tree after the parallel phase.
 
 PARALLEL_MAKEFILE=$1
 
 SPLIT=24
-PARTS='file-tests interop-tests unit '
-for ((i = 1; i < SPLIT; i++)); do ii=$(printf %02d $i);
-    PARTS+="t-exec-$ii "
-done
 
 # work around a selinux restriction:
 chcon -t unconfined_exec_t ssh-sk-helper || :
@@ -28,7 +19,7 @@ chcon -t unconfined_exec_t ssh-sk-helper || :
 # work around something else that only crops up in brew
 export TEST_SSH_UNSAFE_PERMISSIONS=1
 
-# create a .test directory to store all our files in:
+# create directories to store our files in:
 mkdir -p .t .ltests/{in,not-in}
 
 # patch testsuite: use different ports to avoid port collisions
@@ -43,17 +34,27 @@ sed -i 's|^LFWD_PORT=.*|LFWD_PORT=$(expr $TEST_SSH_PORT + 1)|' \
     regress/forward-control.sh*
 sed -i 's|^RFWD_PORT=.*|RFWD_PORT=$(expr $TEST_SSH_PORT + 2)|' \
     regress/forward-control.sh*
-( ! grep -REi 'port=[2-9][0-9]*' regress)  # try to find more of those
+# verify no hardcoded ports remain (except kdc_port which is only used
+# by extra-tests running sequentially, so collisions aren't a concern)
+( ! grep -REi 'port=[2-9][0-9]*' regress --include='*.sh' \
+    | grep -v kdc_port)
 
-# patch testsuite: speed up
-sed -i 's|sleep 1$|sleep .25|' regress/forward-control.sh
+# patch testsuite: use short paths for Unix domain control sockets
+# to avoid exceeding the 108-byte sun_path limit (OpenSSH appends a
+# temporary suffix during socket creation, adding ~17 bytes)
+for f in regress/forward-control.sh regress/connection-timeout.sh \
+         regress/ssh-tty.sh; do
+    sed -i 's|^CTL=$OBJ/ctl-sock|make_tmpdir; CTL=${SSH_REGRESS_TMP}/ctl-sock|' "$f"
+done
+sed -i 's|^MUXPATH=\$OBJ/mux\.\$\$|make_tmpdir; MUXPATH=${SSH_REGRESS_TMP}/mux.$$|' \
+    regress/channel-timeout.sh
 
-# extract LTESTS list to .tests/ltests/all:
-grep -Ex 'tests:[[:space:]]*file-tests t-exec interop-tests extra-tests unit' Makefile
+# extract LTESTS list to .ltests/all:
+grep -Ex 'tests:[[:space:]]*(prep )?file-tests t-exec( interop-tests)?( extra-tests)? unit' Makefile
 echo -ne '\necho-ltests:\n\techo ${LTESTS}' >> regress/Makefile
 make -s -C regress echo-ltests | tr ' ' '\n' > .ltests/all
 
-# separate ltests into $SPLIT roughly equal .tests/ltests/in/$ii parts:
+# separate ltests into $SPLIT roughly equal .ltests/in/$ii parts:
 grep -qFx connect .ltests/all
 ( ! grep -qFx nonex .ltests/all )
 split -d -a2 --number=l/$SPLIT .ltests/all .ltests/in/
@@ -70,22 +71,31 @@ for ((i = 0; i < SPLIT; i++)); do ii=$(printf %02d $i);
     done < .ltests/all
 done
 grep . .ltests/not-in/*
-( ! grep -q ^connect .ltests/not-in/0 )
+grep -qFx connect .ltests/in/00
 for ((i = 1; i < SPLIT; i++)); do ii=$(printf %02d $i);
-    grep -q ^connect .ltests/not-in/$ii
+    ( ! grep -qFx connect .ltests/in/$ii )
 done
 
-# prepare several test directories:
-for PART in $PARTS; do
-    mkdir .t/${PART}
-    cp -ra * .t/${PART}/
-    sed -i "s|abs_top_srcdir=.*|abs_top_srcdir=$(pwd)/.t/${PART}|" \
-        .t/${PART}/Makefile
-    sed -i "s|abs_top_builddir=.*|abs_top_builddir=$(pwd)/.t/${PART}|" \
-        .t/${PART}/Makefile
-    sed -i "s|^BUILDDIR=.*|BUILDDIR=$(pwd)/.t/${PART}|" \
-        .t/${PART}/Makefile
+# prepare test directories (only for the parallel LTESTS partitions):
+PARTS=''
+for ((i = 0; i < SPLIT; i++)); do ii=$(printf %02d $i);
+    PARTS+="t-exec-$ii "
+    mkdir .t/t-exec-$ii
+    cp -ra * .t/t-exec-$ii/
+    sed -i "s|abs_top_srcdir=.*|abs_top_srcdir=$(pwd)/.t/t-exec-$ii|" \
+        .t/t-exec-$ii/Makefile
+    sed -i "s|abs_top_builddir=.*|abs_top_builddir=$(pwd)/.t/t-exec-$ii|" \
+        .t/t-exec-$ii/Makefile
+    sed -i "s|^BUILDDIR=.*|BUILDDIR=$(pwd)/.t/t-exec-$ii|" \
+        .t/t-exec-$ii/Makefile
 done
 
-# finally, run tests $PARTS in parallel in their own subtrees:
+# run LTESTS partitions in parallel:
 time make -f "$PARALLEL_MAKEFILE" -j$(nproc) $PARTS
+
+# run the remaining test groups sequentially in the main build tree:
+export TEST_SSH_PORT=4200
+make file-tests
+make interop-tests
+make extra-tests
+make unit

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-10 12:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-10 12:17 [rpms/openssh] rawhide: Restore parallel test run, add build dependency to run more upstream tests Dmitry Belyavskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox