test-reach: test can_all_from_reach_with_flags
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 20 Jul 2018 16:33:23 +0000 (16:33 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Jul 2018 22:38:56 +0000 (15:38 -0700)
commit1792bc125069e3e5b59f0158e259335a07aa7cf5
tree7cba7abe78e320a43ab5caa54ae509fefb4741b6
parent0c89f715d06082216cc312dcd39e09cb80f7aad7
test-reach: test can_all_from_reach_with_flags

The can_all_from_reach_with_flags method is used by ok_to_give_up in
upload-pack.c to see if we have done enough negotiation during a fetch.
This method is intentionally created to preserve state between calls to
assist with stateful negotiation, such as over SSH.

To make this method testable, add a new can_all_from_reach method that
does the initial setup and final tear-down. We will later use this
method in production code. Call the method from 'test-tool reach' for
now.

Since this is a many-to-many reachability query, add a new type of input
to the 'test-tool reach' input format. Lines "Y:<committish>" create a
list of commits to be the reachability targets from the commits in the
'X' list. In the context of fetch negotiation, the 'X' commits are the
'want' commits and the 'Y' commits are the 'have' commits.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit-reach.c
commit-reach.h
t/helper/test-reach.c
t/t6600-test-reach.sh