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

Re: [PATCH v7 3/6] t0021: write "OUT <size>" only on success

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 27, 2017, 18:44 UTC
Message-ID
<xmqqfuel1d9s.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170627121027.99209-4-larsxschneider@gmail.com>
Lars Schneider <larsxschneider@gmail.com> writes:
Show 9 quoted lines
> "rot13-filter.pl" always writes "OUT <size>" to the debug log at the end
> of a response.
>
> This works without issues for the existing responses "abort", "error",
> and "success". A new response "delayed", that will be introduced in a
> subsequent patch, accepts the input without giving the filtered result
> right away. Since we actually have the data already available in our
> mock filter the debug log output would be wrong/misleading. Therefore,
> we do not write "OUT <size>" for "delayed" responses.

I still do not get why you think it makes any difference that you are hoarding the result in the mock program. If the filter needs to read a prepared result from a file in t/t0021/ before responding to a real request after it replies to "delayed", would that change the argument above? From Git's and the t0021-conversion.sh test's point of view, I do not think it makes an iota of difference---it's an implementation detail of the mock program.

I am totally lost.

Isn't the point of removing the log output from response to "delayed" that the filter does not give the output back to Git at that point, hence generally the size would not be available in the real-world use case (not in the mock program)?

Show 64 quoted lines
> To simplify the code we do not write "OUT <size>" for "abort" and
> "error" responses, too, as their size is always zero.
>
> Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
> ---
>  t/t0021-conversion.sh   | 6 +++---
>  t/t0021/rot13-filter.pl | 6 +++---
>  2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
> index 0139b460e7..0c04d346a1 100755
> --- a/t/t0021-conversion.sh
> +++ b/t/t0021-conversion.sh
> @@ -588,7 +588,7 @@ test_expect_success PERL 'process filter should restart after unexpected write f
>  		cat >expected.log <<-EOF &&
>  			START
>  			init handshake complete
> -			IN: smudge smudge-write-fail.r $SF [OK] -- OUT: $SF [WRITE FAIL]
> +			IN: smudge smudge-write-fail.r $SF [OK] -- [WRITE FAIL]
>  			START
>  			init handshake complete
>  			IN: smudge test.r $S [OK] -- OUT: $S . [OK]
> @@ -634,7 +634,7 @@ test_expect_success PERL 'process filter should not be restarted if it signals a
>  		cat >expected.log <<-EOF &&
>  			START
>  			init handshake complete
> -			IN: smudge error.r $SE [OK] -- OUT: 0 [ERROR]
> +			IN: smudge error.r $SE [OK] -- [ERROR]
>  			IN: smudge test.r $S [OK] -- OUT: $S . [OK]
>  			IN: smudge test2.r $S2 [OK] -- OUT: $S2 . [OK]
>  			STOP
> @@ -673,7 +673,7 @@ test_expect_success PERL 'process filter abort stops processing of all further f
>  		cat >expected.log <<-EOF &&
>  			START
>  			init handshake complete
> -			IN: smudge abort.r $SA [OK] -- OUT: 0 [ABORT]
> +			IN: smudge abort.r $SA [OK] -- [ABORT]
>  			STOP
>  		EOF
>  		test_cmp_exclude_clean expected.log debug.log &&
> diff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl
> index 0b943bb377..5e43faeec1 100644
> --- a/t/t0021/rot13-filter.pl
> +++ b/t/t0021/rot13-filter.pl
> @@ -153,9 +153,6 @@ while (1) {
>  		die "bad command '$command'";
>  	}
>  
> -	print $debug "OUT: " . length($output) . " ";
> -	$debug->flush();
> -
>  	if ( $pathname eq "error.r" ) {
>  		print $debug "[ERROR]\n";
>  		$debug->flush();
> @@ -178,6 +175,9 @@ while (1) {
>  			die "${command} write error";
>  		}
>  
> +		print $debug "OUT: " . length($output) . " ";
> +		$debug->flush();
> +
>  		while ( length($output) > 0 ) {
>  			my $packet = substr( $output, 0, $MAX_PACKET_CONTENT_SIZE );
>  			packet_bin_write($packet);
Previous: Lars SchneiderNext: Lars Schneider
Message 5 of 15 in “convert: add "status=delayed" to filter process protocol”
  1. 0/6 convert: add "status=delayed" to filter process protocolLars Schneider, Jun 27, 2017
  2. 1/6 t0021: keep filter log files on comparisonLars Schneider, Jun 27, 2017
  3. 2/6 t0021: make debug log file name configurableLars Schneider, Jun 27, 2017
  4. 3/6 t0021: write "OUT <size>" only on successLars Schneider, Jun 27, 2017
  5. Junio C HamanoJun 27, 2017
  6. Lars SchneiderJun 27, 2017
  7. Junio C HamanoJun 27, 2017
  8. 6/6 convert: add "status=delayed" to filter process protocolLars Schneider, Jun 27, 2017
  9. Junio C HamanoJun 27, 2017
  10. Lars SchneiderJun 27, 2017
  11. Junio C HamanoJun 27, 2017
  12. Lars SchneiderJun 27, 2017
  13. Lars SchneiderJun 27, 2017
  14. 5/6 convert: move multiple file filter error handling to separate functionLars Schneider, Jun 27, 2017
  15. 4/6 convert: put the flags field before the flag itself for consistent styleLars Schneider, Jun 27, 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.