Пример #1
0
 def test_strategy_specified(self):
     """Test weight is returned when strategy is defined in
 |FUZZING_STRATEGIES|."""
     environment.set_value('FUZZING_STRATEGIES',
                           '{"strategy_1": 0.5, "strategy_3": 1.0}')
     self.assertEqual(
         0.5, engine_common.get_strategy_probability('strategy_1', 0.33))
     self.assertEqual(
         1.0, engine_common.get_strategy_probability('strategy_3', 0.33))
Пример #2
0
def choose_generator(strategy_pool):
    """Chooses whether to use radamsa, ml rnn, or no generator and updates the
  strategy pool."""

    radamsa_prob = engine_common.get_strategy_probability(
        strategy.CORPUS_MUTATION_RADAMSA_STRATEGY.name,
        default=strategy.CORPUS_MUTATION_RADAMSA_STRATEGY.probability)

    ml_rnn_prob = engine_common.get_strategy_probability(
        strategy.CORPUS_MUTATION_ML_RNN_STRATEGY.name,
        default=strategy.CORPUS_MUTATION_ML_RNN_STRATEGY.probability)

    if engine_common.decide_with_probability(radamsa_prob + ml_rnn_prob):
        if engine_common.decide_with_probability(radamsa_prob /
                                                 (radamsa_prob + ml_rnn_prob)):
            strategy_pool.add_strategy(
                strategy.CORPUS_MUTATION_RADAMSA_STRATEGY)
        else:
            strategy_pool.add_strategy(
                strategy.CORPUS_MUTATION_ML_RNN_STRATEGY)
Пример #3
0
def do_strategy(strategy_tuple):
    """Return whether or not to use a given strategy."""
    return engine_common.decide_with_probability(
        engine_common.get_strategy_probability(strategy_tuple.name,
                                               strategy_tuple.probability))
Пример #4
0
 def test_env_var_not_dict(self):
     """Test default probability is returned when |FUZZING_STRATEGIES| is not
  a dict."""
     environment.set_value('FUZZING_STRATEGIES', 'bad')
     self.assertEqual(0.33,
                      engine_common.get_strategy_probability('foo', 0.33))
Пример #5
0
 def test_default_probability(self):
     """Test default probability is returned when |FUZZING_STRATEGIES| is not
 set."""
     self.assertEqual(0.33,
                      engine_common.get_strategy_probability('foo', 0.33))