PropCheck.StateM.run_parallel_commands

You're seeing just the function run_parallel_commands, go back to PropCheck.StateM module for more information.
Link to this function

run_parallel_commands(mod, testcase)

View Source

Runs a given parallel test case according to the state machine specified in mod.

The result is a triple of the form {sequential_history, parallel_history, result}, where:

  • sequential_history contains the execution history of the sequential component.
  • Parallel_history contains the execution history of each of the concurrent tasks.
  • Result specifies the outcome of the attempt to serialize command execution, based on the results observed. It can be one of the following: <ul><li> ok <li> no_possible_interleaving </ul>

Since the scheduler of the runtime system is quite predictable, you are advised to add more turbulences in the execution traces by instrumenting the code under test via PropCheck.Instrument.

The history shown when the execution fails, does not reveal in which exact interleaving of commands the failure happens but simply shows the executed commands in both processes running concurrently. This is a feature of PropEr, which cannot easily changed.

Link to this function

run_parallel_commands(mod, testcase, env)

View Source

Similar to run_parallel_commands/2, but also accepts an environment used for symbolic variable evaluation, exactly as described in run_commands/3.