Esempio n. 1
0
class RandomSequenceModel(StagedSequenceModel):
    '''
    This class provides random sequences of templates based on the selection strategy.
    It is like :class:`~kitty.model.high_level.staged_sequence.StagedSequenceModel` with a signle stage.
    '''

    def __init__(self, name='RandomSequenceModel', seed=None, callback_generator=None, num_mutations=1000, max_sequence=10):
        '''
        :param name: name of the model object (default: 'RandomSequenceModel')
        :type seed: int
        :param seed: RNG seed (default: None)
        :type callback_generator: func(from_template, to_template) -> func(fuzzer, edge, response) -> None
        :param callback_generator: a function that returns callback functions (default: None)
        :param num_mutations: number of mutations to perform (defualt: 1000)
        :param max_sequence: maximum sequence length (default: 10)
        '''
        super(RandomSequenceModel, self).__init__(name, callback_generator, num_mutations)
        self._max_sequence = max_sequence
        self.seed = seed
        strategy = '1-%d' % max_sequence
        self._stage = Stage(name='internal', selection_strategy=strategy, seed=seed)
        self.add_stage(self._stage)

    def add_template(self, template):
        '''
        Add template that might be used in generated sequences

        :param template: template to add to the model
        '''
        self._stage.add_template(template)
Esempio n. 2
0
 def __init__(self, name='RandomSequenceModel', seed=None, callback_generator=None, num_mutations=1000, max_sequence=10):
     '''
     :param name: name of the model object (default: 'RandomSequenceModel')
     :type seed: int
     :param seed: RNG seed (default: None)
     :type callback_generator: func(from_template, to_template) -> func(fuzzer, edge, response) -> None
     :param callback_generator: a function that returns callback functions (default: None)
     :param num_mutations: number of mutations to perform (defualt: 1000)
     :param max_sequence: maximum sequence length (default: 10)
     '''
     super(RandomSequenceModel, self).__init__(name, callback_generator, num_mutations)
     self._max_sequence = max_sequence
     self.seed = seed
     strategy = '1-%d' % max_sequence
     self._stage = Stage(name='internal', selection_strategy=strategy, seed=seed)
     self.add_stage(self._stage)