git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v6 2/6] t0021: make debug log file name configurable

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 25, 2017, 22:15 UTC
Message-ID
<xmqqpodr7lyz.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170625182125.6741-3-larsxschneider@gmail.com>
Lars Schneider <larsxschneider@gmail.com> writes:
Show 6 quoted lines
> The "rot13-filter.pl" helper wrote its debug logs always to "rot13-filter.log".
> Make this configurable by defining the log file as first parameter of
> "rot13-filter.pl".
>
> This is useful if "rot13-filter.pl" is configured multiple times similar to the
> subsequent patch 'convert: add "status=delayed" to filter process protocol'.

Makes sense. If you didn't rename the output file to "debug.log" the patch may have been less noisy (because you do not have to touch the test_cmp_count calls), but I am guessing that it helped you to make sure that you covered all the existing users of rot13 filter, so I am OK with that part of the change as well.

Looks good.  Thanks.
Show 231 quoted lines
>
> Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
> ---
>  t/t0021-conversion.sh   | 44 ++++++++++++++++++++++----------------------
>  t/t0021/rot13-filter.pl |  8 +++++---
>  2 files changed, 27 insertions(+), 25 deletions(-)
>
> diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
> index ff2424225b..0139b460e7 100755
> --- a/t/t0021-conversion.sh
> +++ b/t/t0021-conversion.sh
> @@ -28,7 +28,7 @@ file_size () {
>  }
>  
>  filter_git () {
> -	rm -f rot13-filter.log &&
> +	rm -f *.log &&
>  	git "$@"
>  }
>  
> @@ -342,7 +342,7 @@ test_expect_success 'diff does not reuse worktree files that need cleaning' '
>  '
>  
>  test_expect_success PERL 'required process filter should filter data' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean smudge" &&
>  	test_config_global filter.protocol.required true &&
>  	rm -rf repo &&
>  	mkdir repo &&
> @@ -375,7 +375,7 @@ test_expect_success PERL 'required process filter should filter data' '
>  			IN: clean testsubdir/test3 '\''sq'\'',\$x=.r $S3 [OK] -- OUT: $S3 . [OK]
>  			STOP
>  		EOF
> -		test_cmp_count expected.log rot13-filter.log &&
> +		test_cmp_count expected.log debug.log &&
>  
>  		git commit -m "test commit 2" &&
>  		rm -f test2.r "testsubdir/test3 '\''sq'\'',\$x=.r" &&
> @@ -388,7 +388,7 @@ test_expect_success PERL 'required process filter should filter data' '
>  			IN: smudge testsubdir/test3 '\''sq'\'',\$x=.r $S3 [OK] -- OUT: $S3 . [OK]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		filter_git checkout --quiet --no-progress empty-branch &&
>  		cat >expected.log <<-EOF &&
> @@ -397,7 +397,7 @@ test_expect_success PERL 'required process filter should filter data' '
>  			IN: clean test.r $S [OK] -- OUT: $S . [OK]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		filter_git checkout --quiet --no-progress master &&
>  		cat >expected.log <<-EOF &&
> @@ -409,7 +409,7 @@ test_expect_success PERL 'required process filter should filter data' '
>  			IN: smudge testsubdir/test3 '\''sq'\'',\$x=.r $S3 [OK] -- OUT: $S3 . [OK]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
>  		test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
> @@ -419,7 +419,7 @@ test_expect_success PERL 'required process filter should filter data' '
>  
>  test_expect_success PERL 'required process filter takes precedence' '
>  	test_config_global filter.protocol.clean false &&
> -	test_config_global filter.protocol.process "rot13-filter.pl clean" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean" &&
>  	test_config_global filter.protocol.required true &&
>  	rm -rf repo &&
>  	mkdir repo &&
> @@ -439,12 +439,12 @@ test_expect_success PERL 'required process filter takes precedence' '
>  			IN: clean test.r $S [OK] -- OUT: $S . [OK]
>  			STOP
>  		EOF
> -		test_cmp_count expected.log rot13-filter.log
> +		test_cmp_count expected.log debug.log
>  	)
>  '
>  
>  test_expect_success PERL 'required process filter should be used only for "clean" operation only' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean" &&
>  	rm -rf repo &&
>  	mkdir repo &&
>  	(
> @@ -462,7 +462,7 @@ test_expect_success PERL 'required process filter should be used only for "clean
>  			IN: clean test.r $S [OK] -- OUT: $S . [OK]
>  			STOP
>  		EOF
> -		test_cmp_count expected.log rot13-filter.log &&
> +		test_cmp_count expected.log debug.log &&
>  
>  		rm test.r &&
>  
> @@ -474,12 +474,12 @@ test_expect_success PERL 'required process filter should be used only for "clean
>  			init handshake complete
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log
> +		test_cmp_exclude_clean expected.log debug.log
>  	)
>  '
>  
>  test_expect_success PERL 'required process filter should process multiple packets' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean smudge" &&
>  	test_config_global filter.protocol.required true &&
>  
>  	rm -rf repo &&
> @@ -514,7 +514,7 @@ test_expect_success PERL 'required process filter should process multiple packet
>  			IN: clean 3pkt_2+1.file $(($S*2+1)) [OK] -- OUT: $(($S*2+1)) ... [OK]
>  			STOP
>  		EOF
> -		test_cmp_count expected.log rot13-filter.log &&
> +		test_cmp_count expected.log debug.log &&
>  
>  		rm -f *.file &&
>  
> @@ -529,7 +529,7 @@ test_expect_success PERL 'required process filter should process multiple packet
>  			IN: smudge 3pkt_2+1.file $(($S*2+1)) [OK] -- OUT: $(($S*2+1)) ... [OK]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		for FILE in *.file
>  		do
> @@ -539,7 +539,7 @@ test_expect_success PERL 'required process filter should process multiple packet
>  '
>  
>  test_expect_success PERL 'required process filter with clean error should fail' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean smudge" &&
>  	test_config_global filter.protocol.required true &&
>  	rm -rf repo &&
>  	mkdir repo &&
> @@ -558,7 +558,7 @@ test_expect_success PERL 'required process filter with clean error should fail'
>  '
>  
>  test_expect_success PERL 'process filter should restart after unexpected write failure' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean smudge" &&
>  	rm -rf repo &&
>  	mkdir repo &&
>  	(
> @@ -579,7 +579,7 @@ test_expect_success PERL 'process filter should restart after unexpected write f
>  		git add . &&
>  		rm -f *.r &&
>  
> -		rm -f rot13-filter.log &&
> +		rm -f debug.log &&
>  		git checkout --quiet --no-progress . 2>git-stderr.log &&
>  
>  		grep "smudge write error at" git-stderr.log &&
> @@ -595,7 +595,7 @@ test_expect_success PERL 'process filter should restart after unexpected write f
>  			IN: smudge test2.r $S2 [OK] -- OUT: $S2 . [OK]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
>  		test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
> @@ -609,7 +609,7 @@ test_expect_success PERL 'process filter should restart after unexpected write f
>  '
>  
>  test_expect_success PERL 'process filter should not be restarted if it signals an error' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean smudge" &&
>  	rm -rf repo &&
>  	mkdir repo &&
>  	(
> @@ -639,7 +639,7 @@ test_expect_success PERL 'process filter should not be restarted if it signals a
>  			IN: smudge test2.r $S2 [OK] -- OUT: $S2 . [OK]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
>  		test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
> @@ -648,7 +648,7 @@ test_expect_success PERL 'process filter should not be restarted if it signals a
>  '
>  
>  test_expect_success PERL 'process filter abort stops processing of all further files' '
> -	test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
> +	test_config_global filter.protocol.process "rot13-filter.pl debug.log clean smudge" &&
>  	rm -rf repo &&
>  	mkdir repo &&
>  	(
> @@ -676,7 +676,7 @@ test_expect_success PERL 'process filter abort stops processing of all further f
>  			IN: smudge abort.r $SA [OK] -- OUT: 0 [ABORT]
>  			STOP
>  		EOF
> -		test_cmp_exclude_clean expected.log rot13-filter.log &&
> +		test_cmp_exclude_clean expected.log debug.log &&
>  
>  		test_cmp "$TEST_ROOT/test.o" test.r &&
>  		test_cmp "$TEST_ROOT/test2.o" test2.r &&
> diff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl
> index 617f581e56..0b943bb377 100644
> --- a/t/t0021/rot13-filter.pl
> +++ b/t/t0021/rot13-filter.pl
> @@ -2,8 +2,9 @@
>  # Example implementation for the Git filter protocol version 2
>  # See Documentation/gitattributes.txt, section "Filter Protocol"
>  #
> -# The script takes the list of supported protocol capabilities as
> -# arguments ("clean", "smudge", etc).
> +# The first argument defines a debug log file that the script write to.
> +# All remaining arguments define a list of supported protocol
> +# capabilities ("clean", "smudge", etc).
>  #
>  # This implementation supports special test cases:
>  # (1) If data with the pathname "clean-write-fail.r" is processed with
> @@ -24,9 +25,10 @@ use warnings;
>  use IO::File;
>  
>  my $MAX_PACKET_CONTENT_SIZE = 65516;
> +my $log_file                = shift @ARGV;
>  my @capabilities            = @ARGV;
>  
> -open my $debug, ">>", "rot13-filter.log" or die "cannot open log file: $!";
> +open my $debug, ">>", $log_file or die "cannot open log file: $!";
>  
>  sub rot13 {
>  	my $str = shift;
Previous: Lars SchneiderNext: Lars Schneider
Message 7 of 24 in “convert: add "status=delayed" to filter process protocol”
  1. 0/6 convert: add "status=delayed" to filter process protocolLars Schneider, Jun 25, 2017
  2. 1/6 t0021: keep filter log files on comparisonLars Schneider, Jun 25, 2017
  3. Junio C HamanoJun 25, 2017
  4. Lars SchneiderJun 26, 2017
  5. Junio C HamanoJun 26, 2017
  6. 2/6 t0021: make debug log file name configurableLars Schneider, Jun 25, 2017
  7. Junio C HamanoJun 25, 2017
  8. 3/6 t0021: write "OUT" only on successLars Schneider, Jun 25, 2017
  9. Junio C HamanoJun 25, 2017
  10. Lars SchneiderJun 26, 2017
  11. Junio C HamanoJun 26, 2017
  12. Lars SchneiderJun 26, 2017
  13. 6/6 convert: add "status=delayed" to filter process protocolLars Schneider, Jun 25, 2017
  14. Junio C HamanoJun 26, 2017
  15. Lars SchneiderJun 26, 2017
  16. Junio C HamanoJun 26, 2017
  17. Junio C HamanoJun 26, 2017
  18. Lars SchneiderJun 27, 2017
  19. 4/6 convert: put the flags field before the flag itself for consistent styleLars Schneider, Jun 25, 2017
  20. Junio C HamanoJun 25, 2017
  21. 5/6 convert: move multiple file filter error handling to separate functionLars Schneider, Jun 25, 2017
  22. Junio C HamanoJun 26, 2017
  23. Stefan BellerJun 27, 2017
  24. Junio C HamanoJun 26, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.