tests/test-unified-test.t
changeset 21729 a437ce9ed65a
parent 20602 8a2dfac89ad6
child 21731 204f6a6e9b57
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-unified-test.t	Fri May 30 11:35:45 2014 -0700
@@ -0,0 +1,121 @@
+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:
+
+  >>> print 'foo'
+  foo
+  $ echo interleaved
+  interleaved
+  >>> for c in 'xyz':
+  ...     print c
+  x
+  y
+  z
+  >>> print
+  
+
+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
+
+  $ "$TESTDIR/hghave" true
+  $ "$TESTDIR/hghave" false
+  skipped: missing feature: nail clipper
+  [1]
+  $ "$TESTDIR/hghave" no-true
+  skipped: system supports yak shaving
+  [1]
+  $ "$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]