Mercurial > hg
view tests/test-unified-test.t @ 30945:8b83b626fb1e
ui: remove urllib2 from being imported early
Before this change, urllib2 was brought in when constructing the ui object, and
that added ~5ms on my Linux workstation to the hg startup time for every
command, bringing the time for 'HGRCPATH=/dev/null hg root' from 46ms to 40ms.
Now, we construct a single proxy object per initial ui creation (so that if the
ui is copied they share the object), but defer the actual instantiation of it
and the import of urllib2 until it's needed.
# no-check-commit
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Sun, 12 Feb 2017 03:06:38 -0800 |
parents | 6a98f9408a50 |
children | 4441705b7111 |
line wrap: on
line source
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) (glob) (esc) #endif $ printf 'foo/bar\rfoo/bar\r' foo.bar\r \(no-eol\) (re) (esc) foo.bar\r \(no-eol\) (re) testing hghave $ hghave true $ hghave false skipped: missing feature: nail clipper [1] $ hghave no-true skipped: system supports yak shaving [1] $ 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]