Page MenuHomePhabricator

tests: add tests for server-side linknode adjustment with wireprotov2

Authored by indygreg on Dec 10 2018, 2:43 PM.



The current implementation of linknode serving in wireprotov2 simply
serves up the linkrev/linknode as stored: it doesn't attempt to
adjust the linknode to what the receiver is aware of. This can result
in the client seeing a linknode referencing a changeset that is unknown
to it.

This commit adds test coverage of that scenario.

The tests in test-wireproto-command-filesdata.t demonstrate two failures.
First, the linknode refers to a changeset not in the available set.
Second, the server doesn't send a file revision that it should have
(because of linkrev filtering).

The test in test-wireproto-exchange.t demonstrates that the lack of
a file revision results in a corrupted repository on the client.

Diff Detail

rHG Mercurial
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.