Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[new release] alcotest, alcotest-async, alcotest-js, alcotest-mirage and alcotest-lwt (1.5.0) #19735

Merged
merged 4 commits into from
Oct 12, 2021

Conversation

craigfe
Copy link
Contributor

@craigfe craigfe commented Oct 9, 2021

Alcotest is a lightweight and colourful test framework

CHANGES:

…and alcotest-lwt (1.5.0)

CHANGES:

- Make Alcotest compatible with `js_of_ocaml.3.11.0`. Users can depend on the
  new virtual `alcotest-js` Opam library to pick up the right `js_of_ocaml`
  version automatically. (mirage/alcotest#326 mirage/alcotest#328, @hhugo @smorimoto)

- Record exception backtraces during test suite runs by default. This behaviour
  can be disabled by passing `~record_backtrace:false` to `Alcotest.run`. (mirage/alcotest#317,
  @craigfe)

- Generate shorter unique identifiers for test runs (8-character alphanumeric,
  rather than a full 128-bit UUID). (mirage/alcotest#304, @craigfe)

- Change `Alcotest.{char,string}` pretty-printers to use OCaml syntax on
  assertion failures (i.e. wrap with quotes and escape control characters).
  (mirage/alcotest#318, @craigfe)

- Fix process for getting the width of attached terminals on MacOS.
  Previously, a terminal width of 80 columns was assumed. (mirage/alcotest#325, @craigfe)

- Fix parsing of test filter ranges to allow '-' separators (e.g. `test alpha
  1-4`), as advertised in the manpage. The previously-used '..' separator is
  also supported. (mirage/alcotest#312, @craigfe)

- Introduce an `Alcotest.V1` module that aliases the existing `Alcotest` API and
  provides a stability guarantee over major version changes. Similar versioned
  aliases also exist for the backends: `Alcotest_{async,lwt}.V1`. (mirage/alcotest#306,
  @craigfe)

- Change the `~filter` argument to `Alcotest.run` to be a predicate over tests.
  (mirage/alcotest#305, @craigfe)

- Renamed / removed some less frequently used modules used by the test backends:
  - `Alcotest.Unix` -> `Alcotest.Unix_platform`
  - `Alcotest_engine.{Cli,Core,Test}` -> `Alcotest_engine.V1.{Cli,Core,Test}`
  - `Alcotest.{Cli,Core}` are now gone. Use `Alcotest_engine.V1.{Cli,Core}.Make
    (Alcotest.Unix_platform)` instead.
  (mirage/alcotest#306 mirage/alcotest#309, @craigfe)

- Avoid exporting `list_tests` in the main test APIs (`Alcotest{,_lwt,_async}`).
  Use `Alcotest_engine` directly if you want this function. (mirage/alcotest#310, @craigfe)
…ting

The test suite contains expect-tests that snapshot Alcotest output,
which necessitates pinning a particular Alcotest version to avoid
spurious failures such as:

  # File "example/alcotest/output.txt.expected", line 1, characters 0-0:
  #          git (internal) (exit 1)
  # (cd _build/default && /usr/bin/git --no-pager diff --no-index --color=always -u example/alcotest/output.txt.expected example/alcotest/output.txt)
  # diff --git a/example/alcotest/output.txt.expected b/example/alcotest/output.txt
  # index bde0b83..9f1417c 100644
  # --- a/example/alcotest/output.txt.expected
  # +++ b/example/alcotest/output.txt
  # @@ -16,7 +16,6 @@ test `fail_sort_id` failed on ≥ 1 cases: [1; 0] (after 20 shrink steps)
  #  [exception] test `fail_sort_id` failed on ≥ 1 cases: [1; 0] (after 20 shrink steps)
  #
  #
  # -
  #   ──────────────────────────────────────────────────────────────────────────────
  #
  #  3 failures! 5 tests run.
@craigfe
Copy link
Contributor Author

craigfe commented Oct 10, 2021

I believe the remaining CI failures are unrelated to this release.

CC @c-cube for the change to qcheck-alcotest.0.18 dependencies.

@mseri
Copy link
Member

mseri commented Oct 12, 2021

Looks good, thanks

@mseri mseri merged commit 2f8a714 into ocaml:master Oct 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants