t6600-test-reach: generalize *_three_modes

In a preparatory step to implement generation number v2, we add tests to
ensure Git can read and parse commit-graph files without Generation Data
chunk. These files represent commit-graph files written by Old Git and
are neccesary for backward compatability.

We extend run_three_modes() and test_three_modes() to *_all_modes() with
the fourth mode being "commit-graph without generation data chunk".

Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com>
Reviewed-by: Taylor Blau <me@ttaylorr.com>
Reviewed-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Abhishek Kumar 2021-01-16 18:11:11 +00:00 committed by Junio C Hamano
parent f90fca638e
commit c0ef139843

View file

@ -58,7 +58,7 @@ test_expect_success 'setup' '
git config core.commitGraph true git config core.commitGraph true
' '
run_three_modes () { run_all_modes () {
test_when_finished rm -rf .git/objects/info/commit-graph && test_when_finished rm -rf .git/objects/info/commit-graph &&
"$@" <input >actual && "$@" <input >actual &&
test_cmp expect actual && test_cmp expect actual &&
@ -70,8 +70,8 @@ run_three_modes () {
test_cmp expect actual test_cmp expect actual
} }
test_three_modes () { test_all_modes () {
run_three_modes test-tool reach "$@" run_all_modes test-tool reach "$@"
} }
test_expect_success 'ref_newer:miss' ' test_expect_success 'ref_newer:miss' '
@ -80,7 +80,7 @@ test_expect_success 'ref_newer:miss' '
B:commit-4-9 B:commit-4-9
EOF EOF
echo "ref_newer(A,B):0" >expect && echo "ref_newer(A,B):0" >expect &&
test_three_modes ref_newer test_all_modes ref_newer
' '
test_expect_success 'ref_newer:hit' ' test_expect_success 'ref_newer:hit' '
@ -89,7 +89,7 @@ test_expect_success 'ref_newer:hit' '
B:commit-2-3 B:commit-2-3
EOF EOF
echo "ref_newer(A,B):1" >expect && echo "ref_newer(A,B):1" >expect &&
test_three_modes ref_newer test_all_modes ref_newer
' '
test_expect_success 'in_merge_bases:hit' ' test_expect_success 'in_merge_bases:hit' '
@ -98,7 +98,7 @@ test_expect_success 'in_merge_bases:hit' '
B:commit-8-8 B:commit-8-8
EOF EOF
echo "in_merge_bases(A,B):1" >expect && echo "in_merge_bases(A,B):1" >expect &&
test_three_modes in_merge_bases test_all_modes in_merge_bases
' '
test_expect_success 'in_merge_bases:miss' ' test_expect_success 'in_merge_bases:miss' '
@ -107,7 +107,7 @@ test_expect_success 'in_merge_bases:miss' '
B:commit-5-9 B:commit-5-9
EOF EOF
echo "in_merge_bases(A,B):0" >expect && echo "in_merge_bases(A,B):0" >expect &&
test_three_modes in_merge_bases test_all_modes in_merge_bases
' '
test_expect_success 'in_merge_bases_many:hit' ' test_expect_success 'in_merge_bases_many:hit' '
@ -117,7 +117,7 @@ test_expect_success 'in_merge_bases_many:hit' '
X:commit-5-7 X:commit-5-7
EOF EOF
echo "in_merge_bases_many(A,X):1" >expect && echo "in_merge_bases_many(A,X):1" >expect &&
test_three_modes in_merge_bases_many test_all_modes in_merge_bases_many
' '
test_expect_success 'in_merge_bases_many:miss' ' test_expect_success 'in_merge_bases_many:miss' '
@ -127,7 +127,7 @@ test_expect_success 'in_merge_bases_many:miss' '
X:commit-8-6 X:commit-8-6
EOF EOF
echo "in_merge_bases_many(A,X):0" >expect && echo "in_merge_bases_many(A,X):0" >expect &&
test_three_modes in_merge_bases_many test_all_modes in_merge_bases_many
' '
test_expect_success 'in_merge_bases_many:miss-heuristic' ' test_expect_success 'in_merge_bases_many:miss-heuristic' '
@ -137,7 +137,7 @@ test_expect_success 'in_merge_bases_many:miss-heuristic' '
X:commit-6-6 X:commit-6-6
EOF EOF
echo "in_merge_bases_many(A,X):0" >expect && echo "in_merge_bases_many(A,X):0" >expect &&
test_three_modes in_merge_bases_many test_all_modes in_merge_bases_many
' '
test_expect_success 'is_descendant_of:hit' ' test_expect_success 'is_descendant_of:hit' '
@ -148,7 +148,7 @@ test_expect_success 'is_descendant_of:hit' '
X:commit-1-1 X:commit-1-1
EOF EOF
echo "is_descendant_of(A,X):1" >expect && echo "is_descendant_of(A,X):1" >expect &&
test_three_modes is_descendant_of test_all_modes is_descendant_of
' '
test_expect_success 'is_descendant_of:miss' ' test_expect_success 'is_descendant_of:miss' '
@ -159,7 +159,7 @@ test_expect_success 'is_descendant_of:miss' '
X:commit-7-6 X:commit-7-6
EOF EOF
echo "is_descendant_of(A,X):0" >expect && echo "is_descendant_of(A,X):0" >expect &&
test_three_modes is_descendant_of test_all_modes is_descendant_of
' '
test_expect_success 'get_merge_bases_many' ' test_expect_success 'get_merge_bases_many' '
@ -174,7 +174,7 @@ test_expect_success 'get_merge_bases_many' '
git rev-parse commit-5-6 \ git rev-parse commit-5-6 \
commit-4-7 | sort commit-4-7 | sort
} >expect && } >expect &&
test_three_modes get_merge_bases_many test_all_modes get_merge_bases_many
' '
test_expect_success 'reduce_heads' ' test_expect_success 'reduce_heads' '
@ -196,7 +196,7 @@ test_expect_success 'reduce_heads' '
commit-2-8 \ commit-2-8 \
commit-1-10 | sort commit-1-10 | sort
} >expect && } >expect &&
test_three_modes reduce_heads test_all_modes reduce_heads
' '
test_expect_success 'can_all_from_reach:hit' ' test_expect_success 'can_all_from_reach:hit' '
@ -219,7 +219,7 @@ test_expect_success 'can_all_from_reach:hit' '
Y:commit-8-1 Y:commit-8-1
EOF EOF
echo "can_all_from_reach(X,Y):1" >expect && echo "can_all_from_reach(X,Y):1" >expect &&
test_three_modes can_all_from_reach test_all_modes can_all_from_reach
' '
test_expect_success 'can_all_from_reach:miss' ' test_expect_success 'can_all_from_reach:miss' '
@ -241,7 +241,7 @@ test_expect_success 'can_all_from_reach:miss' '
Y:commit-8-5 Y:commit-8-5
EOF EOF
echo "can_all_from_reach(X,Y):0" >expect && echo "can_all_from_reach(X,Y):0" >expect &&
test_three_modes can_all_from_reach test_all_modes can_all_from_reach
' '
test_expect_success 'can_all_from_reach_with_flag: tags case' ' test_expect_success 'can_all_from_reach_with_flag: tags case' '
@ -264,7 +264,7 @@ test_expect_success 'can_all_from_reach_with_flag: tags case' '
Y:commit-8-1 Y:commit-8-1
EOF EOF
echo "can_all_from_reach_with_flag(X,_,_,0,0):1" >expect && echo "can_all_from_reach_with_flag(X,_,_,0,0):1" >expect &&
test_three_modes can_all_from_reach_with_flag test_all_modes can_all_from_reach_with_flag
' '
test_expect_success 'commit_contains:hit' ' test_expect_success 'commit_contains:hit' '
@ -280,8 +280,8 @@ test_expect_success 'commit_contains:hit' '
X:commit-9-3 X:commit-9-3
EOF EOF
echo "commit_contains(_,A,X,_):1" >expect && echo "commit_contains(_,A,X,_):1" >expect &&
test_three_modes commit_contains && test_all_modes commit_contains &&
test_three_modes commit_contains --tag test_all_modes commit_contains --tag
' '
test_expect_success 'commit_contains:miss' ' test_expect_success 'commit_contains:miss' '
@ -297,8 +297,8 @@ test_expect_success 'commit_contains:miss' '
X:commit-9-3 X:commit-9-3
EOF EOF
echo "commit_contains(_,A,X,_):0" >expect && echo "commit_contains(_,A,X,_):0" >expect &&
test_three_modes commit_contains && test_all_modes commit_contains &&
test_three_modes commit_contains --tag test_all_modes commit_contains --tag
' '
test_expect_success 'rev-list: basic topo-order' ' test_expect_success 'rev-list: basic topo-order' '
@ -310,7 +310,7 @@ test_expect_success 'rev-list: basic topo-order' '
commit-6-2 commit-5-2 commit-4-2 commit-3-2 commit-2-2 commit-1-2 \ commit-6-2 commit-5-2 commit-4-2 commit-3-2 commit-2-2 commit-1-2 \
commit-6-1 commit-5-1 commit-4-1 commit-3-1 commit-2-1 commit-1-1 \ commit-6-1 commit-5-1 commit-4-1 commit-3-1 commit-2-1 commit-1-1 \
>expect && >expect &&
run_three_modes git rev-list --topo-order commit-6-6 run_all_modes git rev-list --topo-order commit-6-6
' '
test_expect_success 'rev-list: first-parent topo-order' ' test_expect_success 'rev-list: first-parent topo-order' '
@ -322,7 +322,7 @@ test_expect_success 'rev-list: first-parent topo-order' '
commit-6-2 \ commit-6-2 \
commit-6-1 commit-5-1 commit-4-1 commit-3-1 commit-2-1 commit-1-1 \ commit-6-1 commit-5-1 commit-4-1 commit-3-1 commit-2-1 commit-1-1 \
>expect && >expect &&
run_three_modes git rev-list --first-parent --topo-order commit-6-6 run_all_modes git rev-list --first-parent --topo-order commit-6-6
' '
test_expect_success 'rev-list: range topo-order' ' test_expect_success 'rev-list: range topo-order' '
@ -334,7 +334,7 @@ test_expect_success 'rev-list: range topo-order' '
commit-6-2 commit-5-2 commit-4-2 \ commit-6-2 commit-5-2 commit-4-2 \
commit-6-1 commit-5-1 commit-4-1 \ commit-6-1 commit-5-1 commit-4-1 \
>expect && >expect &&
run_three_modes git rev-list --topo-order commit-3-3..commit-6-6 run_all_modes git rev-list --topo-order commit-3-3..commit-6-6
' '
test_expect_success 'rev-list: range topo-order' ' test_expect_success 'rev-list: range topo-order' '
@ -346,7 +346,7 @@ test_expect_success 'rev-list: range topo-order' '
commit-6-2 commit-5-2 commit-4-2 \ commit-6-2 commit-5-2 commit-4-2 \
commit-6-1 commit-5-1 commit-4-1 \ commit-6-1 commit-5-1 commit-4-1 \
>expect && >expect &&
run_three_modes git rev-list --topo-order commit-3-8..commit-6-6 run_all_modes git rev-list --topo-order commit-3-8..commit-6-6
' '
test_expect_success 'rev-list: first-parent range topo-order' ' test_expect_success 'rev-list: first-parent range topo-order' '
@ -358,7 +358,7 @@ test_expect_success 'rev-list: first-parent range topo-order' '
commit-6-2 \ commit-6-2 \
commit-6-1 commit-5-1 commit-4-1 \ commit-6-1 commit-5-1 commit-4-1 \
>expect && >expect &&
run_three_modes git rev-list --first-parent --topo-order commit-3-8..commit-6-6 run_all_modes git rev-list --first-parent --topo-order commit-3-8..commit-6-6
' '
test_expect_success 'rev-list: ancestry-path topo-order' ' test_expect_success 'rev-list: ancestry-path topo-order' '
@ -368,7 +368,7 @@ test_expect_success 'rev-list: ancestry-path topo-order' '
commit-6-4 commit-5-4 commit-4-4 commit-3-4 \ commit-6-4 commit-5-4 commit-4-4 commit-3-4 \
commit-6-3 commit-5-3 commit-4-3 \ commit-6-3 commit-5-3 commit-4-3 \
>expect && >expect &&
run_three_modes git rev-list --topo-order --ancestry-path commit-3-3..commit-6-6 run_all_modes git rev-list --topo-order --ancestry-path commit-3-3..commit-6-6
' '
test_expect_success 'rev-list: symmetric difference topo-order' ' test_expect_success 'rev-list: symmetric difference topo-order' '
@ -382,7 +382,7 @@ test_expect_success 'rev-list: symmetric difference topo-order' '
commit-3-8 commit-2-8 commit-1-8 \ commit-3-8 commit-2-8 commit-1-8 \
commit-3-7 commit-2-7 commit-1-7 \ commit-3-7 commit-2-7 commit-1-7 \
>expect && >expect &&
run_three_modes git rev-list --topo-order commit-3-8...commit-6-6 run_all_modes git rev-list --topo-order commit-3-8...commit-6-6
' '
test_expect_success 'get_reachable_subset:all' ' test_expect_success 'get_reachable_subset:all' '
@ -402,7 +402,7 @@ test_expect_success 'get_reachable_subset:all' '
commit-1-7 \ commit-1-7 \
commit-5-6 | sort commit-5-6 | sort
) >expect && ) >expect &&
test_three_modes get_reachable_subset test_all_modes get_reachable_subset
' '
test_expect_success 'get_reachable_subset:some' ' test_expect_success 'get_reachable_subset:some' '
@ -420,7 +420,7 @@ test_expect_success 'get_reachable_subset:some' '
git rev-parse commit-3-3 \ git rev-parse commit-3-3 \
commit-1-7 | sort commit-1-7 | sort
) >expect && ) >expect &&
test_three_modes get_reachable_subset test_all_modes get_reachable_subset
' '
test_expect_success 'get_reachable_subset:none' ' test_expect_success 'get_reachable_subset:none' '
@ -434,7 +434,7 @@ test_expect_success 'get_reachable_subset:none' '
Y:commit-2-8 Y:commit-2-8
EOF EOF
echo "get_reachable_subset(X,Y)" >expect && echo "get_reachable_subset(X,Y)" >expect &&
test_three_modes get_reachable_subset test_all_modes get_reachable_subset
' '
test_done test_done