t1092: use GIT_PROGRESS_DELAY for consistent results

The t1092-sparse-checkout-compatibility.sh tests compare the stdout and stderr for several Git commands across both full checkouts, sparse checkouts with a full index, and sparse checkouts with a sparse index. Since these are direct comparisons, sometimes a progress indicator can flush at unpredictable points, especially on slower machines. This causes the tests to be flaky. One standard way to avoid this is to add GIT_PROGRESS_DELAY=0 to the Git commands that are run, as this will force every progress indicator created with start_progress_delay() to be created immediately. However, there are some progress indicators that are created in the case of a full index that are not created with a sparse index. Moreover, their values may be different as those indexes have a different number of entries. Instead, use GIT_PROGRESS_DELAY=-1 (which will turn into UINT_MAX) to ensure that any reasonable machine running these tests would never display delayed progress indicators. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Derrick Stolee committed May 24, 2021 at 19:55 UTC e2b05746e15bad24803300122f2d95118617ca60
1 file changed +3 -3
t/t1092-sparse-checkout-compatibility.sh
+3 -3
@@ -106,18 +106,18 @@ init_repos () {
106 run_on_sparse () {
107 (
108 cd sparse-checkout &&
109 - "$@" >../sparse-checkout-out 2>../sparse-checkout-err
109 + GIT_PROGRESS_DELAY=-1 "$@" >../sparse-checkout-out 2>../sparse-checkout-err
110 ) &&
111 (
112 cd sparse-index &&
113 - "$@" >../sparse-index-out 2>../sparse-index-err
113 + GIT_PROGRESS_DELAY=-1 "$@" >../sparse-index-out 2>../sparse-index-err
114 )
115 }
116
117 run_on_all () {
118 (
119 cd full-checkout &&
120 - "$@" >../full-checkout-out 2>../full-checkout-err
120 + GIT_PROGRESS_DELAY=-1 "$@" >../full-checkout-out 2>../full-checkout-err
121 ) &&
122 run_on_sparse "$@"
123 }