Signed-off-by: Derrick Stolee <dsto...@microsoft.com>
---
 t/helper/test-reach.c |  2 ++
 t/t6600-test-reach.sh | 25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c
index 88639a2945..14aaef5bff 100644
--- a/t/helper/test-reach.c
+++ b/t/helper/test-reach.c
@@ -89,6 +89,8 @@ int cmd__reach(int ac, const char **av)
                printf("%s:%d\n", av[1], ref_newer(&oid_A, &oid_B));
        else if (!strcmp(av[1], "in_merge_base"))
                printf("%s:%d\n", av[1], in_merge_bases(A, B));
+       else if (!strcmp(av[1], "is_descendant_of"))
+               printf("%s(A,X):%d\n", av[1], is_descendant_of(A, list_X));
        else if (!strcmp(av[1], "get_merge_bases_many")) {
                struct commit_list *list = get_merge_bases_many(A, nr_X, X);
                printf("%s(A,X):\n", av[1]);
diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh
index ef25e70174..62655ae650 100755
--- a/t/t6600-test-reach.sh
+++ b/t/t6600-test-reach.sh
@@ -78,6 +78,31 @@ test_expect_success 'ref_newer:miss' '
        test_reach_two_modes ref_newer
 '
 
+test_expect_success 'is_descendant_of:hit' '
+       cat >input <<- EOF &&
+       A:commit-5-7
+       X:commit-4-8
+       X:commit-6-6
+       X:commit-1-1
+       EOF
+       cat >expect <<- EOF &&
+       is_descendant_of(A,X):1
+       EOF
+       test_reach_two_modes is_descendant_of
+'
+
+test_expect_success 'is_descendant_of:miss' '
+       cat >input <<- EOF &&
+       A:commit-5-7
+       X:commit-4-8
+       X:commit-6-6
+       EOF
+       cat >expect <<- EOF &&
+       is_descendant_of(A,X):0
+       EOF
+       test_reach_two_modes is_descendant_of
+'
+
 test_expect_success 'reduce_heads' '
        cat >input <<- EOF &&
        X:commit-1-10
-- 
2.18.0.118.gd4f65b8d14

Reply via email to