mix test.matrix (Bolty v0.3.0)

Copy Markdown View Source

Runs mix test once per supported Bolt version and prints a pass/fail summary. All versions are attempted even if one fails; exits non-zero if any version failed.

mix test.matrix

Extra flags are forwarded to each mix test invocation:

mix test.matrix --only core

Environment variables:

  • BOLT_TCP_PORT — port for Bolt 5.x servers (defaults to 7687)
  • BOLT_6_TCP_PORT — port for Bolt 6.x servers (defaults to BOLT_TCP_PORT)

Example with the docker-compose services (Bolt 5.x on 7687, Bolt 6.x on 7689):

BOLT_6_TCP_PORT=7689 mix test.matrix

Summary

Functions

Maps a {major, minor} version to the {version_string, port} a per-version mix test run should use: the string form for BOLT_VERSIONS, and the Bolt 6 port for major >= 6, otherwise the default port. Pure — split out from the System.cmd loop so it can be unit-tested.

Functions

version_env(version, default_port, bolt6_port)

@spec version_env(
  {non_neg_integer(), non_neg_integer()},
  String.t(),
  String.t()
) :: {String.t(), String.t()}

Maps a {major, minor} version to the {version_string, port} a per-version mix test run should use: the string form for BOLT_VERSIONS, and the Bolt 6 port for major >= 6, otherwise the default port. Pure — split out from the System.cmd loop so it can be unit-tested.