##// END OF EJS Templates
debugcommands: introduce new debugrequirements command...
debugcommands: introduce new debugrequirements command This for now just prints out the list of current requirements. In future this will be helpful in reading requirements from couple of sources, and checking which requirement comes from where. Differential Revision: https://phab.mercurial-scm.org/D8632

File last commit:

r36661:1e1c1bfb default
r45667:4a28f5e8 default
Show More
test-lock-badness.t
141 lines | 4.1 KiB | text/troff | Tads3Lexer
/ tests / test-lock-badness.t
Matt Mackall
tests: change some #ifs to #requires
r22047 #require unix-permissions no-root no-windows
Mads Kiilerich
localrepo: give a sigh of relief when getting lock after waiting for it...
r20380
Prepare
Adrian Buehlmann
tests: unify test-lock-badness
r12071 $ hg init a
$ echo a > a/a
$ hg -R a ci -A -m a
adding a
$ hg clone a b
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Siddharth Agarwal
lock: while releasing, unlink lockfile even if the release function throws...
r23032 Test that raising an exception in the release function doesn't cause the lock to choke
$ cat > testlock.py << EOF
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > from mercurial import error, registrar
Siddharth Agarwal
lock: while releasing, unlink lockfile even if the release function throws...
r23032 >
> cmdtable = {}
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > command = registrar.command(cmdtable)
Siddharth Agarwal
lock: while releasing, unlink lockfile even if the release function throws...
r23032 >
> def acquiretestlock(repo, releaseexc):
> def unlock():
> if releaseexc:
Yuya Nishihara
py3: add some b'' to make test-lock-badness.t happy
r36661 > raise error.Abort(b'expected release exception')
> l = repo._lock(repo.vfs, b'testlock', False, unlock, None, b'test lock')
Siddharth Agarwal
lock: while releasing, unlink lockfile even if the release function throws...
r23032 > return l
>
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b'testlockexc')
Siddharth Agarwal
lock: while releasing, unlink lockfile even if the release function throws...
r23032 > def testlockexc(ui, repo):
> testlock = acquiretestlock(repo, True)
> try:
> testlock.release()
> finally:
> try:
> testlock = acquiretestlock(repo, False)
> except error.LockHeld:
Yuya Nishihara
py3: add some b'' to make test-lock-badness.t happy
r36661 > raise error.Abort(b'lockfile on disk even after releasing!')
Siddharth Agarwal
lock: while releasing, unlink lockfile even if the release function throws...
r23032 > testlock.release()
> EOF
$ cat >> $HGRCPATH << EOF
> [extensions]
> testlock=$TESTTMP/testlock.py
> EOF
$ hg -R b testlockexc
abort: expected release exception
[255]
Mads Kiilerich
localrepo: give a sigh of relief when getting lock after waiting for it...
r20380 One process waiting for another
$ cat > hooks.py << EOF
> import time
> def sleepone(**x): time.sleep(1)
> def sleephalf(**x): time.sleep(0.5)
> EOF
Adrian Buehlmann
tests: unify test-lock-badness
r12071 $ echo b > b/b
Mads Kiilerich
localrepo: give a sigh of relief when getting lock after waiting for it...
r20380 $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout &
timeless
tests: test-lock-badness.t message could come later...
r29008 $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \
Boris Feld
lock: allow to configure when the lock messages are displayed...
r35210 > > preup-stdout 2>preup-stderr
timeless
tests: test-lock-badness.t message could come later...
r29008 $ wait
Boris Feld
lock: allow to configure when the lock messages are displayed...
r35210 $ cat preup-stdout
$ cat preup-stderr
Mark Ignacio
lock: show more detail for new-style locks in lock waiting message (issue4752)...
r29883 waiting for lock on working directory of b held by process '*' on host '*' (glob)
timeless
tests: test-lock-badness.t message could come later...
r29008 got lock after * seconds (glob)
Mads Kiilerich
localrepo: give a sigh of relief when getting lock after waiting for it...
r20380 $ cat stdout
Adrian Buehlmann
tests: unify test-lock-badness
r12071 adding b
Boris Feld
lock: allow to configure when the lock messages are displayed...
r35210 On processs waiting on another, warning after a long time.
$ echo b > b/c
$ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout &
$ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \
> --config ui.timeout.warn=250 \
> > preup-stdout 2>preup-stderr
$ wait
$ cat preup-stdout
$ cat preup-stderr
$ cat stdout
adding c
On processs waiting on another, warning disabled.
$ echo b > b/d
$ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout &
$ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \
> --config ui.timeout.warn=-1 \
> > preup-stdout 2>preup-stderr
$ wait
$ cat preup-stdout
$ cat preup-stderr
$ cat stdout
adding d
check we still print debug output
On processs waiting on another, warning after a long time (debug output on)
$ echo b > b/e
$ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout &
$ hg -R b up --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \
> --config ui.timeout.warn=250 --debug\
> > preup-stdout 2>preup-stderr
$ wait
$ cat preup-stdout
calling hook pre-update: hghook_pre-update.sleephalf
waiting for lock on working directory of b held by process '*' on host '*' (glob)
got lock after * seconds (glob)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat preup-stderr
$ cat stdout
adding e
On processs waiting on another, warning disabled, (debug output on)
$ echo b > b/f
$ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout &
$ hg -R b up --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \
> --config ui.timeout.warn=-1 --debug\
> > preup-stdout 2>preup-stderr
$ wait
$ cat preup-stdout
calling hook pre-update: hghook_pre-update.sleephalf
waiting for lock on working directory of b held by process '*' on host '*' (glob)
got lock after * seconds (glob)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat preup-stderr
$ cat stdout
adding f
Mads Kiilerich
localrepo: give a sigh of relief when getting lock after waiting for it...
r20380 Pushing to a local read-only repo that can't be locked
Adrian Buehlmann
tests: unify test-lock-badness
r12071 $ chmod 100 a/.hg/store
$ hg -R b push a
pushing to a
Pierre-Yves David
localrepo: add unbundle support...
r20969 searching for changes
Adrian Buehlmann
tests: unify test-lock-badness
r12071 abort: could not lock repository a: Permission denied
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
tests: unify test-lock-badness
r12071
$ chmod 700 a/.hg/store