# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import("../../build/webrtc.gni") import("//build/config/features.gni") import("//testing/libfuzzer/fuzzer_test.gni") rtc_static_library("webrtc_fuzzer_main") { sources = [ "webrtc_fuzzer_main.cc", ] deps = [ "../../system_wrappers:field_trial_default", "../../system_wrappers:metrics_default", "//testing/libfuzzer:libfuzzer_main", ] } template("webrtc_fuzzer_test") { fuzzer_test(target_name) { forward_variables_from(invoker, "*") deps += [ ":webrtc_fuzzer_main" ] if (!build_with_chromium && is_clang) { # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). suppressed_configs = [ "//build/config/clang:find_bad_constructs" ] } } } webrtc_fuzzer_test("h264_depacketizer_fuzzer") { sources = [ "h264_depacketizer_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp", ] } webrtc_fuzzer_test("vp8_depacketizer_fuzzer") { sources = [ "vp8_depacketizer_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp", ] } webrtc_fuzzer_test("vp9_depacketizer_fuzzer") { sources = [ "vp9_depacketizer_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp", ] } webrtc_fuzzer_test("vp8_qp_parser_fuzzer") { sources = [ "vp8_qp_parser_fuzzer.cc", ] deps = [ "../../modules/video_coding/", ] } webrtc_fuzzer_test("h264_bitstream_parser_fuzzer") { sources = [ "h264_bitstream_parser_fuzzer.cc", ] deps = [ "../../modules/video_coding/", ] } webrtc_fuzzer_test("flexfec_header_reader_fuzzer") { sources = [ "flexfec_header_reader_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] } webrtc_fuzzer_test("flexfec_sender_fuzzer") { sources = [ "flexfec_sender_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] libfuzzer_options = [ "max_len=200" ] } webrtc_fuzzer_test("ulpfec_header_reader_fuzzer") { sources = [ "ulpfec_header_reader_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] } webrtc_fuzzer_test("ulpfec_generator_fuzzer") { sources = [ "ulpfec_generator_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] } webrtc_fuzzer_test("flexfec_receiver_fuzzer") { sources = [ "flexfec_receiver_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] libfuzzer_options = [ "max_len=2000" ] } webrtc_fuzzer_test("rtcp_receiver_fuzzer") { sources = [ "rtcp_receiver_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] seed_corpus = "corpora/rtcp-corpus" } webrtc_fuzzer_test("rtp_packet_fuzzer") { sources = [ "rtp_packet_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] seed_corpus = "corpora/rtp-corpus" } webrtc_fuzzer_test("rtp_header_fuzzer") { sources = [ "rtp_header_fuzzer.cc", ] deps = [ "../../modules/rtp_rtcp/", ] } webrtc_fuzzer_test("congestion_controller_feedback_fuzzer") { sources = [ "congestion_controller_feedback_fuzzer.cc", ] deps = [ "../../logging:rtc_event_log_impl", "../../modules/congestion_controller/", ] } rtc_static_library("audio_decoder_fuzzer") { sources = [ "audio_decoder_fuzzer.cc", "audio_decoder_fuzzer.h", ] } webrtc_fuzzer_test("audio_decoder_ilbc_fuzzer") { sources = [ "audio_decoder_ilbc_fuzzer.cc", ] deps = [ ":audio_decoder_fuzzer", "../../modules/audio_coding:ilbc", ] } webrtc_fuzzer_test("audio_decoder_isac_fuzzer") { sources = [ "audio_decoder_isac_fuzzer.cc", ] deps = [ ":audio_decoder_fuzzer", "../../modules/audio_coding:isac", ] } webrtc_fuzzer_test("audio_decoder_isac_incoming_packet_fuzzer") { sources = [ "audio_decoder_isac_incoming_packet_fuzzer.cc", ] deps = [ ":audio_decoder_fuzzer", "../../modules/audio_coding:isac", ] } webrtc_fuzzer_test("audio_decoder_isacfix_fuzzer") { sources = [ "audio_decoder_isacfix_fuzzer.cc", ] deps = [ ":audio_decoder_fuzzer", "../../modules/audio_coding:isac_fix", ] } webrtc_fuzzer_test("audio_decoder_opus_fuzzer") { sources = [ "audio_decoder_opus_fuzzer.cc", ] deps = [ ":audio_decoder_fuzzer", "../../modules/audio_coding:webrtc_opus", ] } webrtc_fuzzer_test("audio_decoder_opus_redundant_fuzzer") { sources = [ "audio_decoder_opus_redundant_fuzzer.cc", ] deps = [ ":audio_decoder_fuzzer", "../../modules/audio_coding:webrtc_opus", ] } webrtc_fuzzer_test("turn_unwrap_fuzzer") { sources = [ "turn_unwrap_fuzzer.cc", ] deps = [ "../../media:media", ] } webrtc_fuzzer_test("neteq_rtp_fuzzer") { sources = [ "neteq_rtp_fuzzer.cc", ] deps = [ "../../modules/audio_coding:neteq", "../../modules/audio_coding:neteq_test_minimal", "../../modules/audio_coding:pcm16b", "../../modules/rtp_rtcp", ] } webrtc_fuzzer_test("sdp_parser_fuzzer") { sources = [ "sdp_parser_fuzzer.cc", ] deps = [ "../../api:libjingle_peerconnection", ] seed_corpus = "corpora/sdp-corpus" } webrtc_fuzzer_test("stun_parser_fuzzer") { sources = [ "stun_parser_fuzzer.cc", ] deps = [ "../../p2p:rtc_p2p", ] seed_corpus = "corpora/stun-corpus" dict = "corpora/stun.tokens" } webrtc_fuzzer_test("stun_validator_fuzzer") { sources = [ "stun_validator_fuzzer.cc", ] deps = [ "../../p2p:rtc_p2p", ] seed_corpus = "corpora/stun-corpus" dict = "corpora/stun.tokens" } webrtc_fuzzer_test("pseudotcp_parser_fuzzer") { sources = [ "pseudotcp_parser_fuzzer.cc", ] deps = [ "../../p2p:rtc_p2p", ] }