def test_select_targets_with_tagged_cross_pollination(self):
        """Test that selecting targets with a given tag returns the right target."""
        data_types.CorpusTag(
            tag='test_tag',
            fully_qualified_fuzz_target_name='libFuzzer_test_fuzzer').put()

        data_types.CorpusTag(tag='test_tag',
                             fully_qualified_fuzz_target_name=
                             'libFuzzer_cross_pollination_test_fuzzer').put()

        similar_target = data_types.FuzzTarget(
            engine='libFuzzer',
            binary='cross_pollination_test_fuzzer',
            project='test-project')
        similar_target.put()

        similar_job = data_types.FuzzTargetJob(
            fuzz_target_name='libFuzzer_cross_pollination_test_fuzzer',
            engine='libFuzzer',
            job='libfuzzer_asan_job')
        similar_job.put()

        selected = corpus_pruning_task._select_targets_and_jobs_for_pollination(
            'libFuzzer', 'libFuzzer_test_fuzzer', 'tagged', 'test_tag')

        self.assertEqual([(similar_target, similar_job)], selected)
Ejemplo n.º 2
0
def get_targets_with_tag(tag):
    """Get all fuzz targets with a given tag."""
    query = data_types.CorpusTag().query()
    query = query.filter(data_types.CorpusTag.tag == tag)
    return query.fetch()
Ejemplo n.º 3
0
def get_fuzz_target_tags(fully_qualified_fuzz_target_name):
    """Get all the tags of a given fuzz target."""
    query = data_types.CorpusTag().query()
    query = query.filter(data_types.CorpusTag.fully_qualified_fuzz_target_name
                         == fully_qualified_fuzz_target_name)
    return query.fetch()