changeset 580:6cc99298b69e

tests: avoid changing the current directory Mercurial allows specifying which repository to use via the -R/--repository option. Git allows a similar function using the --git-dir option. By using these options, in many cases we can avoid checking the current directory. This makes tests easier to understand, as you don't need to remember which directory you're in to understand what's going on. It also makes tests easier to write, as you don't need to remember to cd out of a directory when you're done doing things there. Thanks to Felipe Contreras for the patch which this was based on.
author David M. Carr <david@carrclan.us>
date Sat, 03 Nov 2012 19:12:08 -0400
parents 675f19af79ca
children 52461f71a782
files tests/test-clone.t tests/test-conflict-1.t tests/test-conflict-2.t tests/test-convergedmerge.t tests/test-empty-working-tree.t tests/test-encoding.t tests/test-file-removal.t tests/test-git-clone.t tests/test-git-submodules.t tests/test-hg-author.t tests/test-hg-branch.t tests/test-hg-tags.t tests/test-incoming.t tests/test-merge.t tests/test-octopus.t tests/test-pull-after-strip.t tests/test-tree-decomposition.t
diffstat 17 files changed, 33 insertions(+), 85 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test-clone.t
+++ b/tests/test-clone.t
@@ -23,8 +23,7 @@
   $ hg clone -r alpha gitrepo hgrepo-a | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-a
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-a log --graph | egrep -v ': *(beta|master)'
   @  changeset:   0:3442585be8a6
      tag:         alpha
      tag:         default/master
@@ -33,15 +32,12 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
   $ echo % clone a branch
   % clone a branch
   $ hg clone -r beta gitrepo hgrepo-b | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-b
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-b log --graph | egrep -v ': *(beta|master)'
   @  changeset:   1:7bcd915dc873
   |  tag:         default/beta
   |  tag:         tip
@@ -56,6 +52,3 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-
-  $ cd ..
--- a/tests/test-conflict-1.t
+++ b/tests/test-conflict-1.t
@@ -55,10 +55,9 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
-  $ hg log --graph --style compact | sed 's/\[.*\]//g'
+  $ hg -R hgrepo2 log --graph --style compact | sed 's/\[.*\]//g'
   @    3:1,2   6c53bc0f062f   1970-01-01 00:00 +0000   test
   |\     merge to C
   | |
@@ -71,5 +70,3 @@
   o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
        origin
   
-
-  $ cd ..
--- a/tests/test-conflict-2.t
+++ b/tests/test-conflict-2.t
@@ -55,10 +55,9 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
-  $ hg log --graph --style compact | sed 's/\[.*\]//g'
+  $ hg -R hgrepo2 log --graph --style compact | sed 's/\[.*\]//g'
   @    3:1,2   120385945d08   1970-01-01 00:00 +0000   test
   |\     merge to B
   | |
@@ -71,5 +70,3 @@
   o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
        origin
   
-
-  $ cd ..
--- a/tests/test-convergedmerge.t
+++ b/tests/test-convergedmerge.t
@@ -56,10 +56,9 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
-  $ hg log --graph --style compact | sed 's/\[.*\]//g'
+  $ hg -R hgrepo2 log --graph --style compact | sed 's/\[.*\]//g'
   @    4:1,3   eaa21d002113   1970-01-01 00:00 +0000   test
   |\     merge
   | |
@@ -75,5 +74,3 @@
   o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
        origin
   
-
-  $ cd ..
--- a/tests/test-empty-working-tree.t
+++ b/tests/test-empty-working-tree.t
@@ -22,13 +22,10 @@
   $ hg push ../gitrepo2
   pushing to ../gitrepo2
   searching for changes
-
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ cd ..
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit 678256865a8c85ae925bf834369264193c88f8de
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:00 2007 +0000
   
       empty
-
-  $ cd ..
--- a/tests/test-encoding.t
+++ b/tests/test-encoding.t
@@ -112,8 +112,8 @@
   pushing to ../gitrepo2
   searching for changes
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ cd ..
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit da0edb01d4f3d1abf08b1be298379b0b2960e680
   Author: t\xe9st \xe8nc\xf6d\xeeng <test@example.org> (esc)
   Date:   Mon Jan 1 00:00:13 2007 +0000
@@ -137,5 +137,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add älphà
-
-  $ cd ..
--- a/tests/test-file-removal.t
+++ b/tests/test-file-removal.t
@@ -83,8 +83,8 @@
   pushing to ../gitrepo2
   searching for changes
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ cd ..
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit b991de8952c482a7cd51162674ffff8474862218
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:14 2007 +0000
@@ -114,5 +114,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
--- a/tests/test-git-clone.t
+++ b/tests/test-git-clone.t
@@ -16,8 +16,7 @@
   $ hg clone gitrepo hgrepo | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo
-  $ hg log --graph  | grep -v ': *master'
+  $ hg -R hgrepo log --graph  | grep -v ': *master'
   @  changeset:   1:7bcd915dc873
   |  tag:         default/master
   |  tag:         tip
@@ -33,5 +32,5 @@
 
   $ echo % we should have some bookmarks
   % we should have some bookmarks
-  $ hg book
+  $ hg -R hgrepo book
    * master                    1:7bcd915dc873
--- a/tests/test-git-submodules.t
+++ b/tests/test-git-submodules.t
@@ -52,8 +52,7 @@
   $ hg clone gitrepo2 hgrepo | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo
-  $ hg log --graph  | grep -v ': *master'
+  $ hg -R hgrepo log --graph  | grep -v ': *master'
   @  changeset:   2:76fda365fbbb
   |  tag:         default/master
   |  tag:         tip
@@ -74,5 +73,5 @@
 
   $ echo % we should have some bookmarks
   % we should have some bookmarks
-  $ hg book
+  $ hg -R hgrepo book
    * master                    2:76fda365fbbb
--- a/tests/test-hg-author.t
+++ b/tests/test-hg-author.t
@@ -127,8 +127,7 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   8 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
-  $ hg log --graph | egrep -v ': *(not-master|master)'
+  $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
   @  changeset:   8:efec0270e295
   |  tag:         default/master
   |  tag:         tip
@@ -177,10 +176,7 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
-  $ cd gitrepo
-  $ git log --pretty=medium master
+  $ git --git-dir=gitrepo/.git log --pretty=medium master
   commit 1e03e913eca571b86ee06d3c1ddd795dde9ca917
   Author: test ?test@example.com <test ?test@example.com>
   Date:   Mon Jan 1 00:00:18 2007 +0000
@@ -234,5 +230,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
--- a/tests/test-hg-branch.t
+++ b/tests/test-hg-branch.t
@@ -60,8 +60,7 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
-  $ hg log --graph | $filterhash | egrep -v ': *(not-master|master)'
+  $ hg -R hgrepo2 log --graph | $filterhash | egrep -v ': *(not-master|master)'
   o  changeset:   2:05aed681ccb3
   |  branch:      gamma
   |  tag:         default/master
@@ -81,5 +80,3 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
--- a/tests/test-hg-tags.t
+++ b/tests/test-hg-tags.t
@@ -50,8 +50,7 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
-  $ hg log --graph | egrep -v ': *(not-master|master)'
+  $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
   @  changeset:   1:d529e9229f6d
   |  tag:         default/master
   |  tag:         tip
@@ -69,7 +68,5 @@
 
   $ echo % the tag should be in .hgtags
   % the tag should be in .hgtags
-  $ cat .hgtags
+  $ cat hgrepo2/.hgtags
   3442585be8a60c6cd476bbc4e45755339f2a23ef alpha
-
-  $ cd ..
--- a/tests/test-incoming.t
+++ b/tests/test-incoming.t
@@ -17,17 +17,16 @@
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
-  $ cd hgrepo
-  $ hg incoming | grep -v 'no changes found' | grep -v 'bookmark:'
+  $ hg -R hgrepo incoming | grep -v 'no changes found' | grep -v 'bookmark:'
   comparing with $TESTTMP/gitrepo
 
-  $ cd ../gitrepo
+  $ cd gitrepo
   $ echo beta > beta
   $ git add beta
   $ fn_git_commit -m 'add beta'
+  $ cd ..
 
-  $ cd ../hgrepo
-  $ hg incoming | grep -v 'no changes found' | grep -v 'bookmark:'
+  $ hg -R hgrepo incoming | grep -v 'no changes found' | grep -v 'bookmark:'
   comparing with $TESTTMP/gitrepo
   changeset:   1:9497a4ee62e1
   user:        test <test@example.org>
@@ -35,7 +34,7 @@
   summary:     add beta
   
 
-  $ cd ../gitrepo
+  $ cd gitrepo
   $ git checkout -b b1 HEAD^
   Switched to a new branch 'b1'
   $ mkdir d
@@ -47,7 +46,6 @@
   $ echo gamma 2 >> d/gamma
   $ git add d/gamma
   $ fn_git_commit -m'add d/gamma line 2'
-
   $ cd ../hgrepo
   $ hg incoming -p | grep -v 'no changes found' | grep -v 'bookmark:'
   comparing with $TESTTMP/gitrepo
--- a/tests/test-merge.t
+++ b/tests/test-merge.t
@@ -45,10 +45,9 @@
   searching for changes
 
   $ cd ..
-  $ cd gitrepo2
   $ echo % git log in repo pushed from hg
   % git log in repo pushed from hg
-  $ git log --pretty=medium master | sed 's/\.\.\.//g'
+  $ git --git-dir=gitrepo2 log --pretty=medium master | sed 's/\.\.\.//g'
   commit 5806851511aaf3bfe813ae3a86c5027165fa9b96
   Merge: e5023f9 9497a4e
   Author: test <test@example.org>
@@ -73,7 +72,7 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-  $ git log --pretty=medium beta | sed 's/\.\.\.//g'
+  $ git --git-dir=gitrepo2 log --pretty=medium beta | sed 's/\.\.\.//g'
   commit 9497a4ee62e16ee641860d7677cdb2589ea15554
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:11 2007 +0000
@@ -85,5 +84,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
--- a/tests/test-octopus.t
+++ b/tests/test-octopus.t
@@ -69,9 +69,9 @@
   $ hg push ../gitrepo2
   pushing to ../gitrepo2
   searching for changes
+  $ cd ..
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium | sed s/\\.\\.\\.//g
+  $ git --git-dir=gitrepo2 log --pretty=medium | sed s/\\.\\.\\.//g
   commit f0c7ec180419a130636d0c333fc34c1462cab4b5
   Merge: d8e22dd 9497a4e e5023f9
   Author: test <test@example.org>
@@ -102,5 +102,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
--- a/tests/test-pull-after-strip.t
+++ b/tests/test-pull-after-strip.t
@@ -34,8 +34,7 @@
   $ hg clone -r alpha gitrepo hgrepo-a | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-a
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-a log --graph | egrep -v ': *(beta|master)'
   @  changeset:   0:3442585be8a6
      tag:         alpha
      tag:         default/master
@@ -44,15 +43,12 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
   $ echo % clone a branch
   % clone a branch
   $ hg clone -r beta gitrepo hgrepo-b | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-b
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-b log --graph | egrep -v ': *(beta|master)'
   @  changeset:   1:7bcd915dc873
   |  tag:         default/beta
   |  tag:         tip
@@ -67,8 +63,6 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-  $ cd ..
-
   $ cd gitrepo
   $ echo beta line 2 >> beta
   $ git add beta
--- a/tests/test-tree-decomposition.t
+++ b/tests/test-tree-decomposition.t
@@ -41,9 +41,9 @@
   $ hg push ../gitrepo2
   pushing to ../gitrepo2
   searching for changes
+  $ cd ..
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit 6e0dbd8cd92ed4823c69cb48d8a2b81f904e6e69
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:12 2007 +0000
@@ -61,5 +61,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       initial
-
-  $ cd ..