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)
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()
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()