/// <summary> /// Initializes a new instance of the <see cref="BasicReductionStrategy"/> class. /// </summary> public BasicReductionStrategy( ISchedulingStrategy childStrategy, ReductionStrategy reductionStrategy, int stepLimit = 0) { this.ChildStrategy = childStrategy; this.Reduction = reductionStrategy; this.ScheduledSteps = 0; this.StepLimit = stepLimit; this.ReportActualScheduledSteps = this.StepLimit != 0; }
/// <summary> /// Creates a reduction strategy that reduces the choice-space for a child strategy. /// </summary> /// <param name="childStrategy">Child strategy.</param> /// <param name="reductionStrategy">The reduction strategy used.</param> /// <param name="stepLimit">The step limit.</param> public BasicReductionStrategy( ISchedulingStrategy childStrategy, ReductionStrategy reductionStrategy, int stepLimit = 0) { ChildStrategy = childStrategy; Reduction = reductionStrategy; ScheduledSteps = 0; StepLimit = stepLimit; ReportActualScheduledSteps = StepLimit != 0; }
/// <summary> /// Constructor. /// </summary> protected Configuration() { this.SolutionFilePath = string.Empty; this.OutputFilePath = string.Empty; this.ProjectName = string.Empty; this.Timeout = 0; this.CompilationTarget = CompilationTarget.Execution; this.OptimizationTarget = OptimizationTarget.Release; this.CustomCompilerPassAssemblyPaths = new HashSet <string>(); this.AnalyzeDataFlow = false; this.AnalyzeDataRaces = false; this.DoStateTransitionAnalysis = false; this.ShowControlFlowInformation = false; this.ShowDataFlowInformation = false; this.ShowFullDataFlowInformation = false; this.RewriteCSharpVersion = new Version(); this.RuntimeGeneration = 0; this.AssemblyToBeAnalyzed = string.Empty; this.TestingRuntimeAssembly = string.Empty; this.TestMethodName = string.Empty; this.SchedulingStrategy = SchedulingStrategy.Random; this.ReductionStrategy = ReductionStrategy.None; this.SchedulingIterations = 1; this.RandomSchedulingSeed = null; this.IncrementalSchedulingSeed = false; this.PerformFullExploration = false; this.MaxFairSchedulingSteps = 0; this.MaxUnfairSchedulingSteps = 0; this.UserExplicitlySetMaxFairSchedulingSteps = false; this.ParallelBugFindingTasks = 1; this.RunAsParallelBugFindingTask = false; this.TestingSchedulerEndPoint = Guid.NewGuid().ToString(); this.TestingSchedulerProcessId = -1; this.TestingProcessId = 0; this.ConsiderDepthBoundHitAsBug = false; this.PrioritySwitchBound = 0; this.DelayBound = 0; this.CoinFlipBound = 0; this.SafetyPrefixBound = 0; this.EnableLivenessChecking = true; this.LivenessTemperatureThreshold = 0; this.EnableCycleDetection = false; this.EnableUserDefinedStateHashing = false; this.EnableMonitorsInProduction = false; this.EnableNoApiCallAfterTransitionStmtAssertion = true; this.AttachDebugger = false; this.ScheduleFile = string.Empty; this.ScheduleTrace = string.Empty; this.EnableDataRaceDetection = false; this.ReportCodeCoverage = false; this.ReportActivityCoverage = false; this.DebugActivityCoverage = false; this.ContainerId = 0; this.NumberOfContainers = 1; this.RemoteApplicationFilePath = string.Empty; this.Verbose = 1; this.ShowWarnings = false; this.EnableDebugging = false; this.EnableProfiling = false; this.KeepTemporaryFiles = false; this.EnableColoredConsoleOutput = false; this.ThrowInternalExceptions = false; this.DisableEnvironmentExit = true; }