test: add a test about cache warming stable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Fri, 17 Aug 2018 13:31:35 +0200
branchstable
changeset 3965 d4ae0e3ec743
parent 3964 45811d3507a7
child 3966 ea7687a9a4b8
test: add a test about cache warming This test reveal that multiple cache are not saved to disk after discovery (firstmerge, stablesort).
tests/test-discovery-obshashrange-cache.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-discovery-obshashrange-cache.t	Fri Aug 17 13:31:35 2018 +0200
@@ -0,0 +1,163 @@
+==============================
+Test cache warming strategy 
+test for range based discovery
+==============================
+
+  $ . $TESTDIR/testlib/pythonpath.sh
+
+  $ cat << EOF >> $HGRCPATH
+  > [extensions]
+  > hgext3rd.evolve =
+  > blackbox =
+  > [defaults]
+  > blackbox = -l 100
+  > [experimental]
+  > obshashrange=1
+  > verbose-obsolescence-exchange=1
+  > [ui]
+  > logtemplate = "{rev} {node|short} {desc} {tags}\n"
+  > ssh=python "$RUNTESTDIR/dummyssh"
+  > [alias]
+  > debugobsolete=debugobsolete -d '0 0'
+  > [ui]
+  > ssh=$PYTHON "$RUNTESTDIR/dummyssh"
+  > EOF
+
+  $ hg init main
+
+  $ hg -R main debugbuilddag '.+7'
+
+  $ for node in `hg -R main log -T '{node}\n'`; do
+  >     echo -n $node | grep -o . | sort |tr -d "\n" > ancfile
+  >     anc=`cat ancfile`
+  >     rm ancfile
+  >     echo "marking $anc as predecessors of $node"
+  >     hg -R main debugobsolete $anc $node
+  > done
+  marking 000011223334456677789aaaaabbbbcccddddeef as predecessors of 4de32a90b66cd083ebf3c00b41277aa7abca51dd
+  marking 012234455555666699aaaaabbbccccccefffffff as predecessors of f69452c5b1af6cbaaa56ef50cf94fff5bcc6ca23
+  marking 00001122233445555777778889999abbcccddeef as predecessors of c8d03c1b5e94af74b772900c58259d2e08917735
+  marking 0011222445667777889999aabbbbcddddeeeeeee as predecessors of bebd167eb94d257ace0e814aeb98e6972ed2970d
+  marking 000011222223344555566778899aaaabccddefff as predecessors of 2dc09a01254db841290af0538aa52f6f52c776e3
+  marking 01111222223333444455555566999abbbbcceeef as predecessors of 01241442b3c2bf3211e593b549c655ea65b295e3
+  marking 01122444445555566677888aabbcccddddefffff as predecessors of 66f7d451a68b85ed82ff5fcc254daf50c74144bd
+  marking 000111111234444467777889999aaaabcdeeeeff as predecessors of 1ea73414a91b0920940797d8fc6a11e447f8ea1e
+
+  $ hg debugobsolete -R main
+  000011223334456677789aaaaabbbbcccddddeef 4de32a90b66cd083ebf3c00b41277aa7abca51dd 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  012234455555666699aaaaabbbccccccefffffff f69452c5b1af6cbaaa56ef50cf94fff5bcc6ca23 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  00001122233445555777778889999abbcccddeef c8d03c1b5e94af74b772900c58259d2e08917735 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  0011222445667777889999aabbbbcddddeeeeeee bebd167eb94d257ace0e814aeb98e6972ed2970d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  000011222223344555566778899aaaabccddefff 2dc09a01254db841290af0538aa52f6f52c776e3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  01111222223333444455555566999abbbbcceeef 01241442b3c2bf3211e593b549c655ea65b295e3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  01122444445555566677888aabbcccddddefffff 66f7d451a68b85ed82ff5fcc254daf50c74144bd 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  000111111234444467777889999aaaabcdeeeeff 1ea73414a91b0920940797d8fc6a11e447f8ea1e 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+
+Cache mode is "auto" so local commit did not warm the cache yet
+
+  $ f -s main/.hg/cache/evoext*
+  main/.hg/cache/evoext-obscache-00: size=72
+
+Initial push
+------------
+
+  $ hg init server
+  $ hg -R main push ssh://user@dummy/server
+  pushing to ssh://user@dummy/server
+  searching for changes
+  OBSEXC: computing relevant nodes
+  OBSEXC: looking for common markers in 8 nodes
+  OBSEXC: computing markers relevant to 8 nodes
+  remote: adding changesets
+  remote: adding manifests
+  remote: adding file changes
+  remote: added 8 changesets with 0 changes to 0 files
+  remote: 8 new obsolescence markers
+
+sever cash is warm
+
+  $ f -s server/.hg/cache/evoext*
+  server/.hg/cache/evoext-depthcache-00: size=88
+  server/.hg/cache/evoext-firstmerge-00: size=88
+  server/.hg/cache/evoext-obscache-00: size=72
+  server/.hg/cache/evoext-stablesortcache-00: size=92
+  server/.hg/cache/evoext_obshashrange_v2.sqlite: size=?* (glob)
+  server/.hg/cache/evoext_stablerange_v2.sqlite: size=?* (glob)
+
+client cash is warm
+
+  $ f -s main/.hg/cache/evoext*
+  main/.hg/cache/evoext-depthcache-00: size=88
+  main/.hg/cache/evoext-obscache-00: size=72
+  main/.hg/cache/evoext_obshashrange_v2.sqlite: size=?* (glob)
+  main/.hg/cache/evoext_stablerange_v2.sqlite: size=?* (glob)
+
+initial pull
+------------
+
+  $ rm -rf main
+  $ hg init main
+  $ hg -R main pull ssh://user@dummy/server
+  pulling from ssh://user@dummy/server
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  8 new obsolescence markers
+  new changesets 1ea73414a91b:4de32a90b66c
+  (run 'hg update' to get a working copy)
+
+client cache is empty because the discovery was empty
+
+  $ f -s main/.hg/cache/evoext*
+  main/.hg/cache/evoext-obscache-00: size=72
+
+no op pull
+------------
+
+clear cache
+
+  $ rm -rf main/.hg/cache/evoext
+
+pull nothing
+
+  $ hg -R main pull ssh://user@dummy/server
+  pulling from ssh://user@dummy/server
+  searching for changes
+  no changes found
+  OBSEXC: looking for common markers in 8 nodes
+
+client cash is warm
+
+  $ f -s main/.hg/cache/evoext*
+  main/.hg/cache/evoext-depthcache-00: size=88
+  main/.hg/cache/evoext-obscache-00: size=72
+  main/.hg/cache/evoext_obshashrange_v2.sqlite: size=?* (glob)
+  main/.hg/cache/evoext_stablerange_v2.sqlite: size=?* (glob)
+
+no op push
+------------
+
+clear cache
+
+  $ rm -rf main/.hg/cache/evoext
+
+push nothing
+
+  $ hg -R main push ssh://user@dummy/server
+  pushing to ssh://user@dummy/server
+  searching for changes
+  OBSEXC: computing relevant nodes
+  OBSEXC: looking for common markers in 8 nodes
+  OBSEXC: markers already in sync
+  no changes found
+  [1]
+
+client cash is warm
+
+  $ f -s main/.hg/cache/evoext*
+  main/.hg/cache/evoext-depthcache-00: size=88
+  main/.hg/cache/evoext-obscache-00: size=72
+  main/.hg/cache/evoext_obshashrange_v2.sqlite: size=?* (glob)
+  main/.hg/cache/evoext_stablerange_v2.sqlite: size=?* (glob)