From: Derrick Stolee <dsto...@microsoft.com>

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

diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c
index 97c726040..73cb55208 100644
--- a/t/helper/test-reach.c
+++ b/t/helper/test-reach.c
@@ -85,6 +85,13 @@ int cmd__reach(int ac, const char **av)
                        printf("%s\n", oid_to_hex(&list->item->object.oid));
                        list = list->next;
                }
+       } else if (!strcmp(av[1], "reduce_heads")) {
+               struct commit_list *list = reduce_heads(X);
+               printf("%s(X):\n", av[1]);
+               while (list) {
+                       printf("%s\n", oid_to_hex(&list->item->object.oid));
+                       list = list->next;
+               }
        }
 
        exit(0);
diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh
index 19e39ad7c..e365a4ea6 100755
--- a/t/t6600-test-reach.sh
+++ b/t/t6600-test-reach.sh
@@ -138,4 +138,26 @@ test_expect_success 'get_merge_bases_many' '
        test_three_modes get_merge_bases_many
 '
 
+test_expect_success 'reduce_heads' '
+       cat >input <<-\EOF &&
+               X:commit-1-10
+               X:commit-2-8
+               X:commit-3-6
+               X:commit-4-4
+               X:commit-1-7
+               X:commit-2-5
+               X:commit-3-3
+               X:commit-5-1
+       EOF
+       {
+               printf "reduce_heads(X):\n" &&
+               git rev-parse commit-5-1 &&
+               git rev-parse commit-4-4 &&
+               git rev-parse commit-3-6 &&
+               git rev-parse commit-2-8 &&
+               git rev-parse commit-1-10
+       } >expect &&
+       test_three_modes reduce_heads
+'
+
 test_done
-- 
gitgitgadget

Reply via email to