Junio C Hamano <gitster@xxxxxxxxx> writes: > Jeff King <peff@xxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html