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;