Skip to content

Commit 68c5759

Browse files
Kevin Lylesgitster
authored andcommitted
t1092: allow run_on_* functions to use standard input
The 'run_on_sparse' and 'run_on_all' functions do not work correctly for commands accepting standard input, because they run the same command multiple times and the first instance consumes it. This also indirectly affects 'test_all_match' and 'test_sparse_match'. To allow these functions to work with commands accepting standard input, first slurp standard input to a temporary file, and then run the command with its standard input redirected from the temporary file. This ensures that each command sees the same contents from its standard input. Note that this does not impact commands that do not read from standard input; they continue to ignore it. Additionally, existing uses of the run_on_* functions do not need to do anything differently, as the standard input of the test environment is already connected to /dev/null. We do not explicitly clean up the input files because they are cleaned up with the rest of the test repositories and their contents may be useful for figuring out which command failed when a test case fails. Signed-off-by: Kevin Lyles <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 2e7b89e commit 68c5759

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

t/t1092-sparse-checkout-compatibility.sh

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,22 +179,26 @@ init_repos_as_submodules () {
179179
}
180180

181181
run_on_sparse () {
182+
cat >run-on-sparse-input &&
183+
182184
(
183185
cd sparse-checkout &&
184186
GIT_PROGRESS_DELAY=100000 "$@" >../sparse-checkout-out 2>../sparse-checkout-err
185-
) &&
187+
) <run-on-sparse-input &&
186188
(
187189
cd sparse-index &&
188190
GIT_PROGRESS_DELAY=100000 "$@" >../sparse-index-out 2>../sparse-index-err
189-
)
191+
) <run-on-sparse-input
190192
}
191193

192194
run_on_all () {
195+
cat >run-on-all-input &&
196+
193197
(
194198
cd full-checkout &&
195199
GIT_PROGRESS_DELAY=100000 "$@" >../full-checkout-out 2>../full-checkout-err
196-
) &&
197-
run_on_sparse "$@"
200+
) <run-on-all-input &&
201+
run_on_sparse "$@" <run-on-all-input
198202
}
199203

200204
test_all_match () {
@@ -221,7 +225,7 @@ test_sparse_unstaged () {
221225
done
222226
}
223227

224-
# Usage: test_sprase_checkout_set "<c1> ... <cN>" "<s1> ... <sM>"
228+
# Usage: test_sparse_checkout_set "<c1> ... <cN>" "<s1> ... <sM>"
225229
# Verifies that "git sparse-checkout set <c1> ... <cN>" succeeds and
226230
# leaves the sparse index in a state where <s1> ... <sM> are sparse
227231
# directories (and <c1> ... <cN> are not).

0 commit comments

Comments
 (0)