Skip to content

Releases: facebookincubator/scrut

v0.4.1 - Improve failed result rendering

06 Jun 13:57
Compare
Choose a tag to compare

Added

  • Parameter --max-multiline-matched-lines for test and update command with default 100
  • Automatic testing on PRs in Github
  • Environment variable SCRUT_DEFAULT_SHELL to override detected bash binary at runtime

Changed

  • Rendering of matches of multiline expectations in failed test results: output lines, that are covered by the multiline expectations, are now printed, limited to parameter-defined amount

Fixed

  • Some integration tests on Windows
  • Cleanup of temporary directories in unit tests on Windows
  • Docker image building Github Action

Removed

  • Obsolete test targets from Makefile

v0.4.0

13 May 09:46
Compare
Choose a tag to compare

Add detached process handling (Linux/MacOS)

  • Add new inline configuration option per-testcase detached_kill_signal that accepts common *nix signal notations (SIGTERM, term, 15) and can be disabled (disabled)
  • Set default kill signal to SIGTERM in Linux/MacOS
  • Add support for Windows (accept new configuration, validate it correctly, do not act on it)
  • Document new behavior

Improved interface and rewrote documentation

11 Apr 10:47
Compare
Choose a tag to compare

Interface

  • create, test and update command now provide progress and better insight into what is being processed
    • New --verbose flag added to print also "info level" messages
  • New --log-level parameter added, defaults to warn
    • When log level >= info disable progress printing is disabled and instead info and warn level log messages are printed

Configuration

  • Added per test case skip_ansi_escaping configuration option that allows for writing tests ignoring color encoding etc

Documentation / Guidance

  • Added getting started section with installation guide
  • Refactored tutorial into multiple pages and largelu rewritten / updated
  • Separated catch-all-pages into structured Reference section
  • Added curl-style installation script
  • Added Dockerfile
  • Added GitHub action instructions

Internal

  • Dropped colored crate, because throuh using indicatif for progress the console crate is already available and it provides the same function
  • Add GH action to build and publish docker image
  • Added prism language support for bash / markdown "scrut style"
  • Smol fixes in Makefile

v0.2.3

24 Mar 18:11
Compare
Choose a tag to compare

What's Changed

  • Cargo.toml is now auto-generated and contains up2date dependencies

v0.2.2

20 Mar 17:12
Compare
Choose a tag to compare
Show output on timeout

Summary:
This CL makes timeouts being treated as validation errors.

# Why?

So far Scrut treated timeouts in test executions as fatal errors, which resulted in Scrut ending all test execution and printing out the file where the timeout occurred (see below).

For trivial cases where only few test-cases where in a single test document and where timeouts occur consistently this is enough to identify the issue.

However, if the document contains a large amount of of test cases, or when timeouts occur only occasionally, or when timeouts only occur in hard to reproduce environments (think windows test infra), then debugging such timeouts is hard and time consuming.

# What?

Treat timeouts as validation errors, which gives:
- Timeout in one test document does not stop the execution of other test documents
- Timeout error points to the specific test-case in the document where the timeout happened
- Timeout error provides STDOUT and STDERR of the timed out execution (as much as is printed by the executed command before it is aborted)

This makes it much easier for users to identify
1. Which command (test case) timed out
2. Why the timeout occurred (assuming the executed command is verbose enough)

Reviewed By: AndreasBackx

Differential Revision: D71402437

fbshipit-source-id: 0a7406f08754ed69f85c2afdebf2dcac24cfed8a

v0.2.1

17 Jan 13:27
Compare
Choose a tag to compare
Set license explicitly

Summary:
This CL sets the `license` attribute in `Cargo.toml` to MIT

# Why?

Clarifiy OSS use conditions. Referening license file instead of specifying `license` directly makes `crates.io` say this is a "non standard license". Setting instead `license` then also shows the license correctly.

https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields

# What?

- Removed `license-file` that pointed to the included `LICENSE` file which contains a MIT license copy
- Added `license = "MIT"`

Reviewed By: AndreasBackx

Differential Revision: D68321468

fbshipit-source-id: 2dccef335e1386d45edf16a7c0fe1784c448f83d