test-lib: introduce the '-V' short option for '--verbose-log'
diff mbox series

Message ID 20181029121359.7323-1-szeder.dev@gmail.com
State New
Headers show
Series
  • test-lib: introduce the '-V' short option for '--verbose-log'
Related show

Commit Message

SZEDER Gábor Oct. 29, 2018, 12:13 p.m. UTC
'--verbose-log' is one of the most useful and thus most frequently
used test options, but due to its length it's a pain to type on the
command line.

Let's introduce the corresponding short option '-V' to save some
keystrokes.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---

Or it could be '-L', to emphasize the "log" part of the long option, I
don't really care.

 t/README      | 1 +
 t/test-lib.sh | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

SZEDER Gábor Oct. 29, 2018, 1:53 p.m. UTC | #1
On Mon, Oct 29, 2018 at 10:21:08AM -0400, Jeff King wrote:
> On Mon, Oct 29, 2018 at 01:13:59PM +0100, SZEDER Gábor wrote:
> 
> > '--verbose-log' is one of the most useful and thus most frequently
> > used test options, but due to its length it's a pain to type on the
> > command line.
> > 
> > Let's introduce the corresponding short option '-V' to save some
> > keystrokes.
> 
> Interesting. I'm not opposed to something like this, but I added
> "--verbose-log" specifically for scripted cases, like running an
> unattended "prove" that needs to preserve stdout. When running
> individual tests, I'd just use "-v" itself, and possibly redirect the
> output.
> 
> For my curiosity, can you describe your use case a bit more?

Even when I run individual test scripts by hand, I prefer to have a
file catching all output of the test, because I don't like it when the
test output floods my terminal (especially with '-x'), and because the
file is searchable but the terminal isn't.  And that's exactly what
'--verbose-log' does.

Redirecting the '-v' output (i.e. stdout) alone is insufficient,
because any error messages within the tests and the '-x' trace go to
stderr, so they still end up on the terminal.  Therefore I would have
to remember to redirect stderr every time as well.

I find it's much easier to just always use '--verbose-log'... except
for the length of the option, that is, hence this patch.
Jeff King Oct. 29, 2018, 2:21 p.m. UTC | #2
On Mon, Oct 29, 2018 at 01:13:59PM +0100, SZEDER Gábor wrote:

> '--verbose-log' is one of the most useful and thus most frequently
> used test options, but due to its length it's a pain to type on the
> command line.
> 
> Let's introduce the corresponding short option '-V' to save some
> keystrokes.

Interesting. I'm not opposed to something like this, but I added
"--verbose-log" specifically for scripted cases, like running an
unattended "prove" that needs to preserve stdout. When running
individual tests, I'd just use "-v" itself, and possibly redirect the
output.

For my curiosity, can you describe your use case a bit more?

>  t/README      | 1 +
>  t/test-lib.sh | 4 ++--
>  2 files changed, 3 insertions(+), 2 deletions(-)

The patch itself looks good to me.

-Peff
Jeff King Oct. 29, 2018, 3:42 p.m. UTC | #3
On Mon, Oct 29, 2018 at 02:53:35PM +0100, SZEDER Gábor wrote:

> > Interesting. I'm not opposed to something like this, but I added
> > "--verbose-log" specifically for scripted cases, like running an
> > unattended "prove" that needs to preserve stdout. When running
> > individual tests, I'd just use "-v" itself, and possibly redirect the
> > output.
> > 
> > For my curiosity, can you describe your use case a bit more?
> 
> Even when I run individual test scripts by hand, I prefer to have a
> file catching all output of the test, because I don't like it when the
> test output floods my terminal (especially with '-x'), and because the
> file is searchable but the terminal isn't.  And that's exactly what
> '--verbose-log' does.
> 
> Redirecting the '-v' output (i.e. stdout) alone is insufficient,
> because any error messages within the tests and the '-x' trace go to
> stderr, so they still end up on the terminal.  Therefore I would have
> to remember to redirect stderr every time as well.
> 
> I find it's much easier to just always use '--verbose-log'... except
> for the length of the option, that is, hence this patch.

OK, fair enough. Maybe I should start using "-V" too, then. ;)

(I find myself most often coupling "-v" with "-i" to stop at the failure
and just read what's left on the screen).

-Peff

Patch
diff mbox series

diff --git a/t/README b/t/README
index 8847489640..2e9bef2852 100644
--- a/t/README
+++ b/t/README
@@ -154,6 +154,7 @@  appropriately before running "make".
 	As the names depend on the tests' file names, it is safe to
 	run the tests with this option in parallel.
 
+-V::
 --verbose-log::
 	Write verbose output to the same logfile as `--tee`, but do
 	_not_ write it to stdout. Unlike `--tee --verbose`, this option
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 897e6fcc94..47a99aa0ed 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -67,7 +67,7 @@  case "$GIT_TEST_TEE_STARTED, $* " in
 done,*)
 	# do not redirect again
 	;;
-*' --tee '*|*' --va'*|*' --verbose-log '*)
+*' --tee '*|*' --va'*|*' -V '*|*' --verbose-log '*)
 	mkdir -p "$TEST_OUTPUT_DIRECTORY/test-results"
 	BASE="$TEST_OUTPUT_DIRECTORY/test-results/$(basename "$0" .sh)"
 
@@ -316,7 +316,7 @@  do
 			echo >&2 "warning: ignoring -x; '$0' is untraceable without BASH_XTRACEFD"
 		fi
 		shift ;;
-	--verbose-log)
+	-V|--verbose-log)
 		verbose_log=t
 		shift ;;
 	*)