mix concuerror (roux v0.2.2)

Copy Markdown View Source

Runs Concuerror tests for exhaustive scheduler interleaving exploration.

Usage

# Run a single test module
mix concuerror -m Roux.Concurrency.InternSameValueTest

# Run all Roux.Concurrency.* modules
mix concuerror --all

Options

  • -m / --module — test module to run
  • --all — run every Roux.Concurrency.* module
  • --dpor — DPOR algorithm, optimal (default) or source
  • --interleaving-bound — bound on interleavings explored (default: unbounded)
  • --treat-as-normal — exit reasons to treat as normal (can be repeated)

Each test module must export a 0-arity test/0 function, and may export concuerror_options/0 returning treat_as_normal: (exit reasons), depth_bound: (events per interleaving, when a scenario needs more than Concuerror's default of 500), and scheduling_bound: with dpor: :source (at most that many preemptions per interleaving, for a scenario too large to explore whole).