Junio C Hamano <[email protected]> writes:
> Jeff King <[email protected]> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html