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

Re: $PATH pollution and t9902-completion.sh

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 20, 2012, 19:55 UTC
Message-ID
<7vobho4hxa.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vk3sc606f.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 10 quoted lines
> Jeff King <peff@peff.net> writes:
>
>>   2. Loosen the test to look for the presence of "checkout", but not
>>      fail when other items are present. Bonus points if it makes sure
>>      that everything returned starts with "check".
>>
>> I think (2) is the ideal solution in terms of behavior, but writing it
>> may be more of a pain.
>
> Yeah, I think (2) is the way to go.
The beginning of such a change may look like the attached patch.

If we want to go for the bonus points, we would either add another parameter "prefix" to the test_completion function, or introduce the test_complete_command function that takes that prefix parameter, and in addition to making sure lines from "expect" is fully contained in the "actual", make sure that output from

	comm -13 expect.sorted actual.sorted
all begin with that "prefix" string, perhaps with
	grep -v "^$prefix"

or something. The test_fully_contains function needs to be renamed if somebody goes that additional step.

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 3cd53f8..5fab389 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -54,10 +54,16 @@ run_completion ()
 	__git_wrap__git_main && print_comp
 }
 
+test_fully_contains () {
+	sort "$1" >expect.sorted &&
+	sort "$2" >actual.sorted &&
+	test $(comm -23 expect.sorted actual.sorted | wc -l) = 0
+}
+
 # Test high-level completion
 # Arguments are:
 # 1: typed text so far (cur)
-# 2: expected completion
+# 2: expected completion (if missing, this is read from stdin)
 test_completion ()
 {
 	if test $# -gt 1
@@ -67,7 +73,7 @@ test_completion ()
 		sed -e 's/Z$//' >expected
 	fi &&
 	run_completion "$1" &&
-	test_cmp expected out
+	test_fully_contains expected out
 }
 
 # Test __gitcomp.
Previous: Junio C HamanoNext: Jeff King
Message 6 of 10 in “$PATH pollution and t9902-completion.sh”
  1. Adam SpiersDec 17, 2012
  2. Jeff KingDec 20, 2012
  3. Adam SpiersDec 20, 2012
  4. Torsten BögershausenDec 20, 2012
  5. Junio C HamanoDec 20, 2012
  6. Junio C HamanoDec 20, 2012
  7. Jeff KingDec 20, 2012
  8. Torsten BögershausenDec 20, 2012
  9. Junio C HamanoDec 20, 2012
  10. Jeff KingDec 20, 2012

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.