##// END OF EJS Templates
run-tests: give each child its own tmp dir (issue1911)...
run-tests: give each child its own tmp dir (issue1911) Fixes bug introduced by f8b4df4b033d (issue1911: --tmpdir plus parallel mode = fail), and also fixes the long-standing quirk that parallel mode created multiple /tmp/hgtests.XXXXXX directories. Now there is only one /tmp/hgtests.XXXXXX, with child0, child1, etc. under it.

File last commit:

r9802:4ce13d7c default
r9899:be574a37 stable
Show More
test-extension
155 lines | 3.3 KiB | text/plain | TextLexer
Alexis S. L. Carvalho
install reposetup hook right after loading the extension
r4064 #!/bin/sh
# Test basic extension support
Mads Kiilerich
tests: Skip tests if they will fail because of outer repo...
r7429 "$TESTDIR/hghave" no-outer-repo || exit 80
Alexis S. L. Carvalho
install reposetup hook right after loading the extension
r4064 cat > foobar.py <<EOF
import os
from mercurial import commands
def uisetup(ui):
ui.write("uisetup called\\n")
def reposetup(ui, repo):
ui.write("reposetup called for %s\\n" % os.path.basename(repo.root))
Alexis S. L. Carvalho
Try to pass repo.ui to reposetup hooks...
r4074 ui.write("ui %s= repo.ui\\n" % (ui == repo.ui and "=" or "!"))
Alexis S. L. Carvalho
install reposetup hook right after loading the extension
r4064
def foo(ui, *args, **kwargs):
ui.write("Foo\\n")
def bar(ui, *args, **kwargs):
ui.write("Bar\\n")
cmdtable = {
"foo": (foo, [], "hg foo"),
"bar": (bar, [], "hg bar"),
}
commands.norepo += ' bar'
EOF
abspath=`pwd`/foobar.py
Brendan Cully
extensions: load modules in module/__init__.py form....
r4569 mkdir barfoo
cp foobar.py barfoo/__init__.py
barfoopath=`pwd`/barfoo
Alexis S. L. Carvalho
install reposetup hook right after loading the extension
r4064 hg init a
cd a
echo foo > file
hg add file
hg commit -m 'add file'
echo '[extensions]' >> $HGRCPATH
echo "foobar = $abspath" >> $HGRCPATH
hg foo
cd ..
hg clone a b
hg bar
Alexis S. L. Carvalho
tests/*: avoid losing the original settings from $HGRCPATH
r5523 echo 'foobar = !' >> $HGRCPATH
Brendan Cully
extensions: load modules in module/__init__.py form....
r4569
echo '% module/__init__.py-style'
echo "barfoo = $barfoopath" >> $HGRCPATH
cd a
hg foo
Alexis S. L. Carvalho
tests/*: avoid losing the original settings from $HGRCPATH
r5523 echo 'barfoo = !' >> $HGRCPATH
Brendan Cully
Handle extensions with defined but empty cmdtable
r4738
Martin Geisler
extensions: load and configure extensions in well-defined phases...
r9410 # check that extensions are loaded in phases
cat > foo.py <<EOF
import os
name = os.path.basename(__file__).rsplit('.', 1)[0]
print "1) %s imported" % name
def uisetup(ui):
print "2) %s uisetup" % name
def extsetup():
print "3) %s extsetup" % name
def reposetup(ui, repo):
print "4) %s reposetup" % name
EOF
cp foo.py bar.py
echo 'foo = foo.py' >> $HGRCPATH
echo 'bar = bar.py' >> $HGRCPATH
# command with no output, we just want to see the extensions loaded
hg paths
Yuya Nishihara
hgweb: added test case for extension loading phases (issue1824)...
r9661 # check hgweb's load order
echo '% hgweb.cgi'
cat > hgweb.cgi <<EOF
#!/usr/bin/env python
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb
from mercurial.hgweb import wsgicgi
application = hgweb('.', 'test repo')
wsgicgi.launch(application)
EOF
SCRIPT_NAME='/' SERVER_PORT='80' SERVER_NAME='localhost' python hgweb.cgi \
Mads Kiilerich
test-extension: Solaris grep don't know [[:digit:]]
r9802 | grep '^[0-9]) ' # ignores HTML output
Yuya Nishihara
hgweb: added test case for extension loading phases (issue1824)...
r9661
Martin Geisler
extensions: load and configure extensions in well-defined phases...
r9410 echo 'foo = !' >> $HGRCPATH
echo 'bar = !' >> $HGRCPATH
Brendan Cully
Handle extensions with defined but empty cmdtable
r4738 cd ..
cat > empty.py <<EOF
'''empty cmdtable
'''
cmdtable = {}
EOF
emptypath=`pwd`/empty.py
echo "empty = $emptypath" >> $HGRCPATH
hg help empty
Alexis S. L. Carvalho
tests/*: avoid losing the original settings from $HGRCPATH
r5523 echo 'empty = !' >> $HGRCPATH
Alexis S. L. Carvalho
help: avoid traceback if an extension has only debug commands
r4950
cat > debugextension.py <<EOF
'''only debugcommands
'''
def debugfoobar(ui, repo, *args, **opts):
"yet another debug command"
pass
Dan Villiom Podlaski Christiansen
commands: hide deprecated commands....
r9128 def foo(ui, repo, *args, **opts):
"""yet another foo command
This command has been DEPRECATED since forever.
"""
pass
cmdtable = {
"debugfoobar": (debugfoobar, (), "hg debugfoobar"),
"foo": (foo, (), "hg foo")
}
Alexis S. L. Carvalho
help: avoid traceback if an extension has only debug commands
r4950 EOF
debugpath=`pwd`/debugextension.py
echo "debugextension = $debugpath" >> $HGRCPATH
Dan Villiom Podlaski Christiansen
commands: hide deprecated commands....
r9128 echo "% hg help"
Alexis S. L. Carvalho
help: avoid traceback if an extension has only debug commands
r4950 hg help debugextension
Dan Villiom Podlaski Christiansen
commands: hide deprecated commands....
r9128 echo "% hg help --verbose"
hg --verbose help debugextension
echo "% hg help --debug"
Alexis S. L. Carvalho
help: avoid traceback if an extension has only debug commands
r4950 hg --debug help debugextension
Alexis S. L. Carvalho
tests/*: avoid losing the original settings from $HGRCPATH
r5523 echo 'debugextension = !' >> $HGRCPATH
Benoit Boissinot
Do not try to load extensions twice (issue811)
r7011
echo % issue811
debugpath=`pwd`/debugissue811.py
cat > debugissue811.py <<EOF
'''show all loaded extensions
'''
from mercurial import extensions, commands
def debugextensions(ui):
"yet another debug command"
ui.write("%s\n" % '\n'.join([x for x, y in extensions.extensions()]))
cmdtable = {"debugextensions": (debugextensions, (), "hg debugextensions")}
commands.norepo += " debugextensions"
EOF
echo "debugissue811 = $debugpath" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "hgext.mq=" >> $HGRCPATH
echo "hgext/mq=" >> $HGRCPATH
echo % show extensions
hg debugextensions