Configuration class

The Coyote runtime and testing configuration.

public class Configuration

Public Members

name description
static Create() Creates a new configuration with default values.
DeadlockTimeout { get; } Value that controls how much time the deadlock monitor should wait during concurrency testing before reporting a potential deadlock. This value is in milliseconds.
IsVerbose { get; } If true, then messages are logged.
LogLevel { get; } The level of detail to provide in verbose logging.
MaxFairSchedulingSteps { get; } The maximum scheduling steps to explore for fair schedulers. By default this is set to 100,000 steps.
MaxUnfairSchedulingSteps { get; } The maximum scheduling steps to explore for unfair schedulers. By default this is set to 10,000 steps.
RandomGeneratorSeed { get; } Custom seed to be used by the random value generator. By default, this value is null indicating that no seed has been set.
SchedulingStrategy { get; } The systematic testing strategy to use.
TestingIterations { get; } Number of testing iterations.
TimeoutDelay { get; } Value that controls the probability of triggering a timeout each time an operation gets delayed or a built-in timer gets scheduled during systematic testing. Decrease the value to increase the frequency of timeouts (e.g. a value of 1 corresponds to a 50% probability), or increase the value to decrease the frequency (e.g. a value of 10 corresponds to a 10% probability).
WithActivityCoverageReported(…) Updates the configuration to enable or disable reporting activity coverage.
WithDeadlockTimeout(…) Updates the value that controls how much time the deadlock monitor should wait during concurrency testing before reporting a potential deadlock.
WithIncrementalSeedGenerationEnabled(…) Updates the configuration with incremental seed generation enabled or disabled.
WithLivenessTemperatureThreshold(…) Updates the configuration with the specified liveness temperature threshold during systematic testing. If this value is 0 it disables liveness checking. It is not recommended to explicitly set this value, instead use the default value which is assigned to MaxFairSchedulingSteps / 2.
WithMaxSchedulingSteps(…) Updates the configuration with the specified number of maximum scheduling steps to explore per iteration during systematic testing. The MaxUnfairSchedulingSteps is assigned the maxSteps value, whereas the MaxFairSchedulingSteps is assigned a value using the default heuristic, which is 10 * maxSteps. (2 methods)
WithNoBugTraceRepro(…) Updates the configuration with the ability to reproduce bug traces enabled or disabled. Disabling reproducibility allows skipping errors due to uncontrolled concurrency, for example when the program is only partially rewritten, or there is external concurrency that is not mocked, or when the program uses an API that is not yet supported.
WithPartiallyControlledConcurrencyAllowed(…) Updates the configuration with partially controlled concurrency allowed or disallowed.
WithPotentialDeadlocksReportedAsBugs(…) Updates the value that controls if potential deadlocks should be reported as bugs.
WithPrioritizationStrategy(…) Updates the configuration to use the priority-based scheduling strategy during systematic testing. You can specify if you want to enable liveness checking, which is disabled by default, and an upper bound of possible priority changes, which by default can be up to 10.
WithProbabilisticStrategy(…) Updates the configuration to use the probabilistic scheduling strategy during systematic testing. You can specify a value controlling the probability of each scheduling decision. This value is specified as the integer N in the equation 0.5 to the power of N. So for N=1, the probability is 0.5, for N=2 the probability is 0.25, N=3 you get 0.125, etc. By default, this value is 3.
WithRandomGeneratorSeed(…) Updates the seed used by the random value generator during systematic testing.
WithRandomStrategy() Updates the configuration to use the random scheduling strategy during systematic testing.
WithReplayStrategy(…) Updates the configuration to use the replay scheduling strategy during systematic testing. This strategy replays the specified schedule trace to reproduce the same execution.
WithRLStrategy() Updates the configuration to use the reinforcement learning (RL) scheduling strategy during systematic testing.
WithSharedStateReductionEnabled(…) Updates the configuration with shared state reduction enabled or disabled. If this reduction strategy is enabled, then the runtime will attempt to reduce the schedule space by taking into account any ‘READ’ and ‘WRITE’ operations declared by invoking Read and Write.
WithSystematicFuzzingEnabled(…) Updates the configuration with systematic fuzzing enabled or disabled.
WithSystematicFuzzingFallbackEnabled(…) Updates the configuration with systematic fuzzing fallback enabled or disabled.
WithTelemetryEnabled(…) Updates the configuration with telemetry enabled or disabled.
WithTestingIterations(…) Updates the configuration with the specified number of iterations to run during systematic testing.
WithTestingTimeout(…) Updates the configuration with the specified systematic testing timeout in seconds.
WithTimeoutDelay(…) Updates the value that controls the probability of triggering a timeout each time an operation gets delayed or a built-in timer gets scheduled during systematic testing.
WithTraceVisualizationEnabled(…) Updates the configuration with trace visualization enabled or disabled. If enabled, the testing engine can produce a DGML graph representing an execution leading up to a bug.
WithUncontrolledConcurrencyResolutionTimeout(…) Updates the values that control how much time the runtime should wait for each instance of uncontrolled concurrency to resolve before continuing exploration. The attempts parameter controls how many times to check if uncontrolled concurrency has resolved, whereas the delay parameter controls how long the runtime waits between each retry.
WithVerbosityEnabled(…) Updates the configuration with verbose output enabled or disabled.
WithXmlLogEnabled(…) Updates the configuration with XML log generation enabled or disabled.

Protected Members

name description
Configuration() Initializes a new instance of the Configuration class.

See Also