Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jan 2022 17:15:49 +0100] rev 48655
test: do not use `which` to find an exec path in the test
Posix is deprecated `which` in favor of `command -v`… which does not provide the same feature.
Debian is warning about this deprecation and this get annoying.
Differential Revision: https://phab.mercurial-scm.org/D11983
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jan 2022 18:17:55 +0100] rev 48654
stream-clone: stop considering working copy only requirements
Now that the ducks are properly aligned on there shelve, it becomes easy to fix
the list of requirements to consider for stream. We remove the working copy
specific ones and add some missing revlog specific ones.
Differential Revision: https://phab.mercurial-scm.org/D11982
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 00:19:04 +0100] rev 48653
stream-clone: also filter the requirement we put in the bundle 2
We were wrongly putting irrelevant requirements in the bundle and the receiving
side was getting confused, treating them as being missing while still putting
them in the `requires` file. Leading do corrupted repositories.
This changes fix stream-clone behavior regarding format when bundle-2 is
involved, so we now also test this cases.
Behavior with older version of Mercurial will be fine as they filter the
requirements they get from the bundle on their side anyway.
Differential Revision: https://phab.mercurial-scm.org/D12084
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 12:44:20 +0100] rev 48652
requirements: add an official `REVLOG_COMPRESSION_ZSTD` const
Such constant was missing and its value was missing from the set of requirements
that needs to be preserved through stream clone. This did not had any
consequence yet as the "bundle 2 does not filter its requirements" is shadowing
the issue.
However we are now in a situation where we can fix this issue. So lets do it
next.
With the preparation work on test, changing the streamreqs value only impact two
tests, where checking the full value seems to remains relevant.
Important note: Since older version of Mercurial used the old `supportedformat`
class attribute to check for stream requirement they supported, older version
will consider this requirements to prevent them from using streaming clone. Even
as they support this requirements for years. Pack for stable will be send to fix
it, but they will have to be backported to older version if needed.
Differential Revision: https://phab.mercurial-scm.org/D12083
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 20:35:04 +0100] rev 48651
stream-requirements: smoother matching in test-http-protocol.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12082
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 12:21:13 +0100] rev 48650
stream-requirements: smoother matching in test-ssh-bundle1.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12081
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 12:02:50 +0100] rev 48649
stream-requirements: smoother matching in test-ssh-proto.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12080
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 10:50:20 +0100] rev 48648
stream-requirements: smoother matching in test-hgweb-commands.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12079
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 10:50:08 +0100] rev 48647
stream-requirements: smoother matching in test-treemanifest.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12078
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 10:49:43 +0100] rev 48646
stream-requirements: smoother matching in test-ssh-proto-unbundle.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12077
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 12:58:18 +0100] rev 48645
test-bundle: split some variant in there own section
Same rational as the previous commit about test-bundle.t. These line are quite
volatile and having dedicated block will make their update clearer and simpler.
Differential Revision: https://phab.mercurial-scm.org/D12076
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 15:27:51 +0100] rev 48644
test-bundle: split each variant in there own section
Having conditional line matching for this kind of big block is quite
inconvenient to update. The new way should be simpler to maintain.
Differential Revision: https://phab.mercurial-scm.org/D12075
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 01:28:16 +0100] rev 48643
test-http-bad-server: abstract the `streamreqs` value
Now that socket closing are decided much closer to the actual closure, we can
use fuzzy matching for this part of the exchange that changes on a regular
basis.
This should make fixing bug in stream requirements and enabling new format much
simpler.
Differential Revision: https://phab.mercurial-scm.org/D12074
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:57:47 +0100] rev 48642
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases. This patch is the last of such changes, for both sent and recv
cases.
Differential Revision: https://phab.mercurial-scm.org/D12073
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:25:57 +0100] rev 48641
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12072
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:19:05 +0100] rev 48640
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12071
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:04:10 +0100] rev 48639
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12070
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jan 2022 19:51:00 +0100] rev 48638
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12069
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jan 2022 19:49:42 +0100] rev 48637
test-http-bad-server: introduce socket closing after reading a pattern
We introduce the `close-after-recv-patterns` option. It has the same goal as
`close-after-send-patterns` with a slightly different implementation.
Reading "up to a pattern" is hard. As we can only check the pattern from what we
have already read (inlike writing, were we can check what we are about to
write).
So instead we make the `close-after-recv-patterns` alter the behavior of the
existing `close-after-recv-bytes`. The value from `close-after-recv-bytes` only
gets into play after we have seen the pattern from `close-after-recv-patterns`.
This allow us to achieve the target benefit without changing the read pattern
too much.
Differential Revision: https://phab.mercurial-scm.org/D12068
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 18:22:13 +0100] rev 48636
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12067
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 18:01:59 +0100] rev 48635
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12066
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 17:54:31 +0100] rev 48634
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12065
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 17:53:06 +0100] rev 48633
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12064
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 17:49:59 +0100] rev 48632
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12063
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 17:40:02 +0100] rev 48631
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12062
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 17:06:01 +0100] rev 48630
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12061
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 17:00:58 +0100] rev 48629
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12060
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:27:13 +0100] rev 48628
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12059
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:23:44 +0100] rev 48627
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12058
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:22:10 +0100] rev 48626
test-http-bad-server: move on test from bytes-count to pattern
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
Differential Revision: https://phab.mercurial-scm.org/D12057