Mercurial > hg
annotate tests/test-mq-qsave.t @ 37543:01361be9e2dc
wireproto: introduce a reactor for client-side state
We have a nice state machine of sorts for reacting to server-side
events. Now it is time to implement the client equivalent.
We introduce a "clientreactor." It allows callers to request
that commands be issued. It has multiple modes of operation to
reflect what the underlying transport supports. e.g. for SSH,
we can perform wire sends immediately but for HTTP we need to
buffer sends until all command requests are received. In addition,
SSH allows sending multiple requests as long as the connection is
open. But HTTP/1.1 only allows sending request data once.
For SSH, we'll have one reactor per connection. For HTTP, we'll
have one reactor per HTTP request. But because code that calls
wire protocol commands should not be aware of how the underlying
transport works, this will all be abstracted away by the peer
interface.
Our crude HTTP peer has been updated to use the reactor instead
of formulating frames directly. No behavior should have changed
here and tests seem to confirm that.
Basic unit tests for the reactor behavior have been added.
Differential Revision: https://phab.mercurial-scm.org/D3223
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 09 Apr 2018 15:32:01 -0700 |
parents | b701610f6c56 |
children | 55c6ebd11cb9 |
rev | line source |
---|---|
12324
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
1 $ echo "[extensions]" >> $HGRCPATH |
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
2 $ echo "mq=" >> $HGRCPATH |
2817
ff3edd1c1e27
Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff
changeset
|
3 |
12324
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
4 $ hg init |
2817
ff3edd1c1e27
Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff
changeset
|
5 |
12324
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
6 $ echo 'base' > base |
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
7 $ hg ci -Ambase |
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
8 adding base |
2817
ff3edd1c1e27
Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff
changeset
|
9 |
12324
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
10 $ hg qnew -mmqbase mqbase |
2817
ff3edd1c1e27
Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff
changeset
|
11 |
12324
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
12 $ hg qsave |
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
13 $ hg qrestore 2 |
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
14 restoring status: hg patches saved state |
b701610f6c56
tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents:
2990
diff
changeset
|
15 |