Conformance test suite for Runic.Runner.Scheduler behaviour implementations.
Verifies that a scheduler correctly implements the dispatch contract:
init/1returns{:ok, state}plan_dispatch/3returns well-formed dispatch units- All input runnables are accounted for (no dropped runnables)
- No duplicate runnables across dispatch units
- No overlapping
node_hashesbetween dispatch units - Promise
node_hashesare supersets of their runnable hashes - Empty input produces empty output
- State is properly threaded across calls
Usage
defmodule MySchedulerTest do
use Runic.Runner.Scheduler.ContractTest,
scheduler: MyApp.CustomScheduler,
opts: [my_option: true]
end