mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
9dc21f8d0b
Summary: D13853115 adds `edenscm/` to `sys.path` and code still uses `import mercurial`. That has nasty problems if both `import mercurial` and `import edenscm.mercurial` are used, because Python would think `mercurial.foo` and `edenscm.mercurial.foo` are different modules so code like `try: ... except mercurial.error.Foo: ...`, or `isinstance(x, mercurial.foo.Bar)` would fail to handle the `edenscm.mercurial` version. There are also some module-level states (ex. `extensions._extensions`) that would cause trouble if they have multiple versions in a single process. Change imports to use the `edenscm` so ideally the `mercurial` is no longer imported at all. Add checks in extensions.py to catch unexpected extensions importing modules from the old (wrong) locations when running tests. Reviewed By: phillco Differential Revision: D13868981 fbshipit-source-id: f4e2513766957fd81d85407994f7521a08e4de48
48 lines
1.1 KiB
Perl
48 lines
1.1 KiB
Perl
|
|
$ cat >> $TESTTMP/signal.py << EOF
|
|
> from edenscm.mercurial import registrar
|
|
> import os, signal
|
|
> cmdtable = {}
|
|
> command = registrar.command(cmdtable)
|
|
> @command('signal', norepo=True)
|
|
> def signalcommand(ui, *pats, **kwds):
|
|
> os.kill(os.getpid(), getattr(signal, 'SIG' + pats[0]))
|
|
> EOF
|
|
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [extensions]
|
|
> sigtrace=
|
|
> signal=$TESTTMP/signal.py
|
|
> [sigtrace]
|
|
> pathformat=$TESTTMP/dump-%(pid)s-%(time)s.log
|
|
> EOF
|
|
|
|
Test the default SIGUSR1 signal
|
|
|
|
$ hg signal USR1
|
|
$ ls $TESTTMP/dump-*.log
|
|
$TESTTMP/dump-*-*.log (glob)
|
|
$ grep Thread $TESTTMP/dump-*.log | head -n 1
|
|
Thread *: (glob)
|
|
$ rm $TESTTMP/dump-*.log
|
|
|
|
Test the signal config option
|
|
|
|
$ echo 'signal=USR2' >> $HGRCPATH
|
|
$ echo 'memsignal=USR1' >> $HGRCPATH
|
|
$ hg signal USR2
|
|
$ ls $TESTTMP/dump-*.log
|
|
$TESTTMP/dump-*-*.log (glob)
|
|
$ grep Thread $TESTTMP/dump-*.log | head -n 1
|
|
Thread *: (glob)
|
|
$ rm $TESTTMP/dump-*.log
|
|
|
|
$ echo 'signal=INVALIDSIGNAL' >> $HGRCPATH
|
|
$ echo 'memsignal=INVALIDSIGNAL' >> $HGRCPATH
|
|
$ hg signal USR1 || false
|
|
* (glob)
|
|
[1]
|
|
$ ls $TESTTMP/dump-*.log || false
|
|
ls: * (glob)
|
|
[1]
|