tests: consolidate test-push-http.t and test-push-http-bundle1.t
These tests were initially copies of each other. Now that we have
#testcases support in .t tests, we can consolidate them.
The changes to test-push-http.t reflect the differences between that
file and test-push-http-bundle1.t.
The variances in phases push behavior are the biggest differences.
The test will be updated in a subsequent commit to make the differences
more clear and to expand test coverage. For now, let's just port
the differences verbatim to get the tests consolidated.
--- a/tests/test-push-http-bundle1.t Sun Feb 18 08:52:57 2018 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-#require killdaemons
-
-This test checks behavior related to bundle1 that changed or is likely
-to change with bundle2. Feel free to factor out any part of the test
-which does not need to exist to keep bundle1 working.
-
- $ cat << EOF >> $HGRCPATH
- > [devel]
- > # This test is dedicated to interaction through old bundle
- > legacy.exchange = bundle1
- > EOF
-
- $ hg init test
- $ cd test
- $ echo a > a
- $ hg ci -Ama
- adding a
- $ cd ..
- $ hg clone test test2
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd test2
- $ echo a >> a
- $ hg ci -mb
- $ req() {
- > hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
- > cat hg.pid >> $DAEMON_PIDS
- > hg --cwd ../test2 push http://localhost:$HGPORT/
- > exitstatus=$?
- > killdaemons.py
- > echo % serve errors
- > cat errors.log
- > return $exitstatus
- > }
- $ cd ../test
-
-expect ssl error
-
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- abort: HTTP Error 403: ssl required
- % serve errors
- [255]
-
-expect authorization error
-
- $ echo '[web]' > .hg/hgrc
- $ echo 'push_ssl = false' >> .hg/hgrc
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- abort: authorization failed
- % serve errors
- [255]
-
-expect authorization error: must have authorized user
-
- $ echo 'allow_push = unperson' >> .hg/hgrc
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- abort: authorization failed
- % serve errors
- [255]
-
-expect success
-
- $ cat > $TESTTMP/hook.sh <<'EOF'
- > echo "phase-move: $HG_NODE: $HG_OLDPHASE -> $HG_PHASE"
- > EOF
-
- $ cat >> .hg/hgrc <<EOF
- > allow_push = *
- > [hooks]
- > changegroup = sh -c "printenv.py changegroup 0"
- > pushkey = sh -c "printenv.py pushkey 0"
- > txnclose-phase.test = sh $TESTTMP/hook.sh
- > EOF
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
- remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
- % serve errors
- $ hg rollback
- repository tip rolled back to revision 0 (undo serve)
-
-expect success, server lacks the httpheader capability
-
- $ CAP=httpheader
- $ . "$TESTDIR/notcapable"
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
- remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
- % serve errors
- $ hg rollback
- repository tip rolled back to revision 0 (undo serve)
-
-expect success, server lacks the unbundlehash capability
-
- $ CAP=unbundlehash
- $ . "$TESTDIR/notcapable"
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
- remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
- % serve errors
- $ hg rollback
- repository tip rolled back to revision 0 (undo serve)
-
-expect success, pre-d1b16a746db6 server supports the unbundle capability, but
-has no parameter
-
- $ cat <<EOF > notcapable-unbundleparam.py
- > from mercurial import extensions, httppeer
- > def capable(orig, self, name):
- > if name == 'unbundle':
- > return True
- > return orig(self, name)
- > def uisetup(ui):
- > extensions.wrapfunction(httppeer.httppeer, 'capable', capable)
- > EOF
- $ cp $HGRCPATH $HGRCPATH.orig
- $ cat <<EOF >> $HGRCPATH
- > [extensions]
- > notcapable-unbundleparam = `pwd`/notcapable-unbundleparam.py
- > EOF
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
- remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: * (glob)
- % serve errors
- $ hg rollback
- repository tip rolled back to revision 0 (undo serve)
- $ mv $HGRCPATH.orig $HGRCPATH
-
-expect push success, phase change failure
-
- $ cat > .hg/hgrc <<EOF
- > [web]
- > push_ssl = false
- > allow_push = *
- > [hooks]
- > prepushkey = sh -c "printenv.py prepushkey 1"
- > EOF
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- % serve errors
-
-expect phase change success
-
- $ cat >> .hg/hgrc <<EOF
- > prepushkey = sh -c "printenv.py prepushkey 0"
- > EOF
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- no changes found
- % serve errors
- [1]
- $ hg rollback
- repository tip rolled back to revision 0 (undo serve)
-
-expect authorization error: all users denied
-
- $ echo '[web]' > .hg/hgrc
- $ echo 'push_ssl = false' >> .hg/hgrc
- $ echo 'deny_push = *' >> .hg/hgrc
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- abort: authorization failed
- % serve errors
- [255]
-
-expect authorization error: some users denied, users must be authenticated
-
- $ echo 'deny_push = unperson' >> .hg/hgrc
- $ req
- pushing to http://localhost:$HGPORT/
- searching for changes
- abort: authorization failed
- % serve errors
- [255]
-
- $ cd ..
--- a/tests/test-push-http.t Sun Feb 18 08:52:57 2018 -0800
+++ b/tests/test-push-http.t Sun Feb 18 10:00:34 2018 -0800
@@ -1,5 +1,15 @@
#require killdaemons
+#testcases bundle1 bundle2
+
+#if bundle1
+ $ cat << EOF >> $HGRCPATH
+ > [devel]
+ > # This test is dedicated to interaction through old bundle
+ > legacy.exchange = bundle1
+ > EOF
+#endif
+
$ hg init test
$ cd test
$ echo a > a
@@ -76,7 +86,8 @@
remote: added 1 changesets with 1 changes to 1 files
remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
+ remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle1 !)
+ remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle2 !)
% serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
@@ -94,7 +105,8 @@
remote: added 1 changesets with 1 changes to 1 files
remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
+ remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle1 !)
+ remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle2 !)
% serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
@@ -112,7 +124,8 @@
remote: added 1 changesets with 1 changes to 1 files
remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
- remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
+ remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle1 !)
+ remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle2 !)
% serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
@@ -160,6 +173,22 @@
> [devel]
> legacy.exchange=phases
> EOF
+
+#if bundle1
+
+ $ req
+ pushing to http://localhost:$HGPORT/
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+ % serve errors
+
+#endif
+
+#if bundle2
+
$ req
pushing to http://localhost:$HGPORT/
searching for changes
@@ -175,13 +204,32 @@
% serve errors
[255]
+#endif
+
expect phase change success
$ cat >> .hg/hgrc <<EOF
+ > [hooks]
> prepushkey = sh -c "printenv.py prepushkey 0"
> [devel]
> legacy.exchange=
> EOF
+
+#if bundle1
+
+ $ req
+ pushing to http://localhost:$HGPORT/
+ searching for changes
+ no changes found
+ % serve errors
+ [1]
+ $ hg rollback
+ repository tip rolled back to revision 0 (undo serve)
+
+#endif
+
+#if bundle2
+
$ req
pushing to http://localhost:$HGPORT/
searching for changes
@@ -193,6 +241,8 @@
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
+#endif
+
expect authorization error: all users denied
$ echo '[web]' > .hg/hgrc
@@ -215,6 +265,8 @@
% serve errors
[255]
+#if bundle2
+
$ cat > .hg/hgrc <<EOF
> [web]
> push_ssl = false
@@ -231,4 +283,6 @@
remote: added 1 changesets with 1 changes to 1 files
% serve errors
+#endif
+
$ cd ..