/// <summary> /// Allows mutation strategy to affect state change. /// </summary> /// <param name="state"></param> /// <returns></returns> public override State MutateChangingState(State state) { if (_context.controlIteration) { return(state); } string instanceName = "Run_{0}.{1}".Fmt(state.runCount, state.name); foreach (var item in _mutations) { if (item.InstanceName != instanceName) { continue; } Mutator mutator = Random.Choice(item.Mutators); OnStateMutating(state, mutator); logger.Debug("MutateChangingState: Fuzzing state change: " + state.name); logger.Debug("MutateChangingState: Mutator: " + mutator.name); return(mutator.changeState(state)); } return(state); }
/// <summary> /// Allows mutation strategy to affect state change. /// </summary> /// <param name="state"></param> /// <returns></returns> public override State MutateChangingState(State state) { if (_context.controlIteration) { return(state); } string name = "STATE_" + state.name; foreach (var item in _mutations) { if (item.Key.ModelName != name) { continue; } Mutator mutator = Random.Choice(item.Value); OnMutating(state.name, mutator.name); logger.Debug("MutateChangingState: Fuzzing state change: " + state.name); logger.Debug("MutateChangingState: Mutator: " + mutator.name); return(mutator.changeState(state)); } return(state); }