All of lore.kernel.org
 help / color / mirror / Atom feed
From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>, "Junio C Hamano" <gitster@pobox.com>,
	"SZEDER Gábor" <szeder.dev@gmail.com>
Subject: [PATCH 02/11] t: add means to disable '-x' tracing for individual test scripts
Date: Sat, 24 Feb 2018 00:39:42 +0100	[thread overview]
Message-ID: <20180223233951.11154-3-szeder.dev@gmail.com> (raw)
In-Reply-To: <20180223233951.11154-1-szeder.dev@gmail.com>

The previous patch resolved most of the test failures caused by
running our test suite with '-x' tracing and /bin/sh, and the
following patches in this series will resolve almost all of the
remaining failures.  Unfortunately, not yet all.

Add means to disable '-x' tracing for individual test scripts by
setting the $test_untraceable variable to a non-empty value in the
test script before sourcing 'test-lib.sh'.  However, since '-x'
tracing is not an issue with recent Bash versions supporting
BASH_XTRACEFD, i.e. v4.1 and later, don't disable tracing when the
test script is run with such a Bash version even when
$test_untraceable is set.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 t/README      |  3 +++
 t/test-lib.sh | 19 ++++++++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/t/README b/t/README
index b3f7b449c3..c430e9c52c 100644
--- a/t/README
+++ b/t/README
@@ -87,6 +87,9 @@ appropriately before running "make".
 	themselves. Implies `--verbose`. Note that in non-bash shells,
 	this can cause failures in some tests which redirect and test
 	the output of shell functions. Use with caution.
+	Ignored in test scripts that set the variable 'test_untraceable'
+	to a non-empty value, unless it's run with a Bash version
+	supporting BASH_XTRACEFD, i.e. v4.1 or later.
 
 -d::
 --debug::
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 33f6ce26f6..732213ef1b 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -263,7 +263,24 @@ do
 		GIT_TEST_CHAIN_LINT=0
 		shift ;;
 	-x)
-		trace=t
+		# Some test scripts can't be reliably traced  with '-x',
+		# unless the test is run with a Bash version supporting
+		# BASH_XTRACEFD (introduced in Bash v4.1).  Check whether
+		# this test is marked as such, and ignore '-x' if it
+		# isn't executed with a suitable Bash version.
+		if test -z "$test_untraceable" || {
+		     test -n "$BASH_VERSION" && {
+		       test ${BASH_VERSINFO[0]} -gt 4 || {
+			 test ${BASH_VERSINFO[0]} -eq 4 &&
+			 test ${BASH_VERSINFO[1]} -ge 1
+		       }
+		     }
+		   }
+		then
+			trace=t
+		else
+			echo >&2 "warning: ignoring -x; '$0' is untraceable without BASH_XTRACEFD"
+		fi
 		shift ;;
 	--verbose-log)
 		verbose_log=t
-- 
2.16.2.400.g911b7cc0da


  parent reply	other threads:[~2018-02-23 23:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-23 23:39 [PATCH 00/11] Make the test suite pass with '-x' and /bin/sh SZEDER Gábor
2018-02-23 23:39 ` [PATCH 01/11] t: prevent '-x' tracing from interfering with test helpers' stderr SZEDER Gábor
2018-02-24 12:19   ` SZEDER Gábor
2018-02-25 13:40   ` [PATCH v1.1] " SZEDER Gábor
2018-02-23 23:39 ` SZEDER Gábor [this message]
2018-02-23 23:39 ` [PATCH 03/11] t1507-rev-parse-upstream: don't check the stderr of a shell function SZEDER Gábor
2018-02-23 23:39 ` [PATCH 04/11] t3030-merge-recursive: don't check the stderr of a subshell SZEDER Gábor
2018-02-24  8:04   ` Eric Sunshine
2018-02-27 21:03   ` Junio C Hamano
2018-02-27 21:10     ` Junio C Hamano
2018-02-27 21:27       ` [PATCH] test_must_be_empty: make sure the file exists, not just empty Junio C Hamano
2018-02-27 21:42         ` Stefan Beller
2018-02-27 22:08         ` Jeff King
2018-02-27 21:28       ` [PATCH 04/11] t3030-merge-recursive: don't check the stderr of a subshell SZEDER Gábor
2018-02-27 21:17   ` Junio C Hamano
2018-02-28  0:44     ` SZEDER Gábor
2018-02-23 23:39 ` [PATCH 05/11] t5500-fetch-pack: " SZEDER Gábor
2018-02-23 23:39 ` [PATCH 06/11] t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file SZEDER Gábor
2018-02-23 23:39 ` [PATCH 07/11] t5570-git-daemon: don't check the stderr of a subshell SZEDER Gábor
2018-02-23 23:39 ` [PATCH 08/11] t9903-bash-prompt: don't check the stderr of __git_ps1() SZEDER Gábor
2018-02-23 23:39 ` [PATCH 09/11] t1510-repo-setup: mark as untraceable with '-x' SZEDER Gábor
2018-02-23 23:39 ` [PATCH 10/11] t/README: add a note about don't saving stderr of compound commands SZEDER Gábor
2018-02-23 23:39 ` [PATCH 11/11] travis-ci: run tests with '-x' tracing SZEDER Gábor
2018-03-02 15:32 ` [PATCH 00/11] Make the test suite pass with '-x' and /bin/sh SZEDER Gábor
2018-03-03  7:12 ` Jeff King
2018-03-05 21:18   ` SZEDER Gábor

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=20180223233951.11154-3-szeder.dev@gmail.com \
    --to=szeder.dev@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.