tests: consolidate test-push-http.t and test-push-http-bundle1.t stable
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 18 Feb 2018 10:00:34 -0800
branchstable
changeset 36242 477280637646
parent 36241 fefd57bd9573
child 36243 c19e66dacaa1
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.
tests/test-push-http-bundle1.t
tests/test-push-http.t
--- 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 ..