test-debugcommands.t
415 lines
| 10.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-debugcommands.t
Pierre-Yves David
|
r26918 | $ cat << EOF >> $HGRCPATH | ||
Paul Morelle
|
r35396 | > [ui] | ||
> interactive=yes | ||||
Pierre-Yves David
|
r26918 | > EOF | ||
Patrick Mezard
|
r17188 | $ hg init debugrevlog | ||
$ cd debugrevlog | ||||
$ echo a > a | ||||
$ hg ci -Am adda | ||||
adding a | ||||
$ hg debugrevlog -m | ||||
format : 1 | ||||
Pierre-Yves David
|
r26918 | flags : inline, generaldelta | ||
Patrick Mezard
|
r17188 | |||
revisions : 1 | ||||
merges : 0 ( 0.00%) | ||||
normal : 1 (100.00%) | ||||
revisions : 1 | ||||
full : 1 (100.00%) | ||||
deltas : 0 ( 0.00%) | ||||
revision size : 44 | ||||
full : 44 (100.00%) | ||||
deltas : 0 ( 0.00%) | ||||
Gregory Szorc
|
r30452 | chunks : 1 | ||
0x75 (u) : 1 (100.00%) | ||||
chunks size : 44 | ||||
0x75 (u) : 44 (100.00%) | ||||
Yuya Nishihara
|
r33062 | avg chain length : 0 | ||
max chain length : 0 | ||||
max chain reach : 44 | ||||
compression ratio : 0 | ||||
Patrick Mezard
|
r17188 | |||
uncompressed data size (min/max/avg) : 43 / 43 / 43 | ||||
full revision size (min/max/avg) : 44 / 44 / 44 | ||||
delta size (min/max/avg) : 0 / 0 / 0 | ||||
Mads Kiilerich
|
r20244 | |||
Gregory Szorc
|
r37301 | Test debugindex, with and without the --verbose/--debug flag | ||
Kyle Lippincott
|
r23547 | $ hg debugindex a | ||
Gregory Szorc
|
r37301 | rev linkrev nodeid p1 p2 | ||
0 0 b789fdd96dc2 000000000000 000000000000 | ||||
$ hg --verbose debugindex a | ||||
Gregory Szorc
|
r37300 | rev offset length linkrev nodeid p1 p2 | ||
0 0 3 0 b789fdd96dc2 000000000000 000000000000 | ||||
Gregory Szorc
|
r37301 | |||
Kyle Lippincott
|
r23547 | $ hg --debug debugindex a | ||
Gregory Szorc
|
r37300 | rev offset length linkrev nodeid p1 p2 | ||
0 0 3 0 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 | ||||
Gregory Szorc
|
r37301 | |||
Kyle Lippincott
|
r23547 | $ hg debugindex -f 1 a | ||
Gregory Szorc
|
r37301 | rev flag size link p1 p2 nodeid | ||
0 0000 2 0 -1 -1 b789fdd96dc2 | ||||
$ hg --verbose debugindex -f 1 a | ||||
Gregory Szorc
|
r37300 | rev flag offset length size link p1 p2 nodeid | ||
0 0000 0 3 2 0 -1 -1 b789fdd96dc2 | ||||
Gregory Szorc
|
r37301 | |||
Kyle Lippincott
|
r23547 | $ hg --debug debugindex -f 1 a | ||
Gregory Szorc
|
r37300 | rev flag offset length size link p1 p2 nodeid | ||
0 0000 0 3 2 0 -1 -1 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 | ||||
Kyle Lippincott
|
r23547 | |||
Gregory Szorc
|
r27263 | debugdelta chain basic output | ||
$ hg debugdeltachain -m | ||||
rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | ||||
0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000 | ||||
$ hg debugdeltachain -m -T '{rev} {chainid} {chainlen}\n' | ||||
0 1 1 | ||||
$ hg debugdeltachain -m -Tjson | ||||
[ | ||||
{ | ||||
"chainid": 1, | ||||
"chainlen": 1, | ||||
"chainratio": 1.02325581395, | ||||
"chainsize": 44, | ||||
"compsize": 44, | ||||
"deltatype": "base", | ||||
"extradist": 0, | ||||
"extraratio": 0.0, | ||||
"lindist": 44, | ||||
"prevrev": -1, | ||||
"rev": 0, | ||||
"uncompsize": 43 | ||||
} | ||||
] | ||||
Kyle Lippincott
|
r23547 | |||
Paul Morelle
|
r35050 | debugdelta chain with sparse read enabled | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [experimental] | ||||
> sparse-read = True | ||||
> EOF | ||||
$ hg debugdeltachain -m | ||||
Paul Morelle
|
r35696 | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks | ||
0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000 44 44 1.00000 1 | ||||
Paul Morelle
|
r35050 | |||
$ hg debugdeltachain -m -T '{rev} {chainid} {chainlen} {readsize} {largestblock} {readdensity}\n' | ||||
0 1 1 44 44 1.0 | ||||
$ hg debugdeltachain -m -Tjson | ||||
[ | ||||
{ | ||||
"chainid": 1, | ||||
"chainlen": 1, | ||||
"chainratio": 1.02325581395, | ||||
"chainsize": 44, | ||||
"compsize": 44, | ||||
"deltatype": "base", | ||||
"extradist": 0, | ||||
"extraratio": 0.0, | ||||
"largestblock": 44, | ||||
"lindist": 44, | ||||
"prevrev": -1, | ||||
"readdensity": 1.0, | ||||
"readsize": 44, | ||||
"rev": 0, | ||||
Paul Morelle
|
r35696 | "srchunks": 1, | ||
Paul Morelle
|
r35050 | "uncompsize": 43 | ||
} | ||||
] | ||||
Paul Morelle
|
r35696 | $ printf "This test checks things.\n" >> a | ||
$ hg ci -m a | ||||
$ hg branch other | ||||
marked working directory as branch other | ||||
(branches are permanent and global, did you want a bookmark?) | ||||
$ for i in `$TESTDIR/seq.py 5`; do | ||||
> printf "shorter ${i}" >> a | ||||
> hg ci -m "a other:$i" | ||||
> hg up -q default | ||||
> printf "for the branch default we want longer chains: ${i}" >> a | ||||
> hg ci -m "a default:$i" | ||||
> hg up -q other | ||||
> done | ||||
$ hg debugdeltachain a -T '{rev} {srchunks}\n' \ | ||||
> --config experimental.sparse-read.density-threshold=0.50 \ | ||||
> --config experimental.sparse-read.min-gap-size=0 | ||||
0 1 | ||||
1 1 | ||||
2 1 | ||||
3 1 | ||||
4 1 | ||||
5 1 | ||||
6 1 | ||||
7 1 | ||||
8 1 | ||||
9 1 | ||||
10 2 | ||||
11 1 | ||||
$ hg --config extensions.strip= strip --no-backup -r 1 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Mateusz Kwapich
|
r23255 | Test max chain len | ||
$ cat >> $HGRCPATH << EOF | ||||
Augie Fackler
|
r23256 | > [format] | ||
Mateusz Kwapich
|
r23255 | > maxchainlen=4 | ||
> EOF | ||||
Augie Fackler
|
r23256 | $ printf "This test checks if maxchainlen config value is respected also it can serve as basic test for debugrevlog -d <file>.\n" >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf "b\n" >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf "c\n" >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf "d\n" >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf "e\n" >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf "f\n" >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf 'g\n' >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
Augie Fackler
|
r23256 | $ printf 'h\n' >> a | ||
Mateusz Kwapich
|
r23255 | $ hg ci -m a | ||
$ hg debugrevlog -d a | ||||
# rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen | ||||
0 -1 -1 0 ??? 0 0 0 0 ??? ???? ? 1 0 (glob) | ||||
1 0 -1 ??? ??? 0 0 0 0 ??? ???? ? 1 1 (glob) | ||||
2 1 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 2 (glob) | ||||
3 2 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 3 (glob) | ||||
4 3 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 4 (glob) | ||||
5 4 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 0 (glob) | ||||
6 5 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 1 (glob) | ||||
7 6 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 2 (glob) | ||||
8 7 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 3 (glob) | ||||
Pierre-Yves David
|
r32265 | |||
Paul Morelle
|
r35395 | Test debuglocks command: | ||
$ hg debuglocks | ||||
lock: free | ||||
wlock: free | ||||
* Test setting the lock | ||||
waitlock <file> will wait for file to be created. If it isn't in a reasonable | ||||
amount of time, displays error message and returns 1 | ||||
$ waitlock() { | ||||
> start=`date +%s` | ||||
Paul Morelle
|
r35396 | > timeout=5 | ||
Paul Morelle
|
r35395 | > while [ \( ! -f $1 \) -a \( ! -L $1 \) ]; do | ||
> now=`date +%s` | ||||
> if [ "`expr $now - $start`" -gt $timeout ]; then | ||||
> echo "timeout: $1 was not created in $timeout seconds" | ||||
> return 1 | ||||
> fi | ||||
> sleep 0.1 | ||||
> done | ||||
> } | ||||
$ dolock() { | ||||
Paul Morelle
|
r35396 | > { | ||
> waitlock .hg/unlock | ||||
> rm -f .hg/unlock | ||||
> echo y | ||||
> } | hg debuglocks "$@" > /dev/null | ||||
Paul Morelle
|
r35395 | > } | ||
Paul Morelle
|
r35396 | $ dolock -s & | ||
Paul Morelle
|
r35395 | $ waitlock .hg/store/lock | ||
$ hg debuglocks | ||||
lock: user *, process * (*s) (glob) | ||||
wlock: free | ||||
[1] | ||||
$ touch .hg/unlock | ||||
$ wait | ||||
Paul Morelle
|
r35396 | $ [ -f .hg/store/lock ] || echo "There is no lock" | ||
There is no lock | ||||
Paul Morelle
|
r35395 | |||
* Test setting the wlock | ||||
Paul Morelle
|
r35396 | $ dolock -S & | ||
Paul Morelle
|
r35395 | $ waitlock .hg/wlock | ||
$ hg debuglocks | ||||
lock: free | ||||
wlock: user *, process * (*s) (glob) | ||||
[1] | ||||
$ touch .hg/unlock | ||||
$ wait | ||||
Paul Morelle
|
r35396 | $ [ -f .hg/wlock ] || echo "There is no wlock" | ||
There is no wlock | ||||
Paul Morelle
|
r35395 | |||
* Test setting both locks | ||||
Paul Morelle
|
r35396 | $ dolock -Ss & | ||
Paul Morelle
|
r35395 | $ waitlock .hg/wlock && waitlock .hg/store/lock | ||
$ hg debuglocks | ||||
lock: user *, process * (*s) (glob) | ||||
wlock: user *, process * (*s) (glob) | ||||
[2] | ||||
Paul Morelle
|
r35396 | |||
* Test failing to set a lock | ||||
$ hg debuglocks -s | ||||
abort: lock is already held | ||||
[255] | ||||
$ hg debuglocks -S | ||||
abort: wlock is already held | ||||
[255] | ||||
Paul Morelle
|
r35395 | $ touch .hg/unlock | ||
$ wait | ||||
$ hg debuglocks | ||||
lock: free | ||||
wlock: free | ||||
* Test forcing the lock | ||||
Paul Morelle
|
r35396 | $ dolock -s & | ||
Paul Morelle
|
r35395 | $ waitlock .hg/store/lock | ||
$ hg debuglocks | ||||
lock: user *, process * (*s) (glob) | ||||
wlock: free | ||||
[1] | ||||
$ hg debuglocks -L | ||||
$ hg debuglocks | ||||
lock: free | ||||
wlock: free | ||||
$ touch .hg/unlock | ||||
$ wait | ||||
* Test forcing the wlock | ||||
Paul Morelle
|
r35396 | $ dolock -S & | ||
Paul Morelle
|
r35395 | $ waitlock .hg/wlock | ||
$ hg debuglocks | ||||
lock: free | ||||
wlock: user *, process * (*s) (glob) | ||||
[1] | ||||
$ hg debuglocks -W | ||||
$ hg debuglocks | ||||
lock: free | ||||
wlock: free | ||||
$ touch .hg/unlock | ||||
$ wait | ||||
Yuya Nishihara
|
r32657 | Test WdirUnsupported exception | ||
$ hg debugdata -c ffffffffffffffffffffffffffffffffffffffff | ||||
abort: working directory revision cannot be specified | ||||
[255] | ||||
Pierre-Yves David
|
r32265 | Test cache warming command | ||
$ rm -rf .hg/cache/ | ||||
$ hg debugupdatecaches --debug | ||||
Pierre-Yves David
|
r32267 | updating the branch cache | ||
Pierre-Yves David
|
r32265 | $ ls -r .hg/cache/* | ||
.hg/cache/rbc-revs-v1 | ||||
.hg/cache/rbc-names-v1 | ||||
.hg/cache/branch2-served | ||||
Mateusz Kwapich
|
r23255 | $ cd .. | ||
Mads Kiilerich
|
r20244 | |||
Test internal debugstacktrace command | ||||
$ cat > debugstacktrace.py << EOF | ||||
Augie Fackler
|
r33955 | > from __future__ import absolute_import | ||
> import sys | ||||
> from mercurial import util | ||||
Mads Kiilerich
|
r20244 | > def f(): | ||
Augie Fackler
|
r33955 | > util.debugstacktrace(f=sys.stdout) | ||
Mads Kiilerich
|
r31313 | > g() | ||
Mads Kiilerich
|
r20244 | > def g(): | ||
Augie Fackler
|
r33955 | > util.dst('hello from g\\n', skip=1) | ||
Mads Kiilerich
|
r31313 | > h() | ||
> def h(): | ||||
Augie Fackler
|
r33955 | > util.dst('hi ...\\nfrom h hidden in g', 1, depth=2) | ||
Mads Kiilerich
|
r31313 | > f() | ||
Mads Kiilerich
|
r20244 | > EOF | ||
Augie Fackler
|
r32940 | $ $PYTHON debugstacktrace.py | ||
Mads Kiilerich
|
r20244 | stacktrace at: | ||
Augie Fackler
|
r33955 | debugstacktrace.py:12 in * (glob) | ||
debugstacktrace.py:5 in f | ||||
Mads Kiilerich
|
r31314 | hello from g at: | ||
Augie Fackler
|
r33955 | debugstacktrace.py:12 in * (glob) | ||
debugstacktrace.py:6 in f | ||||
Mads Kiilerich
|
r31313 | hi ... | ||
from h hidden in g at: | ||||
Augie Fackler
|
r33955 | debugstacktrace.py:6 in f | ||
debugstacktrace.py:9 in g | ||||
Boris Feld
|
r34960 | |||
Test debugcapabilities command: | ||||
$ hg debugcapabilities ./debugrevlog/ | ||||
Main capabilities: | ||||
branchmap | ||||
Boris Feld
|
r35073 | $USUAL_BUNDLE2_CAPS$ | ||
Boris Feld
|
r34960 | getbundle | ||
known | ||||
lookup | ||||
pushkey | ||||
unbundle | ||||
Boris Feld
|
r34961 | Bundle2 capabilities: | ||
HG20 | ||||
Boris Feld
|
r35260 | bookmarks | ||
Boris Feld
|
r34961 | changegroup | ||
01 | ||||
02 | ||||
digests | ||||
md5 | ||||
sha1 | ||||
sha512 | ||||
error | ||||
abort | ||||
unsupportedcontent | ||||
pushraced | ||||
pushkey | ||||
hgtagsfnodes | ||||
listkeys | ||||
phases | ||||
heads | ||||
pushkey | ||||
remote-changegroup | ||||
http | ||||
https | ||||
Boris Feld
|
r36986 | rev-branch-cache | ||
Gregory Szorc
|
r35810 | stream | ||
v2 | ||||
Gregory Szorc
|
r35947 | |||
Test debugpeer | ||||
$ hg --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" debugpeer ssh://user@dummy/debugrevlog | ||||
url: ssh://user@dummy/debugrevlog | ||||
local: no | ||||
pushable: yes | ||||
$ hg --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" --debug debugpeer ssh://user@dummy/debugrevlog | ||||
Matt Harbison
|
r36007 | running "*" "*/tests/dummyssh" 'user@dummy' 'hg -R debugrevlog serve --stdio' (glob) (no-windows !) | ||
running "*" "*\tests/dummyssh" "user@dummy" "hg -R debugrevlog serve --stdio" (glob) (windows !) | ||||
Gregory Szorc
|
r35947 | devel-peer-request: hello | ||
sending hello command | ||||
devel-peer-request: between | ||||
devel-peer-request: pairs: 81 bytes | ||||
sending between command | ||||
Boris Feld
|
r36986 | remote: 403 | ||
Gregory Szorc
|
r37071 | remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN batch | ||
Gregory Szorc
|
r35947 | remote: 1 | ||
url: ssh://user@dummy/debugrevlog | ||||
local: no | ||||
pushable: yes | ||||