test: add a test file for relevant obsmarkers and its usage
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 25 May 2017 19:37:07 +0200
changeset 32487 f475446b4837
parent 32486 1df80eff24cf
child 32488 176d1a0ce385
test: add a test file for relevant obsmarkers and its usage The logic around obsmarkers "relevant" to a set of revs have a couple of test around in other places but no systematic testing. In addition, all the current testing focus on the exchange case (we looks at relevant markers for '::heads'). For bundles, we'll need something a bit different. We'll no longer have set of revision going down to the repository roots. So we'll have to test these cases too. In addition, stripping obsmarkers will introduce new logic around obsmarkers that will need testing too. So a new test file make sense here. We start with a simple tests, more advanced cases are coming in the next changesets. The extra testing catch a minor bug (later in the series).
tests/test-obsolete-bundle-strip.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-obsolete-bundle-strip.t	Thu May 25 19:37:07 2017 +0200
@@ -0,0 +1,102 @@
+==================================================
+Test obsmarkers interaction with bundle and strip
+==================================================
+
+In practice, this file does not yet contains any tests for bundle and strip.
+But their will be some soon (tm).
+
+For now this test check the logic computing markers relevant to a set of
+revision. That logic will be use by "hg bundle" to select the markers to
+include, and strip to find the markers to backup.
+
+Setup a repository with various case
+====================================
+
+Config setup
+------------
+
+  $ cat >> $HGRCPATH <<EOF
+  > [ui]
+  > # simpler log output
+  > logtemplate = "{node|short}: {desc}\n"
+  > 
+  > [experimental]
+  > # enable evolution
+  > evolution = all
+  > 
+  > # include obsmarkers in bundle
+  > evolution.bundle-obsmarker = yes
+  > 
+  > [extensions]
+  > # needed for some tests
+  > strip =
+  > [defaults]
+  > # we'll query many hidden changeset
+  > debugobsolete = --hidden
+  > EOF
+
+  $ mkcommit() {
+  >    echo "$1" > "$1"
+  >    hg add "$1"
+  >    hg ci -m "$1"
+  > }
+
+  $ getid() {
+  >    hg log --hidden --template '{node}\n' --rev "$1"
+  > }
+
+  $ mktestrepo () {
+  >     [ -n "$1" ] || exit 1
+  >     cd $TESTTMP
+  >     hg init $1
+  >     cd $1
+  >     mkcommit ROOT
+  > }
+
+root setup
+-------------
+
+simple chain
+============
+
+.    A0
+.   ⇠ø⇠◔ A1
+.    |/
+.    ●
+
+setup
+-----
+
+  $ mktestrepo simple-chain
+  $ mkcommit 'C-A0'
+  $ hg up 'desc("ROOT")'
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ mkcommit 'C-A1'
+  created new head
+  $ hg debugobsolete a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 `getid 'desc("C-A0")'`
+  $ hg debugobsolete `getid 'desc("C-A0")'` a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1
+  $ hg debugobsolete a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 `getid 'desc("C-A1")'`
+
+  $ hg up 'desc("ROOT")'
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg log --hidden -G
+  o  cf2c22470d67: C-A1
+  |
+  | x  84fcb0dfe17b: C-A0
+  |/
+  @  ea207398892e: ROOT
+  
+  $ hg debugobsolete
+  a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+
+Actual testing
+--------------
+
+  $ hg debugobsolete --rev 'desc("C-A0")'
+  a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  $ hg debugobsolete --rev 'desc("C-A1")'
+  84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}