[PATCH] tests: unify test-update-branches

Adrian Buehlmann adrian at cadifra.com
Tue Sep 14 04:09:25 CDT 2010


# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1284454880 -7200
# Node ID f9e90f9e23e94605a415b51456f2da9cdfbd38bc
# Parent  4a6aa50f226dc9a8a28cb0533a227d36ddf30880
tests: unify test-update-branches

diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -433,7 +433,7 @@ def update(repo, node, branchmerge, forc
     the parent rev to the target rev (linear, on the same named
     branch, or on another named branch).
 
-    This logic is tested by test-update-branches.
+    This logic is tested by test-update-branches.t.
 
     -c  -C  dirty  rev  |  linear   same  cross
      n   n    n     n   |    ok     (1)     x
diff --git a/tests/test-update-branches.out b/tests/test-update-branches.out
deleted file mode 100644
--- a/tests/test-update-branches.out
+++ /dev/null
@@ -1,55 +0,0 @@
-% initial repo state
-
-@  5:e1bb631146ca  b1
-|
-o  4:a4fdb3b883c4 0:b608b9236435  b1
-|
-| o  3:4b57d2520816 1:44592833ba9f
-| |
-| | o  2:063f31070f65
-| |/
-| o  1:44592833ba9f
-|/
-o  0:b608b9236435
-
-% norevtest none clean linear 4
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=5
-% norevtest none clean same 2
-abort: crosses branches (use 'hg merge' or use 'hg update -c')
-parent=2
-% revtest none clean linear 1 2
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=2
-% revtest none clean same 2 3
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=3
-% revtest none clean cross 3 4
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=4
-% revtest none dirty linear 1 2
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=2
-M foo
-% revtest none dirty same 2 3
-abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes)
-parent=2
-M foo
-% revtest none dirty cross 3 4
-abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes)
-parent=3
-M foo
-% revtest -C dirty linear 1 2
-2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=2
-% revtest -c dirty linear 1 2
-abort: uncommitted local changes
-parent=1
-M foo
-% norevtest -c clean same 2
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-parent=3
-% revtest -cC dirty linear 1 2
-abort: cannot specify both -c/--check and -C/--clean
-parent=1
-M foo
diff --git a/tests/test-update-branches b/tests/test-update-branches.t
old mode 100755
new mode 100644
rename from tests/test-update-branches
rename to tests/test-update-branches.t
--- a/tests/test-update-branches
+++ b/tests/test-update-branches.t
@@ -1,5 +1,3 @@
-#!/bin/sh
-
 # Construct the following history tree:
 #
 # @  5:e1bb631146ca  b1
@@ -14,68 +12,119 @@
 # |/
 # o  0:b608b9236435
 
-hg init
-echo foo > foo
-echo zero > a
-hg ci -qAm0
-echo one > a ; hg ci -m1
-echo two > a ; hg ci -m2
-hg up -q 1
-echo three > a ; hg ci -qm3
-hg up -q 0
-hg branch -q b1
-echo four > a ; hg ci -qm4
-echo five > a ; hg ci -qm5
+  $ hg init
+  $ echo foo > foo
+  $ echo zero > a
+  $ hg ci -qAm0
+  $ echo one > a ; hg ci -m1
+  $ echo two > a ; hg ci -m2
+  $ hg up -q 1
+  $ echo three > a ; hg ci -qm3
+  $ hg up -q 0
+  $ hg branch -q b1
+  $ echo four > a ; hg ci -qm4
+  $ echo five > a ; hg ci -qm5
 
-echo % initial repo state
-echo
-hg --config 'extensions.graphlog=' \
-    glog --template '{rev}:{node|short} {parents} {branches}\n'
+Initial repo state:
 
-# Test helper functions.
+  $ hg --config 'extensions.graphlog=' \
+  >    glog --template '{rev}:{node|short} {parents} {branches}\n'
+  @  5:e1bb631146ca  b1
+  |
+  o  4:a4fdb3b883c4 0:b608b9236435  b1
+  |
+  | o  3:4b57d2520816 1:44592833ba9f
+  | |
+  | | o  2:063f31070f65
+  | |/
+  | o  1:44592833ba9f
+  |/
+  o  0:b608b9236435
+  
 
-revtest () {
-    msg=$1
-    dirtyflag=$2   # 'clean' or 'dirty'
-    startrev=$3
-    targetrev=$4
-    opt=$5
-    echo % revtest $msg $startrev $targetrev
-    hg up -qC $startrev
-    test $dirtyflag = dirty && echo dirty > foo
-    hg up $opt $targetrev
-    hg parent --template 'parent={rev}\n'
-    hg stat
-}    
+Test helper functions:
 
-norevtest () {
-    msg=$1
-    dirtyflag=$2   # 'clean' or 'dirty'
-    startrev=$3
-    opt=$4
-    echo % norevtest $msg $startrev
-    hg up -qC $startrev
-    test $dirtyflag = dirty && echo dirty > foo
-    hg up $opt
-    hg parent --template 'parent={rev}\n'
-    hg stat
-}    
+  $ revtest () {
+  >     msg=$1
+  >     dirtyflag=$2   # 'clean' or 'dirty'
+  >     startrev=$3
+  >     targetrev=$4
+  >     opt=$5
+  >     hg up -qC $startrev
+  >     test $dirtyflag = dirty && echo dirty > foo
+  >     hg up $opt $targetrev
+  >     hg parent --template 'parent={rev}\n'
+  >     hg stat
+  > }    
+
+  $ norevtest () {
+  >     msg=$1
+  >     dirtyflag=$2   # 'clean' or 'dirty'
+  >     startrev=$3
+  >     opt=$4
+  >     hg up -qC $startrev
+  >     test $dirtyflag = dirty && echo dirty > foo
+  >     hg up $opt
+  >     hg parent --template 'parent={rev}\n'
+  >     hg stat
+  > }    
 
 # Test cases are documented in a table in the update function of merge.py.
 # Cases are run as shown in that table, row by row.
 
-norevtest 'none clean linear' clean 4
-norevtest 'none clean same'   clean 2
+  $ norevtest 'none clean linear' clean 4
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=5
 
-revtest 'none clean linear' clean 1 2
-revtest 'none clean same'   clean 2 3
-revtest 'none clean cross'  clean 3 4
+  $ norevtest 'none clean same'   clean 2
+  abort: crosses branches (use 'hg merge' or use 'hg update -c')
+  parent=2
 
-revtest 'none dirty linear' dirty 1 2
-revtest 'none dirty same'   dirty 2 3
-revtest 'none dirty cross'  dirty 3 4
 
-revtest '-C dirty linear'   dirty 1 2 -C
-revtest '-c dirty linear'   dirty 1 2 -c
-norevtest '-c clean same'   clean 2 -c
-revtest '-cC dirty linear'  dirty 1 2 -cC
+  $ revtest 'none clean linear' clean 1 2
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=2
+
+  $ revtest 'none clean same'   clean 2 3
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=3
+
+  $ revtest 'none clean cross'  clean 3 4
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=4
+
+
+  $ revtest 'none dirty linear' dirty 1 2
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=2
+  M foo
+
+  $ revtest 'none dirty same'   dirty 2 3
+  abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes)
+  parent=2
+  M foo
+
+  $ revtest 'none dirty cross'  dirty 3 4
+  abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes)
+  parent=3
+  M foo
+
+
+  $ revtest '-C dirty linear'   dirty 1 2 -C
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=2
+
+  $ revtest '-c dirty linear'   dirty 1 2 -c
+  abort: uncommitted local changes
+  parent=1
+  M foo
+
+  $ norevtest '-c clean same'   clean 2 -c
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=3
+
+  $ revtest '-cC dirty linear'  dirty 1 2 -cC
+  abort: cannot specify both -c/--check and -C/--clean
+  parent=1
+  M foo
+


More information about the Mercurial-devel mailing list