Subject: [PATCH 09/11] t940?: make test "set -e" clean

From: Junio C Hamano <[email-masked]>
Date: Tue, 24 Mar 2026 23:21:12 -0700

In order to catch mistakes like misspelling "test_expect_success",
we would like to eventually be able to run our test suite with the
"-e" option on.

The cverserver tests have the usual pattern, where it

	cmd ...
	if test $? ...

expects cmd to be allowed to fail freely and we can act on its exit
status, which is not possible under "set -e".  Rewrite it using the
common pattern:

	status=0; cmd ... || status=$?
	if test $status ...

which means the same thing but does not fail under "set -e".

Note that I do not run cvs tests myself, so while this change
makes the scripts pass to the point where they correctly sets
skip_all='message' and triggers test_done, it is very likely
that there needs further work to make the rest of the scripts
"set -e" clean.

Signed-off-by: Junio C Hamano <[email-masked]>
---
 t/t9400-git-cvsserver-server.sh | 4 ++--
 t/t9401-git-cvsserver-crlf.sh   | 4 ++--
 t/t9402-git-cvsserver-refs.sh   | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
index e499c7f955..e1cc18e834 100755
--- a/t/t9400-git-cvsserver-server.sh
+++ b/t/t9400-git-cvsserver-server.sh
@@ -17,8 +17,8 @@ if ! test_have_prereq PERL; then
 	skip_all='skipping git cvsserver tests, perl not available'
 	test_done
 fi
-cvs >/dev/null 2>&1
-if test $? -ne 1
+status=0; cvs >/dev/null 2>&1 || status=$?
+if test $status -ne 1
 then
     skip_all='skipping git-cvsserver tests, cvs not found'
     test_done
diff --git a/t/t9401-git-cvsserver-crlf.sh b/t/t9401-git-cvsserver-crlf.sh
index a34805acdc..715723f675 100755
--- a/t/t9401-git-cvsserver-crlf.sh
+++ b/t/t9401-git-cvsserver-crlf.sh
@@ -60,8 +60,8 @@ check_status_options() {
     return $stat
 }
 
-cvs >/dev/null 2>&1
-if test $? -ne 1
+status=0; cvs >/dev/null 2>&1 || status=$?
+if test $status -ne 1
 then
     skip_all='skipping git-cvsserver tests, cvs not found'
     test_done
diff --git a/t/t9402-git-cvsserver-refs.sh b/t/t9402-git-cvsserver-refs.sh
index 2ee41f9443..dd9ffe021b 100755
--- a/t/t9402-git-cvsserver-refs.sh
+++ b/t/t9402-git-cvsserver-refs.sh
@@ -68,8 +68,8 @@ check_diff() {
 
 #########
 
-cvs >/dev/null 2>&1
-if test $? -ne 1
+status=0; cvs >/dev/null 2>&1 || status=$?
+if test $status -ne 1
 then
 	skip_all='skipping git-cvsserver tests, cvs not found'
 	test_done
-- 
2.53.0-886-g529cbd14ff