Mercurial > hg
view tests/test-fastannotate-corrupt.t @ 47826:83235fb50e1c stable
run-tests: introduce a --pyoxidized option
This options make it possible to use the pyoxidizer version to run the tests.
This is a first basic version that is windows only.
The test needs a working python, with Mercurial installed. However the
pyoxidizer product is "self contains" without a "usable" Python. There have been
discussion to have a fully functional `hg admin::python` command providing a
fully functional python interpreter, but nothing is of the sort is ready yet. In
In the meantime we use an hybrid approach, similar to what we do for testing
`rhg`. We install a full "normal" Mercurial, but also the pyxodizer product as
the official `hg binary`. That way, we use the pyoxidizer version or everything,
but test that needs to run python have it available, with a fully functional
Mercurial package.
This first version is pretty basic (Windows only, no --local, not
--with-pyoxidized), but it runs, various bug that we will have to fix.
Differential Revision: https://phab.mercurial-scm.org/D11277
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 10 Aug 2021 12:56:32 +0200 |
parents | 1ddb296e0dee |
children |
line wrap: on
line source
$ cat >> $HGRCPATH << EOF > [extensions] > fastannotate= > EOF $ hg init repo $ cd repo $ for i in 0 1 2 3 4; do > echo $i >> a > echo $i >> b > hg commit -A -m $i a b > done use the "debugbuildannotatecache" command to build annotate cache at rev 0 $ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=0 fastannotate: a: 1 new changesets in the main branch fastannotate: b: 1 new changesets in the main branch "debugbuildannotatecache" should work with broken cache (and other files would be built without being affected). note: linelog being broken is only noticed when we try to append to it. $ echo 'CORRUPT!' >> .hg/fastannotate/default/a.m $ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=1 fastannotate: a: rebuilding broken cache fastannotate: a: 2 new changesets in the main branch fastannotate: b: 1 new changesets in the main branch $ echo 'CANNOT REUSE!' > .hg/fastannotate/default/a.l $ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=2 fastannotate: a: rebuilding broken cache fastannotate: a: 3 new changesets in the main branch fastannotate: b: 1 new changesets in the main branch $ rm .hg/fastannotate/default/a.m $ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=3 fastannotate: a: rebuilding broken cache fastannotate: a: 4 new changesets in the main branch fastannotate: b: 1 new changesets in the main branch $ rm .hg/fastannotate/default/a.l $ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=3 $ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=4 fastannotate: a: rebuilding broken cache fastannotate: a: 5 new changesets in the main branch fastannotate: b: 1 new changesets in the main branch "fastannotate" should deal with file corruption as well $ rm -rf .hg/fastannotate $ hg fastannotate --debug -r 0 a fastannotate: a: 1 new changesets in the main branch 0: 0 $ echo 'CORRUPT!' >> .hg/fastannotate/default/a.m $ hg fastannotate --debug -r 0 a fastannotate: a: cache broken and deleted fastannotate: a: 1 new changesets in the main branch 0: 0 $ echo 'CORRUPT!' > .hg/fastannotate/default/a.l $ hg fastannotate --debug -r 1 a fastannotate: a: cache broken and deleted fastannotate: a: 2 new changesets in the main branch 0: 0 1: 1 $ rm .hg/fastannotate/default/a.l $ hg fastannotate --debug -r 1 a fastannotate: a: using fast path (resolved fctx: True) fastannotate: a: cache broken and deleted fastannotate: a: 2 new changesets in the main branch 0: 0 1: 1 $ rm .hg/fastannotate/default/a.m $ hg fastannotate --debug -r 2 a fastannotate: a: cache broken and deleted fastannotate: a: 3 new changesets in the main branch 0: 0 1: 1 2: 2