Skip to content

Releases: SamirTalwar/smoke

v2.4.0

25 May 13:36
b41984b
Compare
Choose a tag to compare

Smoke v2.4.0 adds a new test configuration property, environment, which allows you to set environment variables at both the suite and the test level.

More details are in the README.

v2.3.2

02 Mar 13:36
3a3c12d
Compare
Choose a tag to compare

v2.3.2 adds the --version and --version-numeric flags to show the version.

It also prepares the ground for future regular expression support.

v2.3.1

06 Aug 13:09
fa08c39
Compare
Choose a tag to compare

v2.3.1 is mostly an opportunity for me to test that the release process still works, but it does contain a couple of improvements to error messages:

In error messages:

  • when there's an error parsing YAML, the path to the offending area is now correct more often (though not always), and
  • directories no longer have a trailing slash.

Most of the changes recently have been build improvements.

  • CI actions have been updated to working versions.
  • We have upgraded to GHC 9.0.2.
  • Dependencies have been updated too. This may or may not improve security.
  • A Nix flake is now provided, if that's your jam.

v2.3.0

08 Oct 17:18
6e593e5
Compare
Choose a tag to compare

v2.3 contains a couple of bug fixes for file handling.

  • If the actual output file is missing, Smoke no longer crashes, but records a test failure.
  • If an expected output fixture (STDOUT, STDERR, or arbitrary files) is missing, the test will still run but print a failure with the actual output. It will also allow you to --bless the fixture, which will create the file (and any ancestor directories) and write the actual output into it.

This has been cheesing me off for a while. I'm glad I got to take a bite out of it. 🧀

v2.2.0

14 Sep 13:59
eb3c379
Compare
Choose a tag to compare

Smoke v2.2.0 adds support for the contains: operator. This allows you to perform a substring match when you don't want to check the entire contents of STDOUT, STDERR or files.

From the additions to the README:

We don't always want to check the full output; sometimes checking that it contains a given substring is more useful. We can use the contains: operator to specify this:

tests:
  # ...
  - name: big multiplication
    stdin: |
      961748927 * 982451653
    stdout:
      contains: "1021"

Note that we don't use | here, as we don't want to capture the trailing newline, which would make this test fail. Instead we use quotes around the value to ensure that the YAML parser treats it as a string, not a number.

You can also use equals: to explicitly specify that we're checking equality, though this is the default.

Enjoy!

v2.1.1

16 Aug 18:06
7b9c965
Compare
Choose a tag to compare

It's been a long time since I released a new version of Smoke. A lot has changed under the hood but it works exactly the same. A lot of the dependencies have been upgraded, and code has been tossed around here and there, but no functional logic has changed.

The purpose of this release is to try the new release process, using GitHub Actions instead of Travis CI.

Please try it out and let me know if you have any trouble by opening an issue.

v2.1.0

01 Oct 09:28
2137885
Compare
Choose a tag to compare

Smoke v2.1.0 is out! It's actually been in the works for months now—I kind of forgot about it.

Notable features:

  • you can now compare files to their expected contents with files:
    • works just like stdout and stderr
    • you can compare against inline text or another file
    • use filters too
    • revert directories afterwards to clean up with revert:
    • the files fixture has more examples
  • set the working directory with working-directory:
  • use a shell command rather than a list of arguments
    • much easier
    • uses sh on Linux/macOS, and cmd on Windows (by default)
    • you can override the shell with shell:
    • check out the shell fixture for more possibilities

UX improvements:

  • output comes per test now, not all at once (sorry about breaking that in v2.0)
  • nomenclature is consistent between the test files and the output

Bug fixes:

  • absolute paths are now properly supported

v2.0.0

22 Apr 21:26
59531ac
Compare
Choose a tag to compare

Smoke v2.0.0 is out!

This is a complete rewrite and bears almost no relation to v1, except that v1 was used in testing v2.

Notable features:

  • the application is now a binary and can be run basically anywhere
  • tests are specified in a YAML file, not a collection of files, though you can still use files for test I/O
  • rather than showing the complete output, just the diff is shown, and diffs are run through git diff when possible to make them a lot nicer
  • you can specify post-filters to transform the output
  • about a thousand bugs relating to edge cases were fixed
  • probably a lot more; this has been a long time coming