changeset 2767:ab80ef8d0cfa

test: extract most fold testing into a test-fold module
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 23 Jul 2017 16:39:21 +0200
parents 83ad13719e26
children 85e5a56db776
files tests/test-evolve.t tests/test-fold.t
diffstat 2 files changed, 208 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test-evolve.t	Sun Jul 23 06:25:30 2017 +0200
+++ b/tests/test-evolve.t	Sun Jul 23 16:39:21 2017 +0200
@@ -683,48 +683,13 @@
   
 
 Test fold
+(most of the testing have been moved to test-fold
 
   $ rm *.orig
-  $ hg fold
-  abort: no revisions specified
-  [255]
-  $ hg fold --from
-  abort: no revisions specified
-  [255]
-  $ hg fold .
-  abort: must specify either --from or --exact
-  [255]
-  $ hg fold --from . --exact
-  abort: cannot use both --from and --exact
-  [255]
-  $ hg fold --from .
-  single revision specified, nothing to fold
-  [1]
-  $ hg fold 0::10 --rev 1 --exact
-  abort: cannot fold non-linear revisions (multiple heads given)
-  [255]
-  $ hg fold -r 4 -r 6 --exact
-  abort: cannot fold non-linear revisions (multiple roots given)
-  [255]
-  $ hg fold --from 10 1
-  abort: cannot fold non-linear revisions
-  (given revisions are unrelated to parent of working directory)
-  [255]
-  $ hg fold --exact -r "4 and not 4"
-  abort: specified revisions evaluate to an empty set
-  (use different revision arguments)
-  [255]
   $ hg phase --public 0
-  $ hg fold --from -r 0
-  abort: cannot fold public revisions
-  [255]
   $ hg fold --from -r 5
   3 changesets folded
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg fold --from 6 # want to run hg fold 6
-  abort: hidden revision '6'!
-  (use --hidden to access hidden revisions; successor: af636757ce3b)
-  [255]
   $ hg log -r 11 --template '{desc}\n'
   add 3
   
@@ -1363,6 +1328,9 @@
   ~
 
 Check that fold respects the allowunstable option
+
+(most of this has been moved to test-fold.t)
+
   $ hg up edc3c9de504e
   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
   $ mkcommit unstableifparentisfolded
@@ -1380,14 +1348,6 @@
   |
   ~
 
-  $ hg fold --exact "19 + 18"
-  abort: cannot fold chain not ending with a head or with branching
-  (new unstable changesets are not allowed)
-  [255]
-  $ hg fold --exact "18::29"
-  abort: cannot fold chain not ending with a head or with branching
-  (new unstable changesets are not allowed)
-  [255]
   $ hg fold --exact "19::"
   2 changesets folded
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-fold.t	Sun Jul 23 16:39:21 2017 +0200
@@ -0,0 +1,204 @@
+  $ . $TESTDIR/testlib/common.sh
+
+setup
+
+  $ cat >> $HGRCPATH <<EOF
+  > [defaults]
+  > fold=-d "0 0"
+  > [extensions]
+  > evolve=
+  > [ui]
+  > logtemplate = '{rev} - {node|short} {desc|firstline} [{author}] ({phase})\n'
+  > EOF
+
+  $ hg init fold-tests
+  $ cd fold-tests/
+  $ hg debugbuilddag .+3:branchpoint+4*branchpoint+2
+  $ hg up 'desc("r7")'
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg log -G
+  o  10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
+  |
+  o  9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
+  |
+  o  8 - abf57d94268b r8 [debugbuilddag] (draft)
+  |
+  | @  7 - 4de32a90b66c r7 [debugbuilddag] (draft)
+  | |
+  | o  6 - f69452c5b1af r6 [debugbuilddag] (draft)
+  | |
+  | o  5 - c8d03c1b5e94 r5 [debugbuilddag] (draft)
+  | |
+  | o  4 - bebd167eb94d r4 [debugbuilddag] (draft)
+  |/
+  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+  |
+  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+  |
+  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+  |
+  o  0 - 1ea73414a91b r0 [debugbuilddag] (draft)
+  
+
+Test various error case
+
+  $ hg fold
+  abort: no revisions specified
+  [255]
+  $ hg fold --from
+  abort: no revisions specified
+  [255]
+  $ hg fold .
+  abort: must specify either --from or --exact
+  [255]
+  $ hg fold --from . --exact
+  abort: cannot use both --from and --exact
+  [255]
+  $ hg fold --from .
+  single revision specified, nothing to fold
+  [1]
+  $ hg fold '0::(7+10)' --exact
+  abort: cannot fold non-linear revisions (multiple heads given)
+  [255]
+  $ hg fold -r 4 -r 6 --exact
+  abort: cannot fold non-linear revisions (multiple roots given)
+  [255]
+  $ hg fold --from 10 1
+  abort: cannot fold non-linear revisions
+  (given revisions are unrelated to parent of working directory)
+  [255]
+  $ hg fold --exact -r "4 and not 4"
+  abort: specified revisions evaluate to an empty set
+  (use different revision arguments)
+  [255]
+  $ hg phase --public 0
+  $ hg fold --from -r 0
+  abort: cannot fold public revisions
+  [255]
+
+Test actual folding
+
+  $ hg fold --from -r 'desc("r5")'
+  3 changesets folded
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+(test inherited from test-evolve.t)
+
+  $ hg fold --from 6 # want to run hg fold 6
+  abort: hidden revision '6'!
+  (use --hidden to access hidden revisions; successor: 198b5c405d01)
+  [255]
+
+  $ hg log -G
+  @  11 - 198b5c405d01 r5 [debugbuilddag] (draft)
+  |
+  | o  10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
+  | |
+  | o  9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
+  | |
+  | o  8 - abf57d94268b r8 [debugbuilddag] (draft)
+  | |
+  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
+  |/
+  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+  |
+  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+  |
+  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+  |
+  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
+  
+
+test fold --exact
+
+  $ hg fold --exact 'desc("r8") + desc("r10")'
+  abort: cannot fold non-linear revisions (multiple roots given)
+  [255]
+  $ hg fold --exact 'desc("r8")::desc("r10")'
+  3 changesets folded
+  $ hg log -G
+  o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
+  |
+  | @  11 - 198b5c405d01 r5 [debugbuilddag] (draft)
+  | |
+  | o  4 - bebd167eb94d r4 [debugbuilddag] (draft)
+  |/
+  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+  |
+  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+  |
+  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+  |
+  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
+  
+
+Test allow unstable
+
+  $ echo a > a
+  $ hg add a
+  $ hg commit '-m r11'
+  $ hg up '.^'
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg log -G
+  o  13 - 14d0e0da8e91 r11 [test] (draft)
+  |
+  | o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
+  | |
+  @ |  11 - 198b5c405d01 r5 [debugbuilddag] (draft)
+  | |
+  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
+  |/
+  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+  |
+  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+  |
+  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+  |
+  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
+  
+
+  $ cat << EOF >> .hg/hgrc
+  > [experimental]
+  > evolution = createmarkers, allnewcommands
+  > EOF
+  $ hg fold --from 'desc("r4")'
+  abort: cannot fold chain not ending with a head or with branching
+  (new unstable changesets are not allowed)
+  [255]
+  $ hg fold --from 'desc("r3")::desc("r11")'
+  abort: cannot fold chain not ending with a head or with branching
+  (new unstable changesets are not allowed)
+  [255]
+
+test --user variant
+
+  $ cat << EOF >> .hg/hgrc
+  > [experimental]
+  > evolution = createmarkers, allnewcommands
+  > EOF
+  $ cat << EOF >> .hg/hgrc
+  > [experimental]
+  > evolution = all
+  > EOF
+
+  $ hg fold --exact 'desc("r5") + desc("r11")' --user 'Victor Rataxes <victor@rhino.savannah>'
+  2 changesets folded
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg log -G
+  @  14 - 29b470a33594 r5 [Victor Rataxes <victor@rhino.savannah>] (draft)
+  |
+  | o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
+  | |
+  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
+  |/
+  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+  |
+  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+  |
+  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+  |
+  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
+  
+
+  $ cd ..
+