Subject: [PATCH jn/pager-lv-default-env] pager test: make fake pager consume all its input

From: Jonathan Nieder <[email-masked]>
Date: Thu, 30 Jan 2014 08:42:32 -0800

Otherwise there is a race: if 'git log' finishes writing before the
pager terminates and closes the pipe, all is well, and if the pager
finishes quickly enough then 'git log' terminates with SIGPIPE.

 died of signal 13 at /build/buildd/git-1.9~rc1/t/test-terminal.perl line 33.
 not ok 6 - LESS and LV envvars are set for pagination

Noticed on Ubuntu PPA builders, where the race was lost about half the
time.  Compare v1.7.0.2~6^2 (tests: Fix race condition in t7006-pager,
2010-02-22).

Reported-by: Anders Kaseorg <[email-masked]>
Signed-off-by: Jonathan Nieder <[email-masked]>
---
Anders Kaseorg wrote:
> On 01/06/2014 09:14 PM, Jonathan Nieder wrote:

>> +		PAGER="env >pager-env.out" &&
>> +		export PAGER &&
>> +
>> +		test_terminal git log
[...]
> On the Ubuntu PPA builders, I’m seeing this new test fail with
> SIGPIPE about half the time:
>
> died of signal 13 at /build/buildd/git-1.9~rc1/t/test-terminal.perl line 33.
> not ok 6 - LESS and LV envvars are set for pagination

Good catch.  Sorry for the trouble.

 t/t7006-pager.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 7fe3367..b9365b4 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -40,7 +40,7 @@ test_expect_failure TTY 'pager runs from subdir' '
 test_expect_success TTY 'LESS and LV envvars are set for pagination' '
 	(
 		sane_unset LESS LV &&
-		PAGER="env >pager-env.out" &&
+		PAGER="env >pager-env.out; wc" &&
 		export PAGER &&
 
 		test_terminal git log
-- 
1.9.rc1.175.g0b1dcb5