From: Derrick Stolee <[email protected]>
Signed-off-by: Derrick Stolee <[email protected]>
---
t/helper/test-reach.c | 6 ++++++
t/t6600-test-reach.sh | 18 ++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c
index 8cc570f3b..29104d41a 100644
--- a/t/helper/test-reach.c
+++ b/t/helper/test-reach.c
@@ -8,6 +8,7 @@
int cmd__reach(int ac, const char **av)
{
struct object_id oid_A, oid_B;
+ struct commit *A, *B;
struct strbuf buf = STRBUF_INIT;
struct repository *r = the_repository;
@@ -16,6 +17,7 @@ int cmd__reach(int ac, const char **av)
if (ac < 2)
exit(1);
+ A = B = NULL;
while (strbuf_getline(&buf, stdin) != EOF) {
struct object_id oid;
@@ -43,10 +45,12 @@ int cmd__reach(int ac, const char **av)
switch (buf.buf[0]) {
case 'A':
oidcpy(&oid_A, &oid);
+ A = c;
break;
case 'B':
oidcpy(&oid_B, &oid);
+ B = c;
break;
default:
@@ -57,6 +61,8 @@ int cmd__reach(int ac, const char **av)
if (!strcmp(av[1], "ref_newer"))
printf("%s:%d\n", av[1], ref_newer(&oid_A, &oid_B));
+ else if (!strcmp(av[1], "in_merge_bases"))
+ printf("%s(A,B):%d\n", av[1], in_merge_bases(A, B));
exit(0);
}
diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh
index 4ffe0174d..d065f2602 100755
--- a/t/t6600-test-reach.sh
+++ b/t/t6600-test-reach.sh
@@ -83,4 +83,22 @@ test_expect_success 'ref_newer:hit' '
test_three_modes ref_newer
'
+test_expect_success 'in_merge_bases:hit' '
+ cat >input <<- EOF &&
+ A:commit-5-7
+ B:commit-8-8
+ EOF
+ printf "in_merge_bases(A,B):1\n" >expect &&
+ test_three_modes in_merge_bases
+'
+
+test_expect_success 'in_merge_bases:miss' '
+ cat >input <<- EOF &&
+ A:commit-6-8
+ B:commit-5-9
+ EOF
+ printf "in_merge_bases(A,B):0\n" >expect &&
+ test_three_modes in_merge_bases
+'
+
test_done
--
gitgitgadget