##// END OF EJS Templates
tests: add a rewriting step to detect EACCES errors
tests: add a rewriting step to detect EACCES errors

File last commit:

r51215:adecb1ab stable
r51215:adecb1ab stable
Show More
test-blackbox.t
497 lines | 17.8 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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: change year in logs to ISO 8601 format...
r49421 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
Arseniy Alekseyev
tests: add a rewriting step to detect EACCES errors
r51215 warning: cannot rename '$TESTTMP/blackboxtest3/.hg/blackbox.log.1' to '$TESTTMP/blackboxtest3/.hg/blackbox.log': $EACCES$
warning: cannot write to blackbox.log: $EACCES$
Valentin Gatien-Baron
blackbox: fix type error on log rotation on read-only filesystem...
r47654 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: change year in logs to ISO 8601 format...
r49421 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
> 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 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: change year in logs to ISO 8601 format...
r49421 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