blob: 9839a461d8a4ea8379daf76157cab0fd4bc15373 [file] [log] [blame]
# 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/config/features.gni")
import("//build_overrides/webrtc.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
static_library("webrtc_fuzzer_main") {
public_configs = [ "../..:common_inherited_config" ]
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 (is_clang) {
# Suppress warnings from Chrome's Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details
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("producer_fec_fuzzer") {
sources = [
"producer_fec_fuzzer.cc",
]
deps = [
"../../modules/rtp_rtcp/",
]
}
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/",
]
}
source_set("audio_decoder_fuzzer") {
public_configs = [ "../..:common_inherited_config" ]
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",
]
}
# TODO(katrielc) Enable in Chromium when CL 2022833002 lands.
# Although the dependency on media compiles in standalone, it is
# flagged by gn check, so breaks when rolled into Chromium.
if (!build_with_chromium) {
webrtc_fuzzer_test("turn_unwrap_fuzzer") {
sources = [
"turn_unwrap_fuzzer.cc",
]
deps = [
"../../media:media",
]
}
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"
}
}