##// END OF EJS Templates
global: mass rewrite to use modern exception syntax...
global: mass rewrite to use modern exception syntax Python 2.6 introduced the "except type as instance" syntax, replacing the "except type, instance" syntax that came before. Python 3 dropped support for the latter syntax. Since we no longer support Python 2.4 or 2.5, we have no need to continue supporting the "except type, instance". This patch mass rewrites the exception syntax to be Python 2.6+ and Python 3 compatible. This patch was produced by running `2to3 -f except -w -n .`.

File last commit:

r23032:f484be02 default
r25660:328739ea default
Show More
test-lock-badness.t
77 lines | 2.0 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
> from mercurial import cmdutil, error, util
>
> cmdtable = {}
> command = cmdutil.command(cmdtable)
>
> def acquiretestlock(repo, releaseexc):
> def unlock():
> if releaseexc:
> raise util.Abort('expected release exception')
> l = repo._lock(repo.vfs, 'testlock', False, unlock, None, 'test lock')
> return l
>
> @command('testlockexc')
> def testlockexc(ui, repo):
> testlock = acquiretestlock(repo, True)
> try:
> testlock.release()
> finally:
> try:
> testlock = acquiretestlock(repo, False)
> except error.LockHeld:
> raise util.Abort('lockfile on disk even after releasing!')
> 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 &
$ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf"
waiting for lock on working directory of b held by '*:*' (glob)
Simon Heimberg
tests: match time by a glob to fix intermittent failures of test-lock-badness.t...
r20653 got lock after ? seconds (glob)
Mads Kiilerich
localrepo: give a sigh of relief when getting lock after waiting for it...
r20380 warning: ignoring unknown working parent d2ae7f538514!
$ wait
$ cat stdout
Adrian Buehlmann
tests: unify test-lock-badness
r12071 adding b
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