# HG changeset patch # User Pierre-Yves David # Date 1400655468 25200 # Node ID 5b8d9c2ab4802eac4d84d11e49f01e0bdbb03faa # Parent 010c7e4aa8204b6a921ec39427c880ea4beeda73 evolve: test exchange through wireprotocol The wireprotocol version of the exchange was only tested in the `simple4server.py` case. diff -r 010c7e4aa820 -r 5b8d9c2ab480 tests/dummyssh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/dummyssh Tue May 20 23:57:48 2014 -0700 @@ -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)) diff -r 010c7e4aa820 -r 5b8d9c2ab480 tests/test-wireproto.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-wireproto.t Tue May 20 23:57:48 2014 -0700 @@ -0,0 +1,128 @@ + + $ cat >> $HGRCPATH < [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 .. +