Skip to contentSkip to conversation

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

PATCH In review SZEDER Gábor 2 participants 4 messages Oct 29, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 test-lib: introduce the '-V' short option for '--verbose-log'

'--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.

---

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(-)
t/README +1 -0
index 8847489640..2e9bef2852 100644
@@ -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
t/test-lib.sh +2 -2
index 897e6fcc94..47a99aa0ed 100644
@@ -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 ;;
 	*)
Signature · 1 line
2.19.1.723.g6817e59acc
#1 lore raw
Quoted 6 lines · SZEDER Gábor

'--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?

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

The patch itself looks good to me.

-Peff

#2 lore raw
Quoted 9 lines · Jeff King
Quoted 6 lines · SZEDER Gábor

'--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.

Quoted 7 lines

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.

#3 lore raw
Quoted 14 lines · SZEDER Gábor
Quoted 7 lines

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.

Quoted 7 lines

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