Skip to content

Latest commit

 

History

History
190 lines (127 loc) · 6.38 KB

NEWS.rst

File metadata and controls

190 lines (127 loc) · 6.38 KB

News

Version 0.7 (Feb. 24, 2016)

  • 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.

Version 0.6 (Aug. 1, 2013)

  • 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.

Version 0.5 (Jan. 8, 2011)

  • 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.

Version 0.4 (Sep. 28, 2010)

  • 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.

Version 0.3 (Sep. 20, 2010)

  • 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 %.

Version 0.2 (Sep. 19, 2010)

  • Changed the test runner to run tests with a random temporary working directory.

Version 0.1 (Sep. 19, 2010)

  • Initial release.