Skip to content

test(core): strengthen async/global-state property laws beyond deterministic boundary sweeps #86

Description

@joeldsouzax

Gap surfaced by #77. The @property/@model laws over async / actor / process-global state in #77 use DETERMINISTIC boundary-SWEEPS (the # GEN:-named values {0, 1, MAX-1, MAX} plus seeded-LCG op sequences) rather than real proptest!, because proptest! is synchronous and cannot cleanly drive tokio actors + nested spawn/Barrier concurrency. This covers the named boundaries but NOT the full input space, and gives no shrinking.

Scope

  • Evaluate options to widen the async laws' input space: proptest's async support / a custom proptest runtime bridge (block_in_place + a current-thread runtime) / randomized-schedule fuzzing.
  • Apply to the async/global laws: mailbox MPSC ordering, registry same-name election, supervision intensity window, links notify fan-out, request_* timeout predicates.
  • Where a real proptest! bridge is genuinely infeasible (documented in test(core): wire core feature scenarios to the SUT #77's runners), broaden the deterministic sweep instead and state the trade-off explicitly.

Done when the async laws either run under real randomized input generation or carry a documented, widened deterministic sweep.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions