Junio C Hamano <gitster@xxxxxxxxx> writes: > Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > >> Add another test to set prerequisite "external-grep" if the current >> build supports external grep. This can be used to skip external grep >> only tests on builds that do not support this optimization. > > Thanks. We seem to spell our prerequistes in a single-word, all-caps, so > I'll change this new one to EXTGREP in both [1/2] and [2/2]. Sorry, but I had this "Sheesh, why didn't I think of that earlier before wasting Nguyễn's time" moment. Why don't we just test what we _want to_ test? After all what a67e281 (grep: do not do external grep on skip-worktree entries, 2009-12-30) wanted to make sure was this: "git grep" (without --cached) should grep from the index for paths that are marked as skip-worktree. So how about writing some string that does not appear in the version in the index in the work tree file, and run "git grep" to make sure it doesn't find it? Yes, some implementations/builds of "git grep" may not even try to cheat and run external grep and for them the test _should_ succeed (but your logic to check with ce_skip_worktree() in grep_cache() may be broken by later patch while you are looking the other way), and some will try to cheat and the fix was about not letting them. 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 ' -- 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