Mercurial > public > mercurial-scm > hg
diff tests/test-mq-qpush-fail.t @ 12467:05e1171cf4ca
tests: unify test-mq-qpush-fail
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 13:43:21 -0500 |
parents | tests/test-mq-qpush-fail@8cb81d75730c |
children | 05fffd665170 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-mq-qpush-fail.t Sun Sep 26 13:43:21 2010 -0500 @@ -0,0 +1,90 @@ +Test that qpush cleans things up if it doesn't complete + + $ echo "[extensions]" >> $HGRCPATH + $ echo "mq=" >> $HGRCPATH + $ hg init repo + $ cd repo + $ echo foo > foo + $ hg ci -Am 'add foo' + adding foo + $ touch untracked-file + $ echo 'syntax: glob' > .hgignore + $ echo '.hgignore' >> .hgignore + $ hg qinit + +test qpush on empty series + + $ hg qpush + no patches in series + $ hg qnew patch1 + $ echo >> foo + $ hg qrefresh -m 'patch 1' + $ hg qnew patch2 + $ echo bar > bar + $ hg add bar + $ hg qrefresh -m 'patch 2' + $ hg qnew --config 'mq.plain=true' bad-patch + $ echo >> foo + $ hg qrefresh + $ hg qpop -a + popping bad-patch + popping patch2 + popping patch1 + patch queue now empty + $ python -c 'print "\xe9"' > message + $ cat .hg/patches/bad-patch >> message + $ mv message .hg/patches/bad-patch + $ hg qpush -a && echo 'qpush succeded?!' + applying patch1 + applying patch2 + applying bad-patch + transaction abort! + rollback completed + cleaning up working directory...done + abort: decoding near 'é': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)! + [255] + $ hg parents + changeset: 0:bbd179dfa0a7 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add foo + + +bar should be gone; other unknown/ignored files should still be around + + $ hg status -A + ? untracked-file + I .hgignore + C foo + +preparing qpush of a missing patch + + $ hg qpop -a + no patches applied + $ hg qpush + applying patch1 + now at: patch1 + $ rm .hg/patches/patch2 + +now we expect the push to fail, but it should NOT complain about patch1 + + $ hg qpush + applying patch2 + unable to read patch2 + now at: patch1 + [1] + +preparing qpush of missing patch with no patch applied + + $ hg qpop -a + popping patch1 + patch queue now empty + $ rm .hg/patches/patch1 + +qpush should fail the same way as below + + $ hg qpush + applying patch1 + unable to read patch1 + [1]