Thu, 13 Oct 2011 17:54:37 +0200 run-tests: end doctest block when seeing a non-command stable
Idan Kamara <idankk86@gmail.com> [Thu, 13 Oct 2011 17:54:37 +0200] rev 989
run-tests: end doctest block when seeing a non-command [ original upstream message ]
Thu, 13 Oct 2011 17:48:29 +0100 Merge with stable
Christian Ebert <blacktrash@gmx.net> [Thu, 13 Oct 2011 17:48:29 +0100] rev 988
Merge with stable
Wed, 12 Oct 2011 22:01:14 +0200 tests: add support for inline doctests in test files stable
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:14 +0200] rev 987
tests: add support for inline doctests in test files This adds doctest like syntax to .t files, that can be interleaved with regular shell code: $ echo -n a > file >>> print open('file').read() a >>> open('file', 'a').write('b') $ cat file ab The syntax is exactly the same as regular doctests, so multiline statements look like this: >>> for i in range(3): ... print i 0 1 2 Each block has its own context, i.e.: >>> x = 0 >>> print x 0 $ echo 'foo' foo >>> print x will result in a NameError. Errors are displayed in standard doctest format: >>> print 'foo' bar --- /home/idan/dev/hg/default/tests/test-test.t +++ /home/idan/dev/hg/default/tests/test-test.t.err @@ -2,3 +2,16 @@ > >>> print 'foo' > bar > EOF + ********************************************************************** + File "/tmp/tmps8X_0ohg-tst", line 1, in tmps8X_0ohg-tst + Failed example: + print 'foo' + Expected: + bar + Got: + foo + ********************************************************************** + 1 items had failures: + 1 of 1 in tmps8X_0ohg-tst + ***Test Failed*** 1 failures. + [1] As for the implementation, it's quite simple: when the test runner sees a line starting with '>>>' it converts it, and all subsequent lines until the next line that begins with '$' to a 'python -m heredoctest <<EOF' call with the proper heredoc to follow. So if we have this test file: >>> for c in 'abcd': ... print c a b c d $ echo foo foo It gets converted to: $ python -m heredoctest <<EOF > >>> for c in 'abcd': > ... print c > a > b > c > d > EOF $ echo foo foo And then processed like every other test file by converting it to a sh script. [ original upstream message ]
Sat, 08 Oct 2011 00:24:35 +0100 Merge with stable
Christian Ebert <blacktrash@gmx.net> [Sat, 08 Oct 2011 00:24:35 +0100] rev 986
Merge with stable
Sun, 02 Oct 2011 14:34:28 -0400 import: wrap a transaction around the whole command stable
Greg Ward <greg@gerg.ca> [Sun, 02 Oct 2011 14:34:28 -0400] rev 985
import: wrap a transaction around the whole command Now 'rollback' after 'import' is less surprising: it rolls back all of the imported changesets, not just the last one. As an extra added benefit, you don't need 'rollback -f' after 'import --bypass', which was an undesired side effect of fixing issue2998 (59e8bc22506e).. Note that this is a different take on issue963, which complained that rollback after importing multiple patches returned the working dir parent to the starting point, not to the second-last patch applied. Since we now rollback the entire import, returning the working dir to the starting point is entirely logical. So this change also undoes a732eebf1958, the fix to issue963, and updates its tests accordingly. Bottom line: rollback after import was weird before issue963, understandable since the fix for issue963, and even better now. [ original upstream message ]
Wed, 14 Sep 2011 16:19:33 +0100 (0.9.2compat) merge with default 0.9.2compat
Christian Ebert <blacktrash@gmx.net> [Wed, 14 Sep 2011 16:19:33 +0100] rev 984
(0.9.2compat) merge with default Adapt preserving filemode. Fix a typo. Clean up last merge.
Wed, 14 Sep 2011 15:34:32 +0100 Merge with default stable
Christian Ebert <blacktrash@gmx.net> [Wed, 14 Sep 2011 15:34:32 +0100] rev 983
Merge with default
(0) -300 -100 -30 -10 -7 +7 +10 +30 +100 +300 tip