sapling/tests/test-hiddenerror.t
Durham Goode 2bc65bd9db hiddenerror: fix out of bounds error
Summary:
The current code checks if the filter error reports a rev number, and if it does
tries to convert it to a node. If the 'number' is actually just a short form of
a hash that happens to be all digits, then it may be a number greater than the
size of the changelog, so we need to not attempt to access it in the changelog,
otherwise we get an IndexError.

Test Plan: Added a test, it failed before with a weird error

Reviewers: #mercurial, kulshrax

Reviewed By: kulshrax

Subscribers: mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D4613988

Signature: t1:4613988:1488027938:4f5ffcb07aeecbaf59cad20fb3a592dd92ed2beb
2017-02-25 15:26:19 -08:00

51 lines
1.2 KiB
Perl

$ extpath=`dirname $TESTDIR`
$ cp $extpath/hgext3rd/hiddenerror.py $TESTTMP
$ cat >> $HGRCPATH << EOF
> [extensions]
> hiddenerror=$TESTTMP/hiddenerror.py
> [experimental]
> evolution=all
> EOF
Create hidden changeset.
$ hg init repo && cd repo
$ hg debugbuilddag +1
$ hg debugobsolete 1ea73414a91b0920940797d8fc6a11e447f8ea1e
Test default error message.
$ hg log -r 0
abort: hidden changeset 1ea73414a91b!
[255]
Test custom error message without hash.
$ cat >> $HGRCPATH << EOF
> [hiddenerror]
> message = message without hash
> hint = hint without hash
> EOF
$ hg log -r 0
abort: message without hash!
(hint without hash)
[255]
Test custom error message with hash.
$ cat >> $HGRCPATH << EOF
> [hiddenerror]
> message = message with hash {0}
> hint = hint with hash {0}
> EOF
$ hg log -r 0
abort: message with hash 1ea73414a91b!
(hint with hash 1ea73414a91b)
[255]
Test accessing a rev beyond the end of the repo
$ hg log -r 1
abort: hidden revision '1'!
(use --hidden to access hidden revisions)
[255]
Test that basic operations like `status` don't throw an exception due
to the wrapped context constructor.
$ hg status