Re: [PATCH v2] tests: add initial bash completion tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/4/13 Junio C Hamano <gitster@xxxxxxxxx>:
> SZEDER Gábor <szeder@xxxxxxxxxx> writes:
>
>>> +_get_comp_words_by_ref ()
>>> +{
>>> +    while [ $# -gt 0 ]; do
>>> +            case "$1" in
>>> +            cur)
>>> +                    cur=${_words[_cword]}
>>> +                    ;;
>>> +            prev)
>>> +                    prev=${_words[_cword-1]}
>>> +                    ;;
>>> +            words)
>>> +                    words=("${_words[@]}")
>>> +                    ;;
>>> +            cword)
>>> +                    cword=$_cword
>>> +                    ;;
>>> +            esac
>>> +            shift
>>> +    done
>>> +}
>>
>> Git's completion script already implements this function.  Why
>> override it here?
>
> It is not "already implements" that I am worried about, but it implements
> it differently without explaining why, which is worrying.  I agree it
> needs to be explained before the function.
>>> +    # plumbing
>>> +    ! grep -q "^ls-files \$" out
>>
>> The && is missing here at the end of the line.
>
> True.
>
>>> +    run_completion "git f" &&
>>> +    ! grep -q -v "^f" out
>>
>> grep is not a git command, so I'm not sure, but shouldn't these use
>> 'test_must_fail grep' instead of '! grep'?
>
> "! grep" is fine.  We are not trying to catch the case where we break the
> implementation of "grep" to cause it to segfault.

--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -27,6 +27,9 @@ complete ()

 . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash"

+# We don't need this function to actually join words or do anything special.
+# Also, it's more clean to avoid touching bash's internal completion variables.
+# So let's override it with a minimal version for testing purposes.
 _get_comp_words_by_ref ()
 {
        while [ $# -gt 0 ]; do
@@ -77,7 +80,7 @@ test_expect_success 'basic' '
        # script
        grep -q "^filter-branch \$" out &&
        # plumbing
-       ! grep -q "^ls-files \$" out
+       ! grep -q "^ls-files \$" out &&

        run_completion "git f" &&
        ! grep -q -v "^f" out

-- 
Felipe Contreras
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]