public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Dmitry Belyavskiy <dbelyavs@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/openssh] rawhide: Restore parallel test run, add build dependency to run more upstream tests.
Date: Fri, 10 Jul 2026 12:17:25 GMT [thread overview]
Message-ID: <178368584528.1.9505622140509470101.rpms-openssh-c699131d354b@fedoraproject.org> (raw)
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
reply other threads:[~2026-07-10 12:17 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178368584528.1.9505622140509470101.rpms-openssh-c699131d354b@fedoraproject.org \
--to=dbelyavs@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox