58f5e63dbe2f — sietse.brouwer 9 years ago
grsummary: augment the test with a guest 'gr-hggit'

The grsummary command's code path is slightly different for hggit
guests, so it needs to be tested on an hggit guest as well as on a
plain hg guest.
2 files changed, 116 insertions(+), 19 deletions(-)

M tests/test-summary-legacy.t
M tests/test-summary.t
M tests/test-summary-legacy.t +59 -9
@@ 26,64 26,114 @@ 
   $ . $TESTDIR/helper.sh
   $ TEST_TMPDIR=`pwd`
 
-Make a host and a plain guest repo
+Install hggit
+  $ OLD_HGRCPATH=$HGRCPATH
+  $ HGRCPATH=$(mktemp)
+  $ cp $OLD_HGRCPATH $HGRCPATH -f
+  $ echo 'hggit =' >> $HGRCPATH
+  $ pip install hg-git > /dev/null 2> /dev/null
+
+Make one guest repo with Mercurial, and one with Git.
+  $ git init gr-hggit --quiet
+  $ cd gr-hggit
+  $ echo c0 > f
+  $ git add f
+  $ git commit -m 0 --quiet
+
+  $ cd ..
   $ hg init gr-plain
   $ cd gr-plain
   $ echo c0 > f
   $ hg add f
   $ hg commit -m 0
 
-
+Create a host and add the guest repos
   $ cd $TEST_TMPDIR
   $ hg init host
   $ cd host
+
+  $ echo mygr-hggit = mygr-hggit-name default >> .hgguestrepo
+  $ echo mygr-hggit-name = `test_readlink ../gr-hggit` >> .hggrmapping
+
   $ echo mygr-plain = mygr-plain-name default >> .hgguestrepo
   $ echo mygr-plain-name = `test_readlink ../gr-plain` >> .hggrmapping
+
   $ hg add .hgguestrepo .hggrmapping
   $ hg commit -m 0
 
 Sync and test summary
   $ hg grupdate
+  cloning mygr-hggit
+  importing git objects into hg
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   cloning mygr-plain
   updating to branch default
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg grsummary
+  mygr-hggit (default) default/master/tip master *master
   mygr-plain (default) tip
 
 Add some bookmarks
+  $ hg bookmark mark -R $TEST_TMPDIR/host/mygr-hggit
+  $ hg bookmark currentmark -R $TEST_TMPDIR/host/mygr-hggit
+
   $ hg bookmark mark -R $TEST_TMPDIR/host/mygr-plain
   $ hg bookmark currentmark -R $TEST_TMPDIR/host/mygr-plain
+
   $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark
   mygr-plain (default) tip currentmark/mark *currentmark
 
 Make a change
   $ echo c1 > $TEST_TMPDIR/host/mygr-plain/f
+
+  $ echo c1 > $TEST_TMPDIR/host/mygr-hggit/f
+
   $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark *
   mygr-plain (default) tip currentmark/mark *currentmark *
 
 Validate -i option
-  $ ID=$(echo  $(hg -R mygr-plain id -i) | sed -r -e 's/\+$//')
-  $ SUMMARY=$(hg grsummary -i)
-  $ EXPECTED="mygr-plain (default) $ID tip currentmark/mark *currentmark *"
-  $ bash -c "[ \"$EXPECTED\"  == \"$SUMMARY\" ]"
+  $ ID_plain=$(echo  $(hg -R mygr-plain id -i) | sed -r -e 's/\+$//')
+  $ SUMMARY_plain=$(hg grsummary -i | grep gr-plain)
+  $ EXPECTED_plain="mygr-plain (default) $ID_plain tip currentmark/mark *currentmark *"
+  $ bash -c "[ \"$EXPECTED_plain\"  == \"$SUMMARY_plain\" ]"
+
+  $ ID_hggit=$(echo  $(hg -R mygr-hggit id -i) | sed -r -e 's/\+$//')
+  $ SUMMARY_hggit=$(hg grsummary -i | grep gr-hggit)
+  $ EXPECTED_hggit="mygr-hggit (default) $ID_hggit default/master/tip currentmark/mark/master *currentmark *"
+  $ bash -c "[ \"$EXPECTED_hggit\"  == \"$SUMMARY_hggit\" ]"
 
 Test --phase option
-
   $ hg grsummary --phase
+  mygr-hggit (default) draft default/master/tip currentmark/mark/master *currentmark *
   mygr-plain (default) public tip currentmark/mark *currentmark *
 
 Test JSON
   $ hg grsummary --json
-  [{"current_bookmark": "currentmark", "tags": "tip", "changed": true, "branch": "default", "path": "mygr-plain", "bookmarks": "currentmark/mark", "remote_name": "mygr-plain-name", "id": "*"}] (glob)
+  [{"current_bookmark": "currentmark", "tags": "default/master/tip", "changed": true, "branch": "default", "path": "mygr-hggit", "bookmarks": "currentmark/mark/master", "remote_name": "mygr-hggit-name", "id": "*"}, {"current_bookmark": "currentmark", "tags": "tip", "changed": true, "branch": "default", "path": "mygr-plain", "bookmarks": "currentmark/mark", "remote_name": "mygr-plain-name", "id": "*"}] (glob)
 
 Test summary with unknown file
-
   $ hg -R mygr-plain revert --all --no-backup
   reverting mygr-plain/f
+  $ hg -R mygr-hggit revert --all --no-backup
+  reverting mygr-hggit/f
+
+  $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark
+  mygr-plain (default) tip currentmark/mark *currentmark
+
   $ echo 'Babar' > mygr-plain/jungle
   $ hg -R mygr-plain status
   ? jungle
+
+  $ echo 'Babar' > mygr-hggit/jungle
+  $ hg -R mygr-hggit status
+  ? jungle
+
   $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark *
   mygr-plain (default) tip currentmark/mark *currentmark *
 

          
M tests/test-summary.t +57 -10
@@ 26,63 26,110 @@ 
   $ . $TESTDIR/helper.sh
   $ TEST_TMPDIR=`pwd`
 
-Make a host and a plain guest repo
+Install hggit
+  $ OLD_HGRCPATH=$HGRCPATH
+  $ HGRCPATH=$(mktemp)
+  $ cp $OLD_HGRCPATH $HGRCPATH -f
+  $ echo 'hggit =' >> $HGRCPATH
+  $ pip install hg-git > /dev/null 2> /dev/null
+
+Make one guest repo with Mercurial, and one with Git.
+  $ git init gr-hggit --quiet
+  $ cd gr-hggit
+  $ echo c0 > f
+  $ git add f
+  $ git commit -m 0 --quiet
+
+  $ cd ..
   $ hg init gr-plain
   $ cd gr-plain
   $ echo c0 > f
   $ hg add f
   $ hg commit -m 0
 
-
+Create a host and add the guest repos
   $ cd $TEST_TMPDIR
   $ hg init host
   $ cd host
+
+  $ grinit mygr-hggit-name mygr-hggit ../gr-hggit default
   $ grinit mygr-plain-name mygr-plain ../gr-plain default
+
   $ hg add .hggrconf .hggrsnap
   $ hg commit -m 0
 
 Sync and test summary
   $ hg grupdate
+  cloning mygr-hggit
+  importing git objects into hg
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   cloning mygr-plain
   updating to branch default
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg grsummary
+  mygr-hggit (default) default/master/tip master *master
   mygr-plain (default) tip
 
 Add some bookmarks
+  $ hg bookmark mark -R $TEST_TMPDIR/host/mygr-hggit
+  $ hg bookmark currentmark -R $TEST_TMPDIR/host/mygr-hggit
+
   $ hg bookmark mark -R $TEST_TMPDIR/host/mygr-plain
   $ hg bookmark currentmark -R $TEST_TMPDIR/host/mygr-plain
+
   $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark
   mygr-plain (default) tip currentmark/mark *currentmark
 
 Make a change
   $ echo c1 > $TEST_TMPDIR/host/mygr-plain/f
+
+  $ echo c1 > $TEST_TMPDIR/host/mygr-hggit/f
+
   $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark *
   mygr-plain (default) tip currentmark/mark *currentmark *
 
 Validate -i option
-  $ ID=$(echo  $(hg -R mygr-plain id -i) | sed -r -e 's/\+$//')
-  $ SUMMARY=$(hg grsummary -i)
-  $ EXPECTED="mygr-plain (default) $ID tip currentmark/mark *currentmark *"
-  $ bash -c "[ \"$EXPECTED\"  == \"$SUMMARY\" ]"
+  $ ID_plain=$(echo  $(hg -R mygr-plain id -i) | sed -r -e 's/\+$//')
+  $ SUMMARY_plain=$(hg grsummary -i | grep gr-plain)
+  $ EXPECTED_plain="mygr-plain (default) $ID_plain tip currentmark/mark *currentmark *"
+  $ bash -c "[ \"$EXPECTED_plain\"  == \"$SUMMARY_plain\" ]"
+
+  $ ID_hggit=$(echo  $(hg -R mygr-hggit id -i) | sed -r -e 's/\+$//')
+  $ SUMMARY_hggit=$(hg grsummary -i | grep gr-hggit)
+  $ EXPECTED_hggit="mygr-hggit (default) $ID_hggit default/master/tip currentmark/mark/master *currentmark *"
+  $ bash -c "[ \"$EXPECTED_hggit\"  == \"$SUMMARY_hggit\" ]"
 
 Test --phase option
-
   $ hg grsummary --phase
+  mygr-hggit (default) draft default/master/tip currentmark/mark/master *currentmark *
   mygr-plain (default) public tip currentmark/mark *currentmark *
 
 Test JSON
   $ hg grsummary --json
-  [{"current_bookmark": "currentmark", "tags": "tip", "changed": true, "branch": "default", "path": "mygr-plain", "bookmarks": "currentmark/mark", "remote_name": "mygr-plain-name", "id": "*"}] (glob)
+  [{"current_bookmark": "currentmark", "tags": "default/master/tip", "changed": true, "branch": "default", "path": "mygr-hggit", "bookmarks": "currentmark/mark/master", "remote_name": "mygr-hggit-name", "id": "*"}, {"current_bookmark": "currentmark", "tags": "tip", "changed": true, "branch": "default", "path": "mygr-plain", "bookmarks": "currentmark/mark", "remote_name": "mygr-plain-name", "id": "*"}] (glob)
 
 Test summary with unknown file
-
   $ hg -R mygr-plain revert --all --no-backup
   reverting mygr-plain/f
+  $ hg -R mygr-hggit revert --all --no-backup
+  reverting mygr-hggit/f
+
+  $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark
+  mygr-plain (default) tip currentmark/mark *currentmark
+
   $ echo 'Babar' > mygr-plain/jungle
   $ hg -R mygr-plain status
   ? jungle
+
+  $ echo 'Babar' > mygr-hggit/jungle
+  $ hg -R mygr-hggit status
+  ? jungle
+
   $ hg grsummary
+  mygr-hggit (default) default/master/tip currentmark/mark/master *currentmark *
   mygr-plain (default) tip currentmark/mark *currentmark *
-