mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 14:58:03 +03:00
92f6f35e7a
Summary: This diff marks **ALL** mercurial tests requiring Python 2 feature. After you fixes some tests, simply remove the `py2` feature requirement and that tests will be continuously run after your diff is landed. To bypass this feature requirement, run the tests command with `HGTEST_FORCE_PY2=1`. For example: ``` HGTEST_FORCE_PY2=1 buck test //eden/scm/tests:hg_run_tests ``` or ``` HGTEST_FORCE_PY2=1 python run-tests.py ``` ---- Basically this diff are created with the following commands: ``` $ sed -i 's/import feature\(.*\)$/import feature\1\n\nfeature.require(["py2"])/' test-*-t.py $ sed -i '1s/^/#require py2\n/' test-*.t $ ls | grep -P "^test.*(?<\!-t)\.py$" > list && vim -p $(cat list) # manually adding feature requires for these Python tests. ``` (Note: this ignores all push blocking failures!) ignore-conflict-markers Reviewed By: singhsrb Differential Revision: D19655148 fbshipit-source-id: 985e3ccb4010cc559049f1d89f8909bc2d9b5e20
138 lines
2.1 KiB
Perl
138 lines
2.1 KiB
Perl
#require py2
|
|
#chg-compatible
|
|
|
|
Test that the syntax of "unified tests" is properly processed
|
|
==============================================================
|
|
|
|
Simple commands:
|
|
|
|
$ echo foo
|
|
foo
|
|
$ printf 'oh no'
|
|
oh no (no-eol)
|
|
$ printf 'bar\nbaz\n' | cat
|
|
bar
|
|
baz
|
|
|
|
Multi-line command:
|
|
|
|
$ foo() {
|
|
> echo bar
|
|
> }
|
|
$ foo
|
|
bar
|
|
|
|
Return codes before inline python:
|
|
|
|
$ sh -c 'exit 1'
|
|
[1]
|
|
|
|
Doctest commands:
|
|
|
|
>>> from __future__ import print_function
|
|
>>> print('foo')
|
|
foo
|
|
$ echo interleaved
|
|
interleaved
|
|
>>> for c in 'xyz':
|
|
... print(c)
|
|
x
|
|
y
|
|
z
|
|
>>> print()
|
|
|
|
>>> foo = 'global name'
|
|
>>> def func():
|
|
... print(foo, 'should be visible in func()')
|
|
>>> func()
|
|
global name should be visible in func()
|
|
>>> print('''multiline
|
|
... string''')
|
|
multiline
|
|
string
|
|
|
|
Regular expressions:
|
|
|
|
$ echo foobarbaz
|
|
foobar.* (re)
|
|
$ echo barbazquux
|
|
.*quux.* (re)
|
|
|
|
Globs:
|
|
|
|
$ printf '* \\foobarbaz {10}\n'
|
|
\* \\fo?bar* {10} (glob)
|
|
|
|
Literal match ending in " (re)":
|
|
|
|
$ echo 'foo (re)'
|
|
foo (re)
|
|
|
|
Windows: \r\n is handled like \n and can be escaped:
|
|
|
|
#if windows
|
|
$ printf 'crlf\r\ncr\r\tcrlf\r\ncrlf\r\n'
|
|
crlf
|
|
cr\r (no-eol) (esc)
|
|
\tcrlf (esc)
|
|
crlf\r (esc)
|
|
#endif
|
|
|
|
Combining esc with other markups - and handling lines ending with \r instead of \n:
|
|
|
|
$ printf 'foo/bar\r'
|
|
fo?/bar\r (no-eol) (glob) (esc)
|
|
#if windows
|
|
$ printf 'foo\\bar\r'
|
|
foo/bar\r (no-eol) (esc)
|
|
#endif
|
|
$ printf 'foo/bar\rfoo/bar\r'
|
|
foo.bar\r \(no-eol\) (re) (esc)
|
|
foo.bar\r \(no-eol\) (re)
|
|
|
|
testing hghave
|
|
|
|
$ hg debugpython -- "$TESTDIR/hghave" true
|
|
$ hg debugpython -- "$TESTDIR/hghave" false
|
|
skipped: missing feature: nail clipper
|
|
[1]
|
|
$ hg debugpython -- "$TESTDIR/hghave" no-true
|
|
skipped: system supports yak shaving
|
|
[1]
|
|
$ hg debugpython -- "$TESTDIR/hghave" no-false
|
|
|
|
Conditional sections based on hghave:
|
|
|
|
#if true
|
|
$ echo tested
|
|
tested
|
|
#else
|
|
$ echo skipped
|
|
#endif
|
|
|
|
#if false
|
|
$ echo skipped
|
|
#else
|
|
$ echo tested
|
|
tested
|
|
#endif
|
|
|
|
#if no-false
|
|
$ echo tested
|
|
tested
|
|
#else
|
|
$ echo skipped
|
|
#endif
|
|
|
|
#if no-true
|
|
$ echo skipped
|
|
#else
|
|
$ echo tested
|
|
tested
|
|
#endif
|
|
|
|
Exit code:
|
|
|
|
$ (exit 1)
|
|
[1]
|