[PATCH 1 of 2 STABLE] tests: add tests for remote hook output (issue4788)
Gregory Szorc
gregory.szorc at gmail.com
Fri Oct 23 23:41:09 UTC 2015
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1445643566 -3600
# Sat Oct 24 00:39:26 2015 +0100
# Branch stable
# Node ID e085712871663b249d47fa98408cb510f6facfb3
# Parent 27683c63f44cb58d02df2d4dc16f5ba3348d394c
tests: add tests for remote hook output (issue4788)
The added tests don't agree in their output. This demonstrates a
difference in `hg push` behavior between pre-bundle2 and bundle2.
A subsequent patch will attempt to restore some of the pre-bundle2
behavior to bundle2.
diff --git a/tests/test-ssh-bundle1.t b/tests/test-ssh-bundle1.t
--- a/tests/test-ssh-bundle1.t
+++ b/tests/test-ssh-bundle1.t
@@ -509,4 +509,31 @@ debug output
Got arguments 1:user at dummy 2:hg -R 'a repo' serve --stdio
Got arguments 1:user at dummy 2:hg -R remote serve --stdio
changegroup-in-remote hook: HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:ssh:127.0.0.1 (glob)
Got arguments 1:user at dummy 2:hg -R remote serve --stdio
+
+remote hook failure is attributed to remote
+
+ $ cat > $TESTTMP/failhook << EOF
+ > def hook(ui, repo, **kwargs):
+ > ui.write('hook failure!')
+ > return 1
+ > EOF
+
+ $ echo "pretxnchangegroup.fail = python:$TESTTMP/failhook:hook" >> remote/.hg/hgrc
+
+ $ hg -q --config ui.ssh="python '$TESTDIR/dummyssh'" clone ssh://user@dummy/remote hookout
+ $ cd hookout
+ $ touch hookfailure
+ $ hg -q commit -A -m 'remote hook failure'
+ $ hg --config ui.ssh="python '$TESTDIR/dummyssh'" push
+ pushing to ssh://user@dummy/remote
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+ remote: hook failure!transaction abort!
+ remote: rollback completed
+ remote: abort: pretxnchangegroup.fail hook failed
+ [1]
+
diff --git a/tests/test-ssh.t b/tests/test-ssh.t
--- a/tests/test-ssh.t
+++ b/tests/test-ssh.t
@@ -500,4 +500,31 @@ debug output
Got arguments 1:user at dummy 2:hg -R 'a repo' serve --stdio
Got arguments 1:user at dummy 2:hg -R remote serve --stdio
changegroup-in-remote hook: HG_BUNDLE2=1 HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:ssh:127.0.0.1 (glob)
Got arguments 1:user at dummy 2:hg -R remote serve --stdio
+
+remote hook failure is attributed to remote
+
+ $ cat > $TESTTMP/failhook << EOF
+ > def hook(ui, repo, **kwargs):
+ > ui.write('hook failure!')
+ > return 1
+ > EOF
+
+ $ echo "pretxnchangegroup.fail = python:$TESTTMP/failhook:hook" >> remote/.hg/hgrc
+
+ $ hg -q --config ui.ssh="python '$TESTDIR/dummyssh'" clone ssh://user@dummy/remote hookout
+ $ cd hookout
+ $ touch hookfailure
+ $ hg -q commit -A -m 'remote hook failure'
+ $ hg --config ui.ssh="python '$TESTDIR/dummyssh'" push
+ pushing to ssh://user@dummy/remote
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+ remote: hook failure!transaction abort!
+ remote: rollback completed
+ abort: pretxnchangegroup.fail hook failed
+ [255]
+
More information about the Mercurial-devel
mailing list