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 <klyles@epic.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
2e7b89e038
commit
68c57590d3
|
@ -179,22 +179,26 @@ init_repos_as_submodules () {
|
|||
}
|
||||
|
||||
run_on_sparse () {
|
||||
cat >run-on-sparse-input &&
|
||||
|
||||
(
|
||||
cd sparse-checkout &&
|
||||
GIT_PROGRESS_DELAY=100000 "$@" >../sparse-checkout-out 2>../sparse-checkout-err
|
||||
) &&
|
||||
) <run-on-sparse-input &&
|
||||
(
|
||||
cd sparse-index &&
|
||||
GIT_PROGRESS_DELAY=100000 "$@" >../sparse-index-out 2>../sparse-index-err
|
||||
)
|
||||
) <run-on-sparse-input
|
||||
}
|
||||
|
||||
run_on_all () {
|
||||
cat >run-on-all-input &&
|
||||
|
||||
(
|
||||
cd full-checkout &&
|
||||
GIT_PROGRESS_DELAY=100000 "$@" >../full-checkout-out 2>../full-checkout-err
|
||||
) &&
|
||||
run_on_sparse "$@"
|
||||
) <run-on-all-input &&
|
||||
run_on_sparse "$@" <run-on-all-input
|
||||
}
|
||||
|
||||
test_all_match () {
|
||||
|
@ -221,7 +225,7 @@ test_sparse_unstaged () {
|
|||
done
|
||||
}
|
||||
|
||||
# Usage: test_sprase_checkout_set "<c1> ... <cN>" "<s1> ... <sM>"
|
||||
# Usage: test_sparse_checkout_set "<c1> ... <cN>" "<s1> ... <sM>"
|
||||
# Verifies that "git sparse-checkout set <c1> ... <cN>" succeeds and
|
||||
# leaves the sparse index in a state where <s1> ... <sM> are sparse
|
||||
# directories (and <c1> ... <cN> are not).
|
||||
|
|
Loading…
Reference in New Issue