grep: add tests for --threads=N and grep.threads

Add tests for --threads=N being supplied on the command-line, or when grep.threads=N being supplied in the configuration. When the threading support was made run-time configurable in commit 89f09dd34e ("grep: add --threads=<num> option and grep.threads configuration", 2015-12-15) no tests were added for it. In developing a change to the grep code I was able to make '--threads=1 <pat>` segfault, while the test suite still passed. This change fixes that blind spot in the tests. In addition to asserting that asking for N threads shouldn't segfault, test that the grep output given any N is the same. The choice to test only 1..10 as opposed to 1..8 or 1..16 or whatever is arbitrary. Testing 1..1024 works locally for me (but gets noticeably slower as more threads are spawned). Given the structure of the code there's no reason to test an arbitrary number of threads, only 0, 1 and >=2 are special modes of operation. A later patch introduces a PTHREADS test prerequisite which is true under NO_PTHREADS=UnfortunatelyYes, but even under NO_PTHREADS it's fine to test --threads=N, we'll just ignore it and not use threading. So these tests also make sense under that mode to assert that --threads=N without pthreads still returns expected results. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ævar Arnfjörð Bjarmason committed May 20, 2017 at 21:42 UTC c5813658f762792bcd0f418ba0dac50f0626d2b9
1 file changed +16
t/t7810-grep.sh
+16
@@ -775,6 +775,22 @@ test_expect_success 'grep -W with userdiff' '
775 test_cmp expected actual
776 '
777
778 +for threads in $(test_seq 0 10)
779 +do
780 + test_expect_success "grep --threads=$threads & -c grep.threads=$threads" "
781 + git grep --threads=$threads . >actual.$threads &&
782 + if test $threads -ge 1
783 + then
784 + test_cmp actual.\$(($threads - 1)) actual.$threads
785 + fi &&
786 + git -c grep.threads=$threads grep . >actual.$threads &&
787 + if test $threads -ge 1
788 + then
789 + test_cmp actual.\$(($threads - 1)) actual.$threads
790 + fi
791 + "
792 +done
793 +
794 test_expect_success 'grep from a subdirectory to search wider area (1)' '
795 mkdir -p s &&
796 (