Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }