package hegel

  1. Overview
  2. Docs

Module Stateful.Concurrent_ruleSource

One possible action in a concurrent stateful test.

Sourcetype ('ctx, 'state) t
Sourceval create : ?group:string -> ?weight:float -> name:string -> step:(test_case -> 'ctx -> 'state -> unit) -> unit -> ('ctx, 'state) t

create ?group ?weight ~name ~step () declares a concurrent rule.

  • group defines the concurrency group of the rule. Only rules within the same group may run concurrently. Rules without an explicit group are in one anonymous group.
  • weight is a hint of how frequently the rule should be run. The default weight is 1.0, and weights must be finite and strictly positive.
  • name is printed in the final output when the rule is run.
  • step tc ctx state performs one application of the rule, drawing any arguments it needs from tc and updating state in place. ctx is the context the concurrency capability gives the worker. tc and ctx are valid only for that step.

With the PPX, a concurrent rule takes the following options: [@@rule { group = "group"; weight = <weight> }]. The order of the fields does not matter and neither are required.

Sourceval name : (_, _) t -> string

Returns the name of the rule.

Sourceval group : (_, _) t -> string

Returns the concurrency group of the rule.

Sourceval weight : (_, _) t -> float

Returns the weight of the rule.