Re: [PATCH 1/2] t7002: set test prerequisite "external-grep" if supported
From: Johannes Sixt <hidden>
Date: 2016-06-15 22:47:58
Nguyen Thai Ngoc Duy schrieb:
On 1/7/10, Junio C Hamano [off-list ref] wrote:quoted
So by writing the test to check the desired outcome, instead of writing it for the particular implementation of using external grep optimization, you will catch both kinds of breakages. Perhaps something like this (untested, of course)? test_expect_success 'strings in work tree files are not found for skip-wt paths' ' no="no such string in the index" && test_must_fail git grep -e "$no" --cached file && git update-index --skip-worktree file && echo "$no" >file && test_must_fail git grep -e "$no" file && git update-index --no-skip-worktree file && git grep -e "$no" file 'Very well reasoned. I'd say go for it! Tested-by: me
The test is not quite complete. Not only do you want to test that the worktree file is not looked at, but that the index version is used: test_expect_success 'for skip-wt paths, strings are found in index, not in worktree' ' yes="this string is in the index" && no="no such string in the index" && echo "$yes" >file && git update-index file && echo "$no" >file && git grep -e "$yes" --cached file && test_must_fail git grep -e "$no" --cached file && git update-index --skip-worktree file && git grep -e "$yes" file && test_must_fail git grep -e "$no" file && git update-index --no-skip-worktree file && test_must_fail git grep -e "$yes" file && git grep -e "$no" file ' Just as untested... ;) -- Hannes