##// END OF EJS Templates
blackbox: add milliseconds to blackbox logs by default...
blackbox: add milliseconds to blackbox logs by default The current second granularity is often not specific enough to determine whether an hg command is happening before or after some other event. Given that starting a process takes on the order of 1ms (well, for native processes. It's quite a bit more for python processes), microseconds seems like unnecessary noise. This also lines up behavior with the rust version, where we already switched to millisecond precision. Differential Revision: https://phab.mercurial-scm.org/D12005

File last commit:

r49420:011f5218 default
r49420:011f5218 default
Show More
test-blackbox.t
499 lines | 17.9 KiB | text/troff | Tads3Lexer
Durham Goode
blackbox: tests for the blackbox extension...
r18674 setup
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036
$ cat > myextension.py <<EOF
> from mercurial import error, registrar
> cmdtable = {}
> command = registrar.command(cmdtable)
> @command(b'crash', [], b'hg crash')
> def crash(ui, *args, **kwargs):
> raise Exception("oops")
Taapas Agrawal
abort: added logic for of hg abort...
r42784 > @command(b'abortcmd', [], b'hg abortcmd')
Yuya Nishihara
dispatch: mask negative exit code recorded in blackbox log...
r38043 > def abort(ui, *args, **kwargs):
> raise error.Abort(b"oops")
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036 > EOF
$ abspath=`pwd`/myextension.py
Durham Goode
blackbox: tests for the blackbox extension...
r18674 $ cat >> $HGRCPATH <<EOF
> [extensions]
> blackbox=
Gregory Szorc
tests: move mock blackbox extension into own file...
r24705 > mock=$TESTDIR/mockblackbox.py
Durham Goode
blackbox: add backup bundle paths to blackbox logs...
r18766 > mq=
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036 > myextension=$TESTTMP/myextension.py
Augie Fackler
blackbox: also log alias expansions...
r29846 > [alias]
> confuse = log --limit 3
Augie Fackler
tests: add a test for blackbox with nested alias configurations...
r34299 > so-confusing = confuse --style compact
Durham Goode
blackbox: tests for the blackbox extension...
r18674 > EOF
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036
Durham Goode
blackbox: tests for the blackbox extension...
r18674 $ hg init blackboxtest
$ cd blackboxtest
command, exit codes, and duration
$ echo a > a
$ hg add a
timeless
blackbox: log dirty state...
r28246 $ hg blackbox --config blackbox.dirty=True
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> init blackboxtest exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> add a
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000+ (5000)> blackbox --config *blackbox.dirty=True* (glob)
Durham Goode
blackbox: tests for the blackbox extension...
r18674
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036 failure exit code
$ rm ./.hg/blackbox.log
$ hg add non-existent
non-existent: $ENOENT$
[1]
$ hg blackbox
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> add non-existent
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> add non-existent exited 1 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036
Yuya Nishihara
dispatch: mask negative exit code recorded in blackbox log...
r38043 abort exit code
$ rm ./.hg/blackbox.log
Taapas Agrawal
abort: added logic for of hg abort...
r42784 $ hg abortcmd 2> /dev/null
Yuya Nishihara
dispatch: mask negative exit code recorded in blackbox log...
r38043 [255]
$ hg blackbox -l 2
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> abortcmd exited 255 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox -l 2
Yuya Nishihara
dispatch: mask negative exit code recorded in blackbox log...
r38043
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036 unhandled exception
$ rm ./.hg/blackbox.log
Kyle Lippincott
tests: expect return status 255 on exception for test-blackbox.t with chg...
r44242 #if chg
(chg exits 255 because it fails to receive an exit code)
$ hg crash 2>/dev/null
[255]
#else
(hg exits 1 because Python default exit code for uncaught exception is 1)
$ hg crash 2>/dev/null
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036 [1]
Kyle Lippincott
tests: expect return status 255 on exception for test-blackbox.t with chg...
r44242 #endif
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036 $ hg blackbox -l 2
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> crash exited 1 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox -l 2
Martin von Zweigbergk
tests: test failure reporting in blackbox code...
r38036
Augie Fackler
blackbox: also log alias expansions...
r29846 alias expansion is logged
Augie Fackler
tests: clean up blackbox test around aliases a little bit
r34298 $ rm ./.hg/blackbox.log
Augie Fackler
blackbox: also log alias expansions...
r29846 $ hg confuse
$ hg blackbox
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> confuse
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3'
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> confuse exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox
Augie Fackler
blackbox: also log alias expansions...
r29846
Augie Fackler
tests: add a test for blackbox with nested alias configurations...
r34299 recursive aliases work correctly
$ rm ./.hg/blackbox.log
$ hg so-confusing
$ hg blackbox
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> so-confusing
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> alias 'so-confusing' expands to 'confuse --style compact'
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3'
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> so-confusing exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox
Augie Fackler
tests: add a test for blackbox with nested alias configurations...
r34299
Matt DeVore
blackbox: add configitem for format of log timestamps...
r40466 custom date format
$ rm ./.hg/blackbox.log
$ hg --config blackbox.date-format='%Y-%m-%d @ %H:%M:%S' \
> --config devel.default-date='1334347993 0' --traceback status
A a
$ hg blackbox
Matt Harbison
tests: glob over a single quote vs double quote difference on Windows
r40474 2012-04-13 @ 20:13:13 bob @0000000000000000000000000000000000000000 (5000)> --config *blackbox.date-format=%Y-%m-%d @ %H:%M:%S* --config *devel.default-date=1334347993 0* --traceback status (glob)
2012-04-13 @ 20:13:13 bob @0000000000000000000000000000000000000000 (5000)> --config *blackbox.date-format=%Y-%m-%d @ %H:%M:%S* --config *devel.default-date=1334347993 0* --traceback status exited 0 after * seconds (glob)
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox
Matt DeVore
blackbox: add configitem for format of log timestamps...
r40466
Durham Goode
blackbox: only show new heads on incoming...
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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/blackboxtest
Durham Goode
blackbox: only show new heads on incoming...
r18677 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets d02f48003e62
Durham Goode
blackbox: only show new heads on incoming...
r18677 (run 'hg update' to get a working copy)
timeless
blackbox: flush output file descriptor...
r28025 $ hg blackbox -l 6
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote branch cache (served) with 1 labels and 2 nodes
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated branch cache (served.hidden) in * seconds (glob)
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote branch cache (served.hidden) with 1 labels and 2 nodes
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> 1 incoming changes - new heads: d02f48003e62
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
Durham Goode
blackbox: only show new heads on incoming...
r18677
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
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
blackbox: don't run permission tests on non-unix systems...
r19082
timeless
tests: change blackbox test to work cross platform...
r28024 $ mv .hg/blackbox.log .hg/blackbox.log-
$ mkdir .hg/blackbox.log
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 $ hg --debug incoming
timeless
tests: change blackbox test to work cross platform...
r28024 warning: cannot write to blackbox.log: * (glob)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/blackboxtest
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 query 1; heads
searching for changes
discovery: replace "heads" by "changesets" in a output note (BC)...
r43154 all local changesets known remotely
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/blackboxtest
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets d02f48003e62
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 (run 'hg update' to get a working copy)
timeless
tests: change blackbox test to work cross platform...
r28024 a failure reading from the log is fatal
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 $ hg blackbox -l 3
timeless
tests: change blackbox test to work cross platform...
r28024 abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob)
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786 [255]
timeless
tests: change blackbox test to work cross platform...
r28024 $ rmdir .hg/blackbox.log
$ mv .hg/blackbox.log- .hg/blackbox.log
Bryan O'Sullivan
blackbox: prevent failed I/O from causing hg to abort...
r18786
Durham Goode
blackbox: add backup bundle paths to blackbox logs...
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
blackbox: flush output file descriptor...
r28025 $ hg blackbox -l 6
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> strip tip
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated branch cache (immutable) in * seconds (glob)
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote branch cache (immutable) with 1 labels and 2 nodes
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
Durham Goode
blackbox: add backup bundle paths to blackbox logs...
r18766
Durham Goode
blackbox: tests for the blackbox extension...
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
tests: take extra care for fsmonitor at enabling incompatible extension...
r33425 The fsmonitor extension is incompatible with the eol extension and has been disabled. (fsmonitor !)
FUJIWARA Katsunori
merge: make in-memory changes visible to external update hooks...
r26752 hooked
Pierre-Yves David
update: wlock the repo for the whole 'hg update' command...
r26028 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
update: show the commit to which we updated in case of multiple heads (BC)...
r32698 updated to "d02f48003e62: c"
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 1 other heads for branch "default"
FUJIWARA Katsunori
tests: take extra care for fsmonitor at enabling incompatible extension...
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
Martin von Zweigbergk
eol: look up partial nodeid as partial nodeid...
r37525 $ hg blackbox -l 5
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update (no-chg !)
1970/01/01 00:00:00.000 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
1970/01/01 00:00:00.000 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> exthook-update: echo hooked finished in * seconds (glob)
1970/01/01 00:00:00.000 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> update exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> serve --no-profile --cmdserver chgunix --address $TESTTMP.chgsock/server.* --daemon-postexec 'chdir:/' (glob) (chg !)
1970/01/01 00:00:00.000 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> blackbox -l 5
Durham Goode
blackbox: tests for the blackbox extension...
r18674
Bryan O'Sullivan
blackbox: automatically rotate log files...
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
tests: move blackbox testing of tags to test-tags.t...
r24706 2:d02f48003e62
Bryan O'Sullivan
blackbox: automatically rotate log files...
r19066 $ ls .hg/blackbox.log*
.hg/blackbox.log
.hg/blackbox.log.1
.hg/blackbox.log.2
timeless
tests: change blackbox test to work cross platform...
r28024 $ cd ..
$ hg init blackboxtest3
$ cd blackboxtest3
$ hg blackbox
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> init blackboxtest3 exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> blackbox
timeless
tests: change blackbox test to work cross platform...
r28024 $ mv .hg/blackbox.log .hg/blackbox.log-
$ mkdir .hg/blackbox.log
Danek Duvall
tests: Solaris sed does not support "\n" meaning newline in the RHS of s///...
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
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" $TESTDIR/blackbox-readonly-dispatch.py
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 running: --debug add foo
Matt Harbison
test-blackbox: stabilize for Windows...
r35747 warning: cannot write to blackbox.log: Is a directory (no-windows !)
warning: cannot write to blackbox.log: $TESTTMP/blackboxtest3/.hg/blackbox.log: Access is denied (windows !)
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 adding foo
timeless
tests: change blackbox test to work cross platform...
r28024 result: 0
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 running: --debug commit -m commit1 -d 2000-01-01 foo
Matt Harbison
test-blackbox: stabilize for Windows...
r35747 warning: cannot write to blackbox.log: Is a directory (no-windows !)
warning: cannot write to blackbox.log: $TESTTMP/blackboxtest3/.hg/blackbox.log: Access is denied (windows !)
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 committing files:
foo
committing manifest
committing changelog
updating the branch cache
committed changeset 0:0e46349438790c460c5c9f7546bfcd39b267bbd2
Yuya Nishihara
dispatch: unify handling of None returned by a command function...
r38015 result: 0
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 running: --debug commit -m commit2 -d 2000-01-02 foo
committing files:
foo
committing manifest
committing changelog
updating the branch cache
committed changeset 1:45589e459b2edfbf3dbde7e01f611d2c1e7453d7
Yuya Nishihara
dispatch: unify handling of None returned by a command function...
r38015 result: 0
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 running: --debug log -r 0
changeset: 0:0e46349438790c460c5c9f7546bfcd39b267bbd2
phase: draft
parent: -1:0000000000000000000000000000000000000000
parent: -1:0000000000000000000000000000000000000000
manifest: 0:9091aa5df980aea60860a2e39c95182e68d1ddec
timeless
tests: change blackbox test to work cross platform...
r28024 user: test
date: Sat Jan 01 00:00:00 2000 +0000
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 files+: foo
extra: branch=default
description:
commit1
timeless
tests: change blackbox test to work cross platform...
r28024
Yuya Nishihara
dispatch: unify handling of None returned by a command function...
r38015 result: 0
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 running: --debug log -r tip
changeset: 1:45589e459b2edfbf3dbde7e01f611d2c1e7453d7
timeless
tests: change blackbox test to work cross platform...
r28024 tag: tip
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 phase: draft
parent: 0:0e46349438790c460c5c9f7546bfcd39b267bbd2
parent: -1:0000000000000000000000000000000000000000
manifest: 1:895aa9b7886f89dd017a6d62524e1f9180b04df9
timeless
tests: change blackbox test to work cross platform...
r28024 user: test
date: Sun Jan 02 00:00:00 2000 +0000
Joerg Sonnenberger
blackbox: if --debug is used, also trace ui.debug() calls...
r35742 files: foo
extra: branch=default
description:
commit2
timeless
tests: change blackbox test to work cross platform...
r28024
Yuya Nishihara
dispatch: unify handling of None returned by a command function...
r38015 result: 0
timeless
tests: change blackbox test to work cross platform...
r28024 $ hg blackbox
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> updating the branch cache
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> updated branch cache (served) in * seconds (glob)
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> wrote branch cache (served) with 1 labels and 1 nodes
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> --debug commit -m commit2 -d 2000-01-02 foo exited 0 after *.?? seconds (glob)
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> --debug log -r 0
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> writing .hg/cache/tags2-visible with 0 tags
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> --debug log -r 0 exited 0 after *.?? seconds (glob)
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> --debug log -r tip
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> --debug log -r tip exited 0 after *.?? seconds (glob)
1970/01/01 00:00:00.000 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> blackbox
Bryan O'Sullivan
blackbox: automatically rotate log files...
r19066
Valentin Gatien-Baron
blackbox: fix type error on log rotation on read-only filesystem...
r47654 Skip rotation if the .hg is read-only
#if unix-permissions
$ chmod -w .hg
$ hg log -r. -T '{rev}\n' --config blackbox.maxsize=1 --debug
warning: cannot rename '$TESTTMP/blackboxtest3/.hg/blackbox.log.1' to '$TESTTMP/blackboxtest3/.hg/blackbox.log': Permission denied
warning: cannot write to blackbox.log: Permission denied
1
$ chmod +w .hg
#endif
timeless
blackbox: guard against recursion from dirty check
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):
Yuya Nishihara
py3: byte-stringify test-blackbox.t
r36758 > args[0].repo().ui.log(b"broken", b"recursion?")
timeless
blackbox: guard against recursion from dirty check
r28407 > 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
blackbox: tests for the blackbox extension...
r18674 cleanup
$ cd ..
Jun Wu
blackbox: fix rotation with chg...
r34109
Yuya Nishihara
blackbox: just try writing to repo.vfs and update lastlogger on success...
r40828 Test missing log directory, which shouldn't be created automatically
$ cat <<'EOF' > closeremove.py
> def reposetup(ui, repo):
> class rmrepo(repo.__class__):
> def close(self):
> super(rmrepo, self).close()
> self.ui.debug(b'removing %s\n' % self.vfs.base)
> self.vfs.rmtree()
> repo.__class__ = rmrepo
> EOF
$ hg init gone
$ cd gone
$ cat <<'EOF' > .hg/hgrc
> [extensions]
> closeremove = ../closeremove.py
> EOF
$ hg log --debug
removing $TESTTMP/gone/.hg
Matt Harbison
tests: stabilize test-blackbox.t on Windows...
r40844 warning: cannot write to blackbox.log: $ENOENT$ (no-windows !)
warning: cannot write to blackbox.log: $TESTTMP/gone/.hg/blackbox.log: $ENOTDIR$ (windows !)
Yuya Nishihara
blackbox: just try writing to repo.vfs and update lastlogger on success...
r40828 $ cd ..
Kyle Lippincott
blackbox: test that unsetting track disables blackbox logging...
r41781 blackbox should disable itself if track is empty
$ hg --config blackbox.track= init nothing_tracked
$ cd nothing_tracked
$ cat >> .hg/hgrc << EOF
> [blackbox]
> track =
> EOF
$ hg blackbox
$ cd $TESTTMP
Kyle Lippincott
blackbox: test that track=* works to log everything...
r41782 a '*' entry in blackbox.track is interpreted as log everything
$ hg --config blackbox.track='*' \
> --config blackbox.logsource=True \
> init track_star
$ cd track_star
$ cat >> .hg/hgrc << EOF
> [blackbox]
> logsource = True
> track = *
> EOF
(only look for entries with specific logged sources, otherwise this test is
pretty brittle)
$ hg blackbox | egrep '\[command(finish)?\]'
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000) [commandfinish]> --config *blackbox.track=* --config *blackbox.logsource=True* init track_star exited 0 after * seconds (glob)
1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000) [command]> blackbox
Kyle Lippincott
blackbox: test that track=* works to log everything...
r41782 $ cd $TESTTMP
Jun Wu
blackbox: fix rotation with chg...
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)
Kyle Lippincott
tests: fix command name in test-blackbox.t to be bytes...
r44241 > @command(b'noop')
Jun Wu
blackbox: fix rotation with chg...
r34109 > 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
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" -c 'print("a" * 400)' > .hg/blackbox.log
Jun Wu
blackbox: fix rotation with chg...
r34109 $ chg noop
$ chg noop
$ chg noop
$ chg noop
$ chg noop
$ cat > showsize.py << 'EOF'
Matt Harbison
py3: fix module imports in tests, as flagged by test-check-module-imports.t...
r40405 > import os
> import sys
Jun Wu
blackbox: fix rotation with chg...
r34109 > 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
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" showsize.py .hg/blackbox*
Jun Wu
blackbox: fix rotation with chg...
r34109 .hg/blackbox.log: < 500
.hg/blackbox.log.1: >= 500
.hg/blackbox.log.2: >= 500
$ cd ..
Jun Wu
blackbox: do not prevent 'chg init' from working...
r34300 With chg, blackbox should not create the log file if the repo is gone
$ hg init repo1
$ hg --config extensions.a=! -R repo1 log
$ rm -rf $TESTTMP/repo1
$ hg --config extensions.a=! init repo1
Jun Wu
blackbox: fix rotation with chg...
r34109 #endif
Jun Wu
blackbox: set lastui even if ui.log is not called (issue5518)...
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)
Yuya Nishihara
py3: byte-stringify test-blackbox.t
r36758 > @command(b'raise')
Jun Wu
blackbox: set lastui even if ui.log is not called (issue5518)...
r34277 > 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
Valentin Gatien-Baron
blackbox: add milliseconds to blackbox logs by default...
r49420 1970/01/01 00:00:00.000 bob @0000000000000000000000000000000000000000 (5000)> ** Unknown exception encountered with possibly-broken third-party extension "mock" (version N/A)
Jun Wu
blackbox: set lastui even if ui.log is not called (issue5518)...
r34277 $ tail -2 .hg/blackbox.log
RuntimeError: raise