Mercurial > hg
view tests/test-extension @ 10253:b190a8125b43 stable
Work around AIX shell builtin printf not handling \NNN.
On AIX, ksh builtin printf does not understand \NNN. Some tests use this
to generate test data, and so fail on AIX. Rework these tests to use python
to generate the correct characters. This fixes the tests on AIX and should
be more generally portable.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Wed, 06 Jan 2010 18:03:33 +0000 |
parents | 4ce13d7c6b88 |
children | de1e7099d100 |
line wrap: on
line source
#!/bin/sh # Test basic extension support "$TESTDIR/hghave" no-outer-repo || exit 80 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)) ui.write("ui %s= repo.ui\\n" % (ui == repo.ui and "=" or "!")) 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 mkdir barfoo cp foobar.py barfoo/__init__.py barfoopath=`pwd`/barfoo 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 echo 'foobar = !' >> $HGRCPATH echo '% module/__init__.py-style' echo "barfoo = $barfoopath" >> $HGRCPATH cd a hg foo echo 'barfoo = !' >> $HGRCPATH # 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 # 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 \ | grep '^[0-9]) ' # ignores HTML output echo 'foo = !' >> $HGRCPATH echo 'bar = !' >> $HGRCPATH cd .. cat > empty.py <<EOF '''empty cmdtable ''' cmdtable = {} EOF emptypath=`pwd`/empty.py echo "empty = $emptypath" >> $HGRCPATH hg help empty echo 'empty = !' >> $HGRCPATH cat > debugextension.py <<EOF '''only debugcommands ''' def debugfoobar(ui, repo, *args, **opts): "yet another debug command" pass 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") } EOF debugpath=`pwd`/debugextension.py echo "debugextension = $debugpath" >> $HGRCPATH echo "% hg help" hg help debugextension echo "% hg help --verbose" hg --verbose help debugextension echo "% hg help --debug" hg --debug help debugextension echo 'debugextension = !' >> $HGRCPATH 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