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

Re: [PATCH 4/6] t0021/rot13-filter: add packet_initialize()

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 27, 2017, 02:57 UTC
Message-ID
<xmqqr2tpcn6g.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<xmqqvaj8dlyz.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
> It is fine to leave the original code broken at this step while we
> purely move the lines around, and hopefully this will be corrected
> in a later step in the series (I am responding as I read on, so I do
> not yet know at which patch that happens in this series).

Actually, I think you'd probably be better off if you fixed these broken comparisions that does (@list1 eq @list2) very early in the series, perhaps as [PATCH 0.8/6].

I am sure Perl experts among us on the list can come up with a cleaner and better implementation of compare_lists sub I am adding here, but in the meantime, here is what I would start with if I were working on this topic.

Thanks.
 t/t0021/rot13-filter.pl | 35 ++++++++++++++++++++++++++++-------
 1 file changed, 28 insertions(+), 7 deletions(-)
diff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl
index ad685d92f8..9bf5a756af 100644
--- a/t/t0021/rot13-filter.pl
+++ b/t/t0021/rot13-filter.pl
@@ -107,21 +107,42 @@ sub packet_flush {
 	STDOUT->flush();
 }
 
+sub compare_lists {
+	my ($expect, @result) = @_;
+	my $ix;
+	if (scalar @$expect != scalar @result) {
+		return undef;
+	}
+	for ($ix = 0; $ix < $#result; $ix++) {
+		if ($expect->[$ix] ne $result[$ix]) {
+			return undef;
+		}
+	}
+	return 1;
+}
+
 print $debug "START\n";
 $debug->flush();
 
-( packet_txt_read() eq ( 0, "git-filter-client" ) ) || die "bad initialize";
-( packet_txt_read() eq ( 0, "version=2" ) )         || die "bad version";
-( packet_bin_read() eq ( 1, "" ) )                  || die "bad version end";
+compare_lists([0, "git-filter-client"], packet_txt_read()) ||
+	die "bad initialize";
+compare_lists([0, "version=2"], packet_txt_read()) ||
+	die "bad version";
+compare_lists([1, ""], packet_bin_read()) ||
+	die "bad version end";
 
 packet_txt_write("git-filter-server");
 packet_txt_write("version=2");
 packet_flush();
 
-( packet_txt_read() eq ( 0, "capability=clean" ) )  || die "bad capability";
-( packet_txt_read() eq ( 0, "capability=smudge" ) ) || die "bad capability";
-( packet_txt_read() eq ( 0, "capability=delay" ) )  || die "bad capability";
-( packet_bin_read() eq ( 1, "" ) )                  || die "bad capability end";
+compare_lists([0, "capability=clean"], packet_txt_read()) ||
+	die "bad capability";
+compare_lists([0, "capability=smudge"], packet_txt_read()) ||
+	die "bad capability";
+compare_lists([0, "capability=delay"], packet_txt_read()) ||
+	die "bad capability";
+compare_lists([1, ""], packet_bin_read()) ||
+	die "bad capability end";
 
 foreach (@capabilities) {
 	packet_txt_write( "capability=" . $_ );
Previous: Junio C HamanoNext: Christian Couder
Message 16 of 32 in “Create Git/Packet.pm”
  1. 0/6 Create Git/Packet.pmChristian Couder, Oct 19, 2017
  2. 1/6 t0021/rot13-filter: refactor packet reading functionsChristian Couder, Oct 19, 2017
  3. Stefan BellerOct 19, 2017
  4. Junio C HamanoOct 22, 2017
  5. Christian CouderNov 5, 2017
  6. 3/6 t0021/rot13-filter: improve error messageChristian Couder, Oct 19, 2017
  7. 5/6 t0021/rot13-filter: add capability functionsChristian Couder, Oct 19, 2017
  8. Junio C HamanoOct 22, 2017
  9. Christian CouderNov 4, 2017
  10. Junio C HamanoNov 5, 2017
  11. 6/6 Add Git/Packet.pm from parts of t0021/rot13-filter.plChristian Couder, Oct 19, 2017
  12. Stefan BellerOct 19, 2017
  13. 2/6 t0021/rot13-filter: improve 'if .. elsif .. else' styleChristian Couder, Oct 19, 2017
  14. 4/6 t0021/rot13-filter: add packet_initialize()Christian Couder, Oct 19, 2017
  15. Junio C HamanoOct 22, 2017
  16. Junio C HamanoOct 27, 2017
  17. Christian CouderOct 27, 2017
  18. Lars SchneiderOct 28, 2017
  19. Junio C HamanoOct 29, 2017
  20. Junio C HamanoOct 22, 2017
  21. Philip OakleyOct 23, 2017
  22. Jeff KingOct 30, 2017
  23. Johannes SchindelinOct 25, 2017
  24. Junio C HamanoOct 26, 2017
  25. Jacob KellerOct 26, 2017
  26. Bryan TurnerOct 26, 2017
  27. Bryan TurnerOct 26, 2017
  28. Johannes SchindelinOct 27, 2017
  29. Johannes SchindelinOct 27, 2017
  30. Junio C HamanoOct 30, 2017
  31. Christian CouderOct 30, 2017
  32. Johannes SchindelinOct 30, 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.