Mercurial > hg > evolve
changeset 1038:5b8d9c2ab480
evolve: test exchange through wireprotocol
The wireprotocol version of the exchange was only tested in the
`simple4server.py` case.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Tue, 20 May 2014 23:57:48 -0700 |
parents | 010c7e4aa820 |
children | b71b563b17de |
files | tests/dummyssh tests/test-wireproto.t |
diffstat | 2 files changed, 152 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100755 --- /dev/null +++ b/tests/dummyssh @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +import sys +import os + +os.chdir(os.getenv('TESTTMP')) + +if sys.argv[1] != "user@dummy": + sys.exit(-1) + +os.environ["SSH_CLIENT"] = "127.0.0.1 1 2" + +log = open("dummylog", "ab") +log.write("Got arguments") +for i, arg in enumerate(sys.argv[1:]): + log.write(" %d:%s" % (i + 1, arg)) +log.write("\n") +log.close() +hgcmd = sys.argv[2] +if os.name == 'nt': + # hack to make simple unix single quote quoting work on windows + hgcmd = hgcmd.replace("'", '"') +r = os.system(hgcmd) +sys.exit(bool(r))
new file mode 100644 --- /dev/null +++ b/tests/test-wireproto.t @@ -0,0 +1,128 @@ + + $ cat >> $HGRCPATH <<EOF + > [defaults] + > amend=-d "0 0" + > [ui] + > ssh=python "$TESTDIR/dummyssh" + > [phases] + > publish = False + > [extensions] + > hgext.rebase= + > EOF + $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH + + $ mkcommit() { + > echo "$1" > "$1" + > hg add "$1" + > hg ci -m "add $1" + > } + +setup repo + + $ hg init server + + $ hg clone ssh://user@dummy/server client + no changes found + OBSEXC: pull obsolescence markers + OBSEXC: looking for common markers in 0 nodes + OBSEXC: no unknown remote markers + OBSEXC: DONE + updating to branch default + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cp -r client other + +Smoke testing +=============== + + $ cd client + $ mkcommit 0 + $ mkcommit a + $ hg push + pushing to ssh://user@dummy/server + searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 2 changesets with 2 changes to 2 files + $ hg pull + pulling from ssh://user@dummy/server + searching for changes + no changes found + OBSEXC: pull obsolescence markers + OBSEXC: looking for common markers in 2 nodes + OBSEXC: no unknown remote markers + OBSEXC: DONE + $ hg pull -R ../other + pulling from ssh://user@dummy/server + requesting all changes + adding changesets + adding manifests + adding file changes + added 2 changesets with 2 changes to 2 files + OBSEXC: pull obsolescence markers + OBSEXC: looking for common markers in 2 nodes + OBSEXC: no unknown remote markers + OBSEXC: DONE + (run 'hg update' to get a working copy) + $ hg push -R ../other + pushing to ssh://user@dummy/server + searching for changes + no changes found + [1] + +Push +============= + + $ echo 'A' > a + $ hg amend + $ hg push + pushing to ssh://user@dummy/server + searching for changes + OBSEXC: computing relevant nodes + OBSEXC: looking for common markers in 2 nodes + OBSEXC: computing markers relevant to 1 nodes + OBSEXC: writing 2 markers + OBSEXC: pushing 171 bytes + OBSEXC: DONE + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 1 changesets with 1 changes to 1 files (+1 heads) + $ hg push + pushing to ssh://user@dummy/server + searching for changes + no changes found + OBSEXC: computing relevant nodes + OBSEXC: looking for common markers in [23] nodes (re) + OBSEXC: markers already in sync + OBSEXC: no marker to push + OBSEXC: DONE + [1] + +Pull +============= + + $ hg -R ../other pull + pulling from ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) + OBSEXC: pull obsolescence markers + OBSEXC: looking for common markers in [23] nodes (re) + OBSEXC: merging obsolescence markers (171 bytes) + OBSEXC: 2 markers added + OBSEXC: DONE + (run 'hg heads' to see heads) + $ hg -R ../other pull + pulling from ssh://user@dummy/server + searching for changes + no changes found + OBSEXC: pull obsolescence markers + OBSEXC: looking for common markers in [23] nodes (re) + OBSEXC: no unknown remote markers + OBSEXC: DONE + + $ cd .. +