test-reach: add run_three_modes method

The 'test_three_modes' method assumes we are using the 'test-tool
reach' command for our test. However, we may want to use the data
shape of our commit graph and the three modes (no commit-graph,
full commit-graph, partial commit-graph) for other git commands.

Split test_three_modes to be a simple translation on a more general
run_three_modes method that executes the given command and tests
the actual output to the expected output.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee 2018-11-01 13:46:18 +00:00 committed by Junio C Hamano
parent aca4240f6a
commit 4b47a9a85e

View file

@ -53,18 +53,22 @@ test_expect_success 'setup' '
git config core.commitGraph true
'
test_three_modes () {
run_three_modes () {
test_when_finished rm -rf .git/objects/info/commit-graph &&
test-tool reach $1 <input >actual &&
"$@" <input >actual &&
test_cmp expect actual &&
cp commit-graph-full .git/objects/info/commit-graph &&
test-tool reach $1 <input >actual &&
"$@" <input >actual &&
test_cmp expect actual &&
cp commit-graph-half .git/objects/info/commit-graph &&
test-tool reach $1 <input >actual &&
"$@" <input >actual &&
test_cmp expect actual
}
test_three_modes () {
run_three_modes test-tool reach "$@"
}
test_expect_success 'ref_newer:miss' '
cat >input <<-\EOF &&
A:commit-5-7