test-blackbox.t
334 lines
| 11.9 KiB
| text/troff
|
Tads3Lexer
/ tests / test-blackbox.t
Durham Goode
|
r18674 | setup | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> blackbox= | ||||
Gregory Szorc
|
r24705 | > mock=$TESTDIR/mockblackbox.py | ||
Durham Goode
|
r18766 | > mq= | ||
Augie Fackler
|
r29846 | > [alias] | ||
> confuse = log --limit 3 | ||||
Augie Fackler
|
r34299 | > so-confusing = confuse --style compact | ||
Durham Goode
|
r18674 | > EOF | ||
$ hg init blackboxtest | ||||
$ cd blackboxtest | ||||
command, exit codes, and duration | ||||
$ echo a > a | ||||
$ hg add a | ||||
timeless
|
r28246 | $ hg blackbox --config blackbox.dirty=True | ||
Jun Wu
|
r34277 | 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> init blackboxtest exited 0 after * seconds (glob) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a | ||
timeless
|
r28247 | 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob) | ||
timeless
|
r28246 | 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox | ||
Durham Goode
|
r18674 | |||
Augie Fackler
|
r29846 | alias expansion is logged | ||
Augie Fackler
|
r34298 | $ rm ./.hg/blackbox.log | ||
Augie Fackler
|
r29846 | $ hg confuse | ||
$ hg blackbox | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3' | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox | ||||
Augie Fackler
|
r34299 | recursive aliases work correctly | ||
$ rm ./.hg/blackbox.log | ||||
$ hg so-confusing | ||||
$ hg blackbox | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> so-confusing | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'so-confusing' expands to 'confuse --style compact' | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3' | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> so-confusing exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox | ||||
Durham Goode
|
r18677 | incoming change tracking | ||
create two heads to verify that we only see one change in the log later | ||||
$ hg commit -ma | ||||
$ hg up null | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ echo b > b | ||||
$ hg commit -Amb | ||||
adding b | ||||
created new head | ||||
clone, commit, pull | ||||
$ hg clone . ../blackboxtest2 | ||||
updating to branch default | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo c > c | ||||
$ hg commit -Amc | ||||
adding c | ||||
$ cd ../blackboxtest2 | ||||
$ hg pull | ||||
Simon Heimberg
|
r18719 | pulling from $TESTTMP/blackboxtest (glob) | ||
Durham Goode
|
r18677 | searching for changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
(run 'hg update' to get a working copy) | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull | ||
1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated served branch cache in * seconds (glob) | ||||
1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote served branch cache with 1 labels and 2 nodes | ||||
1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> 1 incoming changes - new heads: d02f48003e62 | ||||
timeless
|
r28247 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull exited 0 after * seconds (glob) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6 | ||
Durham Goode
|
r18677 | |||
Bryan O'Sullivan
|
r18786 | we must not cause a failure if we cannot write to the log | ||
$ hg rollback | ||||
repository tip rolled back to revision 1 (undo pull) | ||||
Durham Goode
|
r19082 | |||
timeless
|
r28024 | $ mv .hg/blackbox.log .hg/blackbox.log- | ||
$ mkdir .hg/blackbox.log | ||||
Bryan O'Sullivan
|
r18786 | $ hg --debug incoming | ||
timeless
|
r28024 | warning: cannot write to blackbox.log: * (glob) | ||
Bryan O'Sullivan
|
r18836 | comparing with $TESTTMP/blackboxtest (glob) | ||
Bryan O'Sullivan
|
r18786 | query 1; heads | ||
searching for changes | ||||
all local heads known remotely | ||||
changeset: 2:d02f48003e62c24e2659d97d30f2a83abe5d5d51 | ||||
tag: tip | ||||
phase: draft | ||||
parent: 1:6563da9dcf87b1949716e38ff3e3dfaa3198eb06 | ||||
parent: -1:0000000000000000000000000000000000000000 | ||||
manifest: 2:ab9d46b053ebf45b7996f2922b9893ff4b63d892 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
files+: c | ||||
extra: branch=default | ||||
description: | ||||
c | ||||
$ hg pull | ||||
Bryan O'Sullivan
|
r18836 | pulling from $TESTTMP/blackboxtest (glob) | ||
Bryan O'Sullivan
|
r18786 | searching for changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
(run 'hg update' to get a working copy) | ||||
timeless
|
r28024 | a failure reading from the log is fatal | ||
Bryan O'Sullivan
|
r18786 | $ hg blackbox -l 3 | ||
timeless
|
r28024 | abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob) | ||
Bryan O'Sullivan
|
r18786 | [255] | ||
timeless
|
r28024 | $ rmdir .hg/blackbox.log | ||
$ mv .hg/blackbox.log- .hg/blackbox.log | ||||
Bryan O'Sullivan
|
r18786 | |||
Durham Goode
|
r18766 | backup bundles get logged | ||
$ touch d | ||||
$ hg commit -Amd | ||||
adding d | ||||
created new head | ||||
$ hg strip tip | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob) | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> strip tip | ||
Matt Harbison
|
r28888 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg (glob) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated base branch cache in * seconds (glob) | ||
1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote base branch cache with 1 labels and 2 nodes | ||||
timeless
|
r28247 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6 | ||
Durham Goode
|
r18766 | |||
Durham Goode
|
r18674 | extension and python hooks - use the eol extension for a pythonhook | ||
$ echo '[extensions]' >> .hg/hgrc | ||||
$ echo 'eol=' >> .hg/hgrc | ||||
$ echo '[hooks]' >> .hg/hgrc | ||||
$ echo 'update = echo hooked' >> .hg/hgrc | ||||
$ hg update | ||||
FUJIWARA Katsunori
|
r33425 | The fsmonitor extension is incompatible with the eol extension and has been disabled. (fsmonitor !) | ||
FUJIWARA Katsunori
|
r26752 | hooked | ||
Pierre-Yves David
|
r26028 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Pulkit Goyal
|
r32698 | updated to "d02f48003e62: c" | ||
Pierre-Yves David
|
r28029 | 1 other heads for branch "default" | ||
FUJIWARA Katsunori
|
r33425 | $ cat >> .hg/hgrc <<EOF | ||
> [extensions] | ||||
> # disable eol, because it is not needed for subsequent tests | ||||
> # (in addition, keeping it requires extra care for fsmonitor) | ||||
> eol=! | ||||
> EOF | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Jun Wu
|
r34108 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update (no-chg !) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> writing .hg/cache/tags2-visible with 0 tags | ||
1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob) | ||||
1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> exthook-update: echo hooked finished in * seconds (glob) | ||||
timeless
|
r28247 | 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> update exited 0 after * seconds (glob) | ||
Jun Wu
|
r34108 | 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> serve --cmdserver chgunix --address $TESTTMP.chgsock/server.* --daemon-postexec 'chdir:/' (glob) (chg !) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> blackbox -l 6 | ||
Durham Goode
|
r18674 | |||
Bryan O'Sullivan
|
r19066 | log rotation | ||
$ echo '[blackbox]' >> .hg/hgrc | ||||
$ echo 'maxsize = 20 b' >> .hg/hgrc | ||||
$ echo 'maxfiles = 3' >> .hg/hgrc | ||||
$ hg status | ||||
$ hg status | ||||
$ hg status | ||||
$ hg tip -q | ||||
Gregory Szorc
|
r24706 | 2:d02f48003e62 | ||
Bryan O'Sullivan
|
r19066 | $ ls .hg/blackbox.log* | ||
.hg/blackbox.log | ||||
.hg/blackbox.log.1 | ||||
.hg/blackbox.log.2 | ||||
timeless
|
r28024 | $ cd .. | ||
$ hg init blackboxtest3 | ||||
$ cd blackboxtest3 | ||||
$ hg blackbox | ||||
Jun Wu
|
r34277 | 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> init blackboxtest3 exited 0 after * seconds (glob) | ||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox | ||
timeless
|
r28024 | $ mv .hg/blackbox.log .hg/blackbox.log- | ||
$ mkdir .hg/blackbox.log | ||||
Danek Duvall
|
r28336 | $ sed -e 's/\(.*test1.*\)/#\1/; s#\(.*commit2.*\)#os.rmdir(".hg/blackbox.log")\ | ||
> os.rename(".hg/blackbox.log-", ".hg/blackbox.log")\ | ||||
> \1#' $TESTDIR/test-dispatch.py > ../test-dispatch.py | ||||
Augie Fackler
|
r32940 | $ $PYTHON $TESTDIR/blackbox-readonly-dispatch.py | ||
timeless
|
r28024 | running: add foo | ||
result: 0 | ||||
running: commit -m commit1 -d 2000-01-01 foo | ||||
result: None | ||||
running: commit -m commit2 -d 2000-01-02 foo | ||||
result: None | ||||
running: log -r 0 | ||||
changeset: 0:0e4634943879 | ||||
user: test | ||||
date: Sat Jan 01 00:00:00 2000 +0000 | ||||
summary: commit1 | ||||
result: None | ||||
running: log -r tip | ||||
changeset: 1:45589e459b2e | ||||
tag: tip | ||||
user: test | ||||
date: Sun Jan 02 00:00:00 2000 +0000 | ||||
summary: commit2 | ||||
result: None | ||||
$ hg blackbox | ||||
timeless
|
r28248 | 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> commit -m commit2 -d 2000-01-02 foo | ||
Pierre-Yves David
|
r32266 | 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> updated served branch cache in * seconds (glob) | ||
1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> wrote served branch cache with 1 labels and 1 nodes | ||||
timeless
|
r28248 | 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> commit -m commit2 -d 2000-01-02 foo exited 0 after * seconds (glob) | ||
1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0 | ||||
1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> writing .hg/cache/tags2-visible with 0 tags | ||||
1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0 exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip | ||||
1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip exited 0 after * seconds (glob) | ||||
timeless
|
r28245 | 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> blackbox | ||
Bryan O'Sullivan
|
r19066 | |||
timeless
|
r28407 | Test log recursion from dirty status check | ||
$ cat > ../r.py <<EOF | ||||
> from mercurial import context, error, extensions | ||||
> x=[False] | ||||
> def status(orig, *args, **opts): | ||||
> args[0].repo().ui.log("broken", "recursion?") | ||||
> return orig(*args, **opts) | ||||
> def reposetup(ui, repo): | ||||
> extensions.wrapfunction(context.basectx, 'status', status) | ||||
> EOF | ||||
$ hg id --config extensions.x=../r.py --config blackbox.dirty=True | ||||
45589e459b2e tip | ||||
Durham Goode
|
r18674 | cleanup | ||
$ cd .. | ||||
Jun Wu
|
r34109 | |||
#if chg | ||||
when using chg, blackbox.log should get rotated correctly | ||||
$ cat > $TESTTMP/noop.py << EOF | ||||
> from __future__ import absolute_import | ||||
> import time | ||||
> from mercurial import registrar, scmutil | ||||
> cmdtable = {} | ||||
> command = registrar.command(cmdtable) | ||||
> @command('noop') | ||||
> def noop(ui, repo): | ||||
> pass | ||||
> EOF | ||||
$ hg init blackbox-chg | ||||
$ cd blackbox-chg | ||||
$ cat > .hg/hgrc << EOF | ||||
> [blackbox] | ||||
> maxsize = 500B | ||||
> [extensions] | ||||
> # extension change forces chg to restart | ||||
> noop=$TESTTMP/noop.py | ||||
> EOF | ||||
$ $PYTHON -c 'print("a" * 400)' > .hg/blackbox.log | ||||
$ chg noop | ||||
$ chg noop | ||||
$ chg noop | ||||
$ chg noop | ||||
$ chg noop | ||||
$ cat > showsize.py << 'EOF' | ||||
> import os, sys | ||||
> limit = 500 | ||||
> for p in sys.argv[1:]: | ||||
> size = os.stat(p).st_size | ||||
> if size >= limit: | ||||
> desc = '>=' | ||||
> else: | ||||
> desc = '<' | ||||
> print('%s: %s %d' % (p, desc, limit)) | ||||
> EOF | ||||
$ $PYTHON showsize.py .hg/blackbox* | ||||
.hg/blackbox.log: < 500 | ||||
.hg/blackbox.log.1: >= 500 | ||||
.hg/blackbox.log.2: >= 500 | ||||
$ cd .. | ||||
#endif | ||||
Jun Wu
|
r34277 | |||
blackbox should work if repo.ui.log is not called (issue5518) | ||||
$ cat > $TESTTMP/raise.py << EOF | ||||
> from __future__ import absolute_import | ||||
> from mercurial import registrar, scmutil | ||||
> cmdtable = {} | ||||
> command = registrar.command(cmdtable) | ||||
> @command('raise') | ||||
> def raisecmd(*args): | ||||
> raise RuntimeError('raise') | ||||
> EOF | ||||
$ cat >> $HGRCPATH << EOF | ||||
> [blackbox] | ||||
> track = commandexception | ||||
> [extensions] | ||||
> raise=$TESTTMP/raise.py | ||||
> EOF | ||||
$ hg init $TESTTMP/blackbox-exception-only | ||||
$ cd $TESTTMP/blackbox-exception-only | ||||
#if chg | ||||
(chg exits 255 because it fails to receive an exit code) | ||||
$ hg raise 2>/dev/null | ||||
[255] | ||||
#else | ||||
(hg exits 1 because Python default exit code for uncaught exception is 1) | ||||
$ hg raise 2>/dev/null | ||||
[1] | ||||
#endif | ||||
$ head -1 .hg/blackbox.log | ||||
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> ** Unknown exception encountered with possibly-broken third-party extension mock | ||||
$ tail -2 .hg/blackbox.log | ||||
RuntimeError: raise | ||||