evolve: test exchange through wireprotocol
authorPierre-Yves David <pierre-yves.david@fb.com>
Tue, 20 May 2014 23:57:48 -0700
changeset 943 5b8d9c2ab480
parent 942 010c7e4aa820
child 944 b71b563b17de
evolve: test exchange through wireprotocol The wireprotocol version of the exchange was only tested in the `simple4server.py` case.
tests/dummyssh
tests/test-wireproto.t
--- /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))
--- /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 <<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 ..
+