##// END OF EJS Templates
debuglocks: add tests (and fix typo in early return)
debuglocks: add tests (and fix typo in early return)

File last commit:

r35260:ad5f2b92 default
r35395:a43b2dd9 default
Show More
test-debugcommands.t
343 lines | 8.8 KiB | text/troff | Tads3Lexer
/ tests / test-debugcommands.t
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 $ cat << EOF >> $HGRCPATH
> [format]
> usegeneraldelta=yes
> EOF
Patrick Mezard
debugrevlog: handle numrevs == numfull case (issue3537)...
r17188 $ hg init debugrevlog
$ cd debugrevlog
$ echo a > a
$ hg ci -Am adda
adding a
$ hg debugrevlog -m
format : 1
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 flags : inline, generaldelta
Patrick Mezard
debugrevlog: handle numrevs == numfull case (issue3537)...
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
commands: print chunk type in debugrevlog...
r30452 chunks : 1
0x75 (u) : 1 (100.00%)
chunks size : 44
0x75 (u) : 44 (100.00%)
Yuya Nishihara
debugrevlog: align chain length, reach, and compression ratio...
r33062 avg chain length : 0
max chain length : 0
max chain reach : 44
compression ratio : 0
Patrick Mezard
debugrevlog: handle numrevs == numfull case (issue3537)...
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
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 Test debugindex, with and without the --debug flag
$ hg debugindex a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev offset length ..... linkrev nodeid p1 p2 (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0 3 .... 0 b789fdd96dc2 000000000000 000000000000 (re)
$ hg --debug debugindex a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev offset length ..... linkrev nodeid p1 p2 (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0 3 .... 0 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 (re)
$ hg debugindex -f 1 a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev flag offset length size ..... link p1 p2 nodeid (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0000 0 3 2 .... 0 -1 -1 b789fdd96dc2 (re)
$ hg --debug debugindex -f 1 a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev flag offset length size ..... link p1 p2 nodeid (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0000 0 3 2 .... 0 -1 -1 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 (re)
Gregory Szorc
commands: add debugdeltachain command...
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
debugindex: respect --debug flag to show full nodeids
r23547
Paul Morelle
debugdeltachain: output information about sparse read if enabled
r35050 debugdelta chain with sparse read enabled
$ cat >> $HGRCPATH <<EOF
> [experimental]
> sparse-read = True
> EOF
$ hg debugdeltachain -m
rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity
0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000 44 44 1.00000
$ 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,
"uncompsize": 43
}
]
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 Test max chain len
$ cat >> $HGRCPATH << EOF
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 > [format]
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 > maxchainlen=4
> EOF
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
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
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "b\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "c\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "d\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "e\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "f\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf 'g\n' >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf 'h\n' >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
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
caches: introduce a 'debugupdatecaches' command...
r32265
Paul Morelle
debuglocks: add tests (and fix typo in early return)
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`
> timeout=1
> 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 [wlock] [lock] will set the locks until interrupted
$ dolock() {
> declare -A options
> options=([${1:-nolock}]=1 [${2:-nowlock}]=1)
> python <<EOF
> from mercurial import hg, ui as uimod
> import os
> import time
>
> repo = hg.repository(uimod.ui.load(), path='.')
> `[ -n "${options["wlock"]}" ] && echo "with repo.wlock(False):" || echo "if True:"`
> `[ -n "${options["lock"]}" ] && echo "with repo.lock(False):" || echo "if True:"`
> while not os.path.exists('.hg/unlock'):
> time.sleep(0.1)
> os.unlink('.hg/unlock')
> EOF
> }
$ dolock lock &
$ waitlock .hg/store/lock
$ hg debuglocks
lock: user *, process * (*s) (glob)
wlock: free
[1]
$ touch .hg/unlock
$ wait
* Test setting the wlock
$ dolock wlock &
$ waitlock .hg/wlock
$ hg debuglocks
lock: free
wlock: user *, process * (*s) (glob)
[1]
$ touch .hg/unlock
$ wait
* Test setting both locks
$ dolock wlock lock &
$ waitlock .hg/wlock && waitlock .hg/store/lock
$ hg debuglocks
lock: user *, process * (*s) (glob)
wlock: user *, process * (*s) (glob)
[2]
$ touch .hg/unlock
$ wait
$ hg debuglocks
lock: free
wlock: free
* Test forcing the lock
$ dolock lock &
$ 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
$ dolock wlock &
$ 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
revlog: map rev(wdirid) to WdirUnsupported exception...
r32657 Test WdirUnsupported exception
$ hg debugdata -c ffffffffffffffffffffffffffffffffffffffff
abort: working directory revision cannot be specified
[255]
Pierre-Yves David
caches: introduce a 'debugupdatecaches' command...
r32265 Test cache warming command
$ rm -rf .hg/cache/
$ hg debugupdatecaches --debug
Pierre-Yves David
caches: move the 'updating the branch cache' message in 'updatecaches'...
r32267 updating the branch cache
Pierre-Yves David
caches: introduce a 'debugupdatecaches' command...
r32265 $ ls -r .hg/cache/*
.hg/cache/rbc-revs-v1
.hg/cache/rbc-names-v1
.hg/cache/branch2-served
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ cd ..
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244
Test internal debugstacktrace command
$ cat > debugstacktrace.py << EOF
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > from __future__ import absolute_import
> import sys
> from mercurial import util
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 > def f():
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > util.debugstacktrace(f=sys.stdout)
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 > g()
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 > def g():
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > util.dst('hello from g\\n', skip=1)
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 > h()
> def h():
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > util.dst('hi ...\\nfrom h hidden in g', 1, depth=2)
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 > f()
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 > EOF
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON debugstacktrace.py
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 stacktrace at:
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 debugstacktrace.py:12 in * (glob)
debugstacktrace.py:5 in f
Mads Kiilerich
util: strip trailing newline from debugstacktrace message...
r31314 hello from g at:
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 debugstacktrace.py:12 in * (glob)
debugstacktrace.py:6 in f
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 hi ...
from h hidden in g at:
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 debugstacktrace.py:6 in f
debugstacktrace.py:9 in g
Boris Feld
debug: add a debugcapabilities commands...
r34960
Test debugcapabilities command:
$ hg debugcapabilities ./debugrevlog/
Main capabilities:
branchmap
Boris Feld
test-pattern: actually update tests using the patterns...
r35073 $USUAL_BUNDLE2_CAPS$
Boris Feld
debug: add a debugcapabilities commands...
r34960 getbundle
known
lookup
pushkey
unbundle
Boris Feld
debug: print parsed bundle2 capabilities with debugcapabilities...
r34961 Bundle2 capabilities:
HG20
Boris Feld
push: include a 'check:bookmarks' part when possible...
r35260 bookmarks
Boris Feld
debug: print parsed bundle2 capabilities with debugcapabilities...
r34961 changegroup
01
02
digests
md5
sha1
sha512
error
abort
unsupportedcontent
pushraced
pushkey
hgtagsfnodes
listkeys
phases
heads
pushkey
remote-changegroup
http
https