third_party/cram/NEWS.rst
Added the -d/--debug flag that disables diffing of
expected/actual output and instead passes through script output to
stdout/stderr.
Added the --shell-opts flag for specifying flags to invoke the
shell with. By setting --shell-opts='-x' and --debug
together, this can be used to see shell commands as they're run and
their output in real time which can be useful for debugging slow or
hanging tests.
Added xUnit XML output support (for better integration of test results with Bamboo and other continuous integration tools).
Added support for using (esc) on expected out lines that aren't automatically escaped in actual output.
Added the $TESTSHELL environment variable. This allows a test to
portably check what shell it was invoked with.
Added an error message for when no tests are found in a directory.
Changed Makefile to install into /usr/local by default.
Simplified the Makefile's targets. The targets available now are
all, build, check/test, clean, dist,
install, and quicktest (for running the test suite without
checking test coverage).
Fixed non-ASCII strings not being escaped with (esc) on Python 3.
Fixed a crash on tests that don't have a trailing newline.
Fixed a crash when using set -x with zsh.
Added the long option --preserve-env for -E.
Added support for specifying options in .cramrc (configurable
with the CRAMRC environment variable).
Added a --shell option to change the shell tests are run
with. Contributed by Kamil Kisiel_.
Added Arch Linux package metadata (in contrib/). Contributed by
Andrey Vlasovskikh_.
Fixed shell commands unintentionally inheriting Python's SIGPIPE
handler (causing commands that close pipes to print broken pipe
messages).
Fixed EPIPE under PyPy when applying patches in
--interactive mode.
Added TESTFILE test environment variable (set to the name of the
current test).
Fixed GNU patch 2.7 compatibility by using relative paths instead of
absolute paths. Contributed by Douglas Creager_.
Fixed name clashes in temporary test directories (e.g., when running two tests with the same name in different folders).
Backwards compatibility: Fixed improper usage of the subprocess library under Python 3. This fixes Python 3.3 support, but breaks support for Python 3.1-3.2.3 due to a bug in Python. If you're using Python 3.0-3.2, you must upgrade to Python 3.2.4 or newer.
.. _Kamil Kisiel: http://kamilkisiel.net/ .. _Andrey Vlasovskikh: https://twitter.com/vlasovskikh .. _Douglas Creager: http://dcreager.net/
The test format has changed: Matching output not ending in a
newline now requires the (no-eol) keyword instead of ending the
line in %.
Matching output containing unprintable characters now requires the
(esc) keyword. Real output containing unprintable characters
will automatically receive (esc).
If an expected line matches its real output line exactly, special
matching like (re) or (glob) will be ignored.
Regular expressions ending in a trailing backslash are now considered invalid.
Added an --indent option for changing the default amount of
indentation required to specify commands and output.
Added support for specifying command line options in the CRAM
environment variable.
The --quiet and --verbose options can now be used together.
When running Cram under Python 3, Unicode-specific line break characters will no longer be parsed as newlines.
Tests are no longer required to end in a trailing newline.
The test format has changed: Output lines containing regular
expressions must now end in (re) or they'll be matched
literally. Lines ending with keywords are matched literally first,
however.
Regular expressions are now matched from beginning to end. In other
words \d (re) is matched as ^\d$.
In addition to (re), (glob) has been added. It supports
*, ?, and escaping both characters (and backslashes) using
\.
Environment settings have changed: The -D flag has been
removed, $TESTDIR is now set to the directory containing the
.t file, and $CRAMTMP is set to the test runner's temporary
directory.
-i/--interactive now requires patch(1). Instead of
.err files replacing .t files during merges, diffs are
applied using patch(1). This prevents matching regular
expressions and globs from getting clobbered.
Previous .err files are now removed when tests pass.
Cram now exits with return code 1 if any tests failed.
If a test exits with return code 80, it's considered a skipped a
test. This is useful for intentionally disabling tests when they
only work on certain platforms or in certain settings.
The number of tests, the number of skipped tests, and the number of failed tests are now printed after all tests are finished.
Added -q/--quiet to suppress diff output.
Added contrib/cram.vim_ syntax file for Vim. Contributed by Steve Losh_.
.. _contrib/cram.vim: https://bitbucket.org/brodie/cram/src/default/contrib/cram.vim .. _Steve Losh: http://stevelosh.com/
Implemented resetting of common environment variables. This behavior
can be disabled using the -E flag.
Changed the test runner to first make its own overall random
temporary directory, make tmp inside of it and set TMPDIR,
etc. to its path, and run each test with a random temporary working
directory inside of that.
Added --keep-tmpdir. Temporary directories are named by test
filename (along with a random string).
Added -i/--interactive to merge actual output back to into
tests interactively.
Added ability to match command output not ending in a newline by
suffixing output in the test with %.