mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-14 06:10:40 +01:00

to avoid relying on the global field trials. Bug: webrtc:362762208 Change-Id: I94e96f0a3f16cfd64f7deb4deb4aaa924ac1bba8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361865 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Cr-Commit-Position: refs/heads/main@{#42982}
822 lines
22 KiB
Text
822 lines
22 KiB
Text
# 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("//testing/libfuzzer/fuzzer_test.gni")
|
|
import("../../webrtc.gni")
|
|
|
|
rtc_library("webrtc_fuzzer_main") {
|
|
sources = [ "webrtc_fuzzer_main.cc" ]
|
|
testonly = true
|
|
deps = [
|
|
"../../rtc_base:logging",
|
|
"//testing/libfuzzer:fuzzing_engine_main",
|
|
]
|
|
|
|
# When WebRTC fuzzer tests are built on Chromium bots they need to link
|
|
# with Chromium's implementation of metrics, field trial, and system time.
|
|
if (build_with_chromium) {
|
|
deps += [
|
|
"../../../webrtc_overrides:field_trial",
|
|
"../../../webrtc_overrides:metrics",
|
|
"../../../webrtc_overrides:system_time",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_library("fuzz_data_helper") {
|
|
testonly = true
|
|
sources = [
|
|
"fuzz_data_helper.cc",
|
|
"fuzz_data_helper.h",
|
|
]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
}
|
|
|
|
set_defaults("webrtc_fuzzer_test") {
|
|
configs = rtc_add_configs
|
|
}
|
|
|
|
template("webrtc_fuzzer_test") {
|
|
fuzzer_test(target_name) {
|
|
forward_variables_from(invoker, "*")
|
|
deps += [
|
|
":fuzz_data_helper",
|
|
":webrtc_fuzzer_main",
|
|
]
|
|
additional_configs = configs
|
|
|
|
assert(
|
|
!defined(absl_deps),
|
|
"`absl_deps` has been deprecated, add your Abseil dependencies to the `deps` variable.")
|
|
|
|
# Abseil dependencies need to be converted to //third_party/abseil-cpp:absl when build_with_chromium=true
|
|
if (build_with_chromium) {
|
|
absl_dependencies =
|
|
filter_labels_include(deps, [ "//third_party/abseil-cpp/*" ])
|
|
if (absl_dependencies != []) {
|
|
filtered_deps =
|
|
filter_labels_exclude(deps, [ "//third_party/abseil-cpp/*" ])
|
|
deps = []
|
|
deps = filtered_deps
|
|
deps += [ "//third_party/abseil-cpp:absl" ]
|
|
}
|
|
}
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
suppressed_configs = [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
webrtc_fuzzer_test("h264_depacketizer_fuzzer") {
|
|
sources = [ "h264_depacketizer_fuzzer.cc" ]
|
|
deps = [ "../../modules/rtp_rtcp" ]
|
|
seed_corpus = "corpora/h264-depacketizer-fuzzer-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("vp8_depacketizer_fuzzer") {
|
|
sources = [ "vp8_depacketizer_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_video_header",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("vp9_depacketizer_fuzzer") {
|
|
sources = [ "vp9_depacketizer_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_video_header",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("vp8_qp_parser_fuzzer") {
|
|
sources = [ "vp8_qp_parser_fuzzer.cc" ]
|
|
deps = [
|
|
"../../modules/video_coding:video_coding_utility",
|
|
"../../modules/video_coding/",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("vp9_qp_parser_fuzzer") {
|
|
sources = [ "vp9_qp_parser_fuzzer.cc" ]
|
|
deps = [
|
|
"../../modules/video_coding:video_coding_utility",
|
|
"../../modules/video_coding/",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("h264_bitstream_parser_fuzzer") {
|
|
sources = [ "h264_bitstream_parser_fuzzer.cc" ]
|
|
deps = [
|
|
"../../common_video",
|
|
"../../modules/video_coding/",
|
|
]
|
|
}
|
|
|
|
if (rtc_use_h265) {
|
|
webrtc_fuzzer_test("h265_bitstream_parser_fuzzer") {
|
|
sources = [ "h265_bitstream_parser_fuzzer.cc" ]
|
|
deps = [
|
|
"../../common_video",
|
|
"../../modules/video_coding/",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("h265_depacketizer_fuzzer") {
|
|
sources = [ "h265_depacketizer_fuzzer.cc" ]
|
|
deps = [ "../../modules/rtp_rtcp" ]
|
|
}
|
|
}
|
|
|
|
webrtc_fuzzer_test("forward_error_correction_fuzzer") {
|
|
sources = [ "forward_error_correction_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:scoped_refptr",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:byte_buffer",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("flexfec_header_reader_fuzzer") {
|
|
sources = [ "flexfec_header_reader_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:scoped_refptr",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("flexfec_sender_fuzzer") {
|
|
sources = [ "flexfec_sender_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/environment",
|
|
"../../api/environment:environment_factory",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../system_wrappers",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("ulpfec_header_reader_fuzzer") {
|
|
sources = [ "ulpfec_header_reader_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:scoped_refptr",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:fec_test_helper",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("ulpfec_generator_fuzzer") {
|
|
sources = [ "ulpfec_generator_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/environment",
|
|
"../../api/environment:environment_factory",
|
|
"../../modules:module_api_public",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:fec_test_helper",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:copy_on_write_buffer",
|
|
"../../system_wrappers",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("ulpfec_receiver_fuzzer") {
|
|
sources = [ "ulpfec_receiver_fuzzer.cc" ]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("flexfec_receiver_fuzzer") {
|
|
sources = [ "flexfec_receiver_fuzzer.cc" ]
|
|
deps = [
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_video_frame_assembler_fuzzer") {
|
|
sources = [ "rtp_video_frame_assembler_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/video:rtp_video_frame_assembler",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtcp_receiver_fuzzer") {
|
|
sources = [ "rtcp_receiver_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../api/environment",
|
|
"../../api/environment:environment_factory",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
"../../system_wrappers",
|
|
"../../test:explicit_key_value_config",
|
|
]
|
|
seed_corpus = "corpora/rtcp-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_packet_fuzzer") {
|
|
sources = [ "rtp_packet_fuzzer.cc" ]
|
|
deps = [
|
|
"../../common_video:corruption_detection_message",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
seed_corpus = "corpora/rtp-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_packetizer_av1_fuzzer") {
|
|
sources = [ "rtp_packetizer_av1_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/video:video_frame_type",
|
|
"../../modules/rtp_rtcp:rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_format_h264_fuzzer") {
|
|
sources = [ "rtp_format_h264_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/video:video_frame_type",
|
|
"../../modules/rtp_rtcp:rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_format_vp8_fuzzer") {
|
|
sources = [ "rtp_format_vp8_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/video:video_frame_type",
|
|
"../../modules/rtp_rtcp:rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_format_vp9_fuzzer") {
|
|
sources = [ "rtp_format_vp9_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/video:video_frame_type",
|
|
"../../modules/rtp_rtcp:rtp_rtcp",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("receive_side_congestion_controller_fuzzer") {
|
|
sources = [ "receive_side_congestion_controller_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../api/environment:environment_factory",
|
|
"../../api/units:time_delta",
|
|
"../../api/units:timestamp",
|
|
"../../modules/congestion_controller",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../system_wrappers",
|
|
]
|
|
seed_corpus = "corpora/receive-side-cc"
|
|
}
|
|
|
|
rtc_library("audio_decoder_fuzzer") {
|
|
testonly = true
|
|
sources = [
|
|
"audio_decoder_fuzzer.cc",
|
|
"audio_decoder_fuzzer.h",
|
|
]
|
|
deps = [
|
|
"../../api/audio_codecs:audio_codecs_api",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_decoder_g722_fuzzer") {
|
|
sources = [ "audio_decoder_g722_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_decoder_fuzzer",
|
|
"../../modules/audio_coding:g722",
|
|
]
|
|
}
|
|
|
|
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_opus_fuzzer") {
|
|
sources = [ "audio_decoder_opus_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_decoder_fuzzer",
|
|
"..:explicit_key_value_config",
|
|
"../../modules/audio_coding:webrtc_opus",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_decoder_opus_redundant_fuzzer") {
|
|
sources = [ "audio_decoder_opus_redundant_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_decoder_fuzzer",
|
|
"..:explicit_key_value_config",
|
|
"../../modules/audio_coding:webrtc_opus",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_decoder_multiopus_fuzzer") {
|
|
sources = [ "audio_decoder_multistream_opus_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_decoder_fuzzer",
|
|
"../../api/audio_codecs/opus:audio_decoder_multiopus",
|
|
"../../api/audio_codecs/opus:audio_decoder_opus_config",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_decoder_pcm_fuzzer") {
|
|
sources = [ "audio_decoder_pcm_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_decoder_fuzzer",
|
|
"../../modules/audio_coding:g711",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_decoder_pcm16b_fuzzer") {
|
|
sources = [ "audio_decoder_pcm16b_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_decoder_fuzzer",
|
|
"../../modules/audio_coding:pcm16b",
|
|
]
|
|
}
|
|
|
|
rtc_library("audio_encoder_fuzzer") {
|
|
testonly = true
|
|
sources = [
|
|
"audio_encoder_fuzzer.cc",
|
|
"audio_encoder_fuzzer.h",
|
|
]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api:array_view",
|
|
"../../api/audio_codecs:audio_codecs_api",
|
|
"../../rtc_base:buffer",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_encoder_opus_fuzzer") {
|
|
sources = [ "audio_encoder_opus_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_encoder_fuzzer",
|
|
"../../api/audio_codecs/opus:audio_encoder_opus",
|
|
"../../api/environment",
|
|
"../../api/environment:environment_factory",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("turn_unwrap_fuzzer") {
|
|
sources = [ "turn_unwrap_fuzzer.cc" ]
|
|
deps = [
|
|
"../../media",
|
|
"../../media:turn_utils",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("neteq_rtp_fuzzer") {
|
|
sources = [ "neteq_rtp_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../api/audio_codecs:builtin_audio_decoder_factory",
|
|
"../../modules/audio_coding:neteq",
|
|
"../../modules/audio_coding:neteq_test_tools",
|
|
"../../modules/audio_coding:neteq_tools_minimal",
|
|
"../../modules/audio_coding:pcm16b",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("neteq_signal_fuzzer") {
|
|
sources = [ "neteq_signal_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../api/audio_codecs:builtin_audio_decoder_factory",
|
|
"../../modules/audio_coding:neteq",
|
|
"../../modules/audio_coding:neteq_test_tools",
|
|
"../../modules/audio_coding:neteq_tools_minimal",
|
|
"../../modules/audio_coding:pcm16b",
|
|
"../../rtc_base:random",
|
|
"../../rtc_base:safe_conversions",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("residual_echo_detector_fuzzer") {
|
|
sources = [ "residual_echo_detector_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/audio:echo_detector_creator",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:refcount",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("sdp_parser_fuzzer") {
|
|
sources = [ "sdp_parser_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:libjingle_peerconnection_api",
|
|
"../../pc:libjingle_peerconnection",
|
|
]
|
|
seed_corpus = "corpora/sdp-corpus"
|
|
}
|
|
|
|
if (!build_with_chromium) {
|
|
# This target depends on test infrastructure that can't be built
|
|
# with Chromium at the moment.
|
|
# TODO: bugs.webrtc.org/42222682 - Make this fuzzer build in Chromium.
|
|
|
|
webrtc_fuzzer_test("sdp_integration_fuzzer") {
|
|
sources = [ "sdp_integration_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:libjingle_peerconnection_api",
|
|
"../../pc:integration_test_helpers",
|
|
"../../pc:libjingle_peerconnection",
|
|
"../../test:test_support",
|
|
"//third_party/abseil-cpp/absl/strings",
|
|
]
|
|
seed_corpus = "corpora/sdp-corpus"
|
|
}
|
|
}
|
|
|
|
webrtc_fuzzer_test("stun_parser_fuzzer") {
|
|
sources = [ "stun_parser_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/transport:stun_types",
|
|
"../../p2p:rtc_p2p",
|
|
]
|
|
seed_corpus = "corpora/stun-corpus"
|
|
dict = "corpora/stun.tokens"
|
|
}
|
|
|
|
webrtc_fuzzer_test("stun_validator_fuzzer") {
|
|
sources = [ "stun_validator_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api/transport:stun_types",
|
|
"../../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:pseudo_tcp",
|
|
"../../p2p:rtc_p2p",
|
|
"../../rtc_base:threading",
|
|
]
|
|
}
|
|
|
|
rtc_library("audio_processing_fuzzer_helper") {
|
|
testonly = true
|
|
sources = [
|
|
"audio_processing_fuzzer_helper.cc",
|
|
"audio_processing_fuzzer_helper.h",
|
|
]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api/audio:audio_frame_api",
|
|
"../../api/audio:audio_processing",
|
|
"../../modules/audio_processing",
|
|
"../../modules/audio_processing:audio_frame_proxies",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_processing_fuzzer") {
|
|
sources = [ "audio_processing_configs_fuzzer.cc" ]
|
|
deps = [
|
|
":audio_processing_fuzzer_helper",
|
|
"../../api:scoped_refptr",
|
|
"../../api/audio:aec3_factory",
|
|
"../../api/audio:audio_processing",
|
|
"../../api/audio:echo_detector_creator",
|
|
"../../api/task_queue",
|
|
"../../api/task_queue:default_task_queue_factory",
|
|
"../../modules/audio_processing",
|
|
"../../modules/audio_processing:audio_buffer",
|
|
"../../modules/audio_processing:audioproc_test_utils",
|
|
"../../modules/audio_processing/aec3",
|
|
"../../modules/audio_processing/aec_dump",
|
|
"../../modules/audio_processing/aec_dump:aec_dump_impl",
|
|
"../../rtc_base:macromagic",
|
|
"../../rtc_base:safe_minmax",
|
|
"../../system_wrappers:field_trial",
|
|
"//third_party/abseil-cpp/absl/base:nullability",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
seed_corpus = "corpora/audio_processing-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("audio_processing_sample_rate_fuzzer") {
|
|
sources = [ "audio_processing_sample_rate_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:scoped_refptr",
|
|
"../../api/audio:audio_frame_api",
|
|
"../../api/audio:audio_processing",
|
|
"../../modules/audio_processing",
|
|
"../../modules/audio_processing:audio_frame_proxies",
|
|
"../../modules/audio_processing:audioproc_test_utils",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:macromagic",
|
|
"../../rtc_base:safe_minmax",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("agc_fuzzer") {
|
|
sources = [ "agc_fuzzer.cc" ]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api/audio:audio_processing",
|
|
"../../modules/audio_processing",
|
|
"../../modules/audio_processing:audio_buffer",
|
|
"../../rtc_base:macromagic",
|
|
"../../rtc_base:safe_minmax",
|
|
]
|
|
|
|
seed_corpus = "corpora/agc-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("aec3_config_json_fuzzer") {
|
|
sources = [ "aec3_config_json_fuzzer.cc" ]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api/audio:aec3_config",
|
|
"../../modules/audio_processing:aec3_config_json",
|
|
]
|
|
dict = "//testing/libfuzzer/fuzzers/dicts/json.dict"
|
|
seed_corpus = "corpora/aec3-config-json-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("aec3_fuzzer") {
|
|
defines = []
|
|
if (apm_debug_dump) {
|
|
defines += [ "WEBRTC_APM_DEBUG_DUMP=1" ]
|
|
} else {
|
|
defines += [ "WEBRTC_APM_DEBUG_DUMP=0" ]
|
|
}
|
|
sources = [ "aec3_fuzzer.cc" ]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api/audio:audio_processing",
|
|
"../../modules/audio_processing:audio_buffer",
|
|
"../../modules/audio_processing/aec3",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("comfort_noise_decoder_fuzzer") {
|
|
sources = [ "comfort_noise_decoder_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../modules/audio_coding:webrtc_cng",
|
|
"../../rtc_base:buffer",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_depacketizer_av1_assemble_frame_fuzzer") {
|
|
sources = [ "rtp_depacketizer_av1_assemble_frame_fuzzer.cc" ]
|
|
seed_corpus = "corpora/rtp-depacketizer-av1-assemble-frame-corpus"
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api:array_view",
|
|
"../../modules/rtp_rtcp",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_dependency_descriptor_fuzzer") {
|
|
sources = [ "rtp_dependency_descriptor_fuzzer.cc" ]
|
|
seed_corpus = "corpora/dependency_descriptor-corpus"
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../common_video/generic_frame_descriptor",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_video_layers_allocation_fuzzer") {
|
|
sources = [ "rtp_video_layers_allocation_fuzzer.cc" ]
|
|
seed_corpus = "corpora/video_layers_allocation-corpus"
|
|
deps = [
|
|
"../../api:array_view",
|
|
"../../api/video:video_layers_allocation",
|
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../../rtc_base:checks",
|
|
]
|
|
|
|
# video_layers_allocation is an rtp header extension and thus can't be longer
|
|
# than 255 bytes on the wire.
|
|
libfuzzer_options = [ "max_len=255" ]
|
|
}
|
|
|
|
webrtc_fuzzer_test("rtp_frame_reference_finder_fuzzer") {
|
|
sources = [ "rtp_frame_reference_finder_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:rtp_packet_info",
|
|
"../../api:scoped_refptr",
|
|
"../../modules/rtp_rtcp",
|
|
"../../modules/video_coding:video_coding",
|
|
"../../system_wrappers",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("frame_buffer_fuzzer") {
|
|
sources = [ "frame_buffer_fuzzer.cc" ]
|
|
deps = [
|
|
":fuzz_data_helper",
|
|
"../../api:array_view",
|
|
"../../api/video:encoded_frame",
|
|
"../../api/video:frame_buffer",
|
|
"../../rtc_base:rtc_numerics",
|
|
"../../test:scoped_key_value_config",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("field_trial_fuzzer") {
|
|
sources = [ "field_trial_fuzzer.cc" ]
|
|
deps = [ "../../system_wrappers:field_trial" ]
|
|
seed_corpus = "corpora/field_trial-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("string_to_number_fuzzer") {
|
|
sources = [ "string_to_number_fuzzer.cc" ]
|
|
deps = [ "../../rtc_base:stringutils" ]
|
|
seed_corpus = "corpora/string_to_number-corpus"
|
|
}
|
|
|
|
webrtc_fuzzer_test("sctp_utils_fuzzer") {
|
|
sources = [ "sctp_utils_fuzzer.cc" ]
|
|
deps = [
|
|
"../../api:libjingle_peerconnection_api",
|
|
"../../pc:libjingle_peerconnection",
|
|
"../../pc:sctp_utils",
|
|
"../../rtc_base:copy_on_write_buffer",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("dcsctp_socket_fuzzer") {
|
|
sources = [ "dcsctp_socket_fuzzer.cc" ]
|
|
deps = [
|
|
"../../net/dcsctp/fuzzers:dcsctp_fuzzers",
|
|
"../../net/dcsctp/public:socket",
|
|
"../../net/dcsctp/public:types",
|
|
"../../net/dcsctp/socket:dcsctp_socket",
|
|
"../../rtc_base:logging",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("ssl_certificate_fuzzer") {
|
|
sources = [ "ssl_certificate_fuzzer.cc" ]
|
|
deps = [
|
|
"../:rtp_test_utils",
|
|
"../../rtc_base:digest",
|
|
"../../rtc_base:ssl",
|
|
"../../rtc_base:stringutils",
|
|
]
|
|
}
|
|
|
|
webrtc_fuzzer_test("vp8_replay_fuzzer") {
|
|
sources = [ "vp8_replay_fuzzer.cc" ]
|
|
deps = [ "utils:rtp_replayer" ]
|
|
seed_corpus = "corpora/rtpdump-corpus/vp8"
|
|
}
|
|
|
|
if (rtc_build_libvpx) {
|
|
webrtc_fuzzer_test("vp9_encoder_references_fuzzer") {
|
|
sources = [ "vp9_encoder_references_fuzzer.cc" ]
|
|
deps = [
|
|
"..:test_support",
|
|
"../../api:array_view",
|
|
"../../api:field_trials_view",
|
|
"../../api/environment:environment_factory",
|
|
"../../api/video:video_frame",
|
|
"../../api/video_codecs:video_codecs_api",
|
|
"../../media:media_constants",
|
|
"../../modules/video_coding:frame_dependencies_calculator",
|
|
"../../modules/video_coding:webrtc_libvpx_interface",
|
|
"../../modules/video_coding:webrtc_vp9",
|
|
"../../rtc_base:safe_compare",
|
|
"//third_party/abseil-cpp/absl/algorithm:container",
|
|
"//third_party/abseil-cpp/absl/base:core_headers",
|
|
"//third_party/abseil-cpp/absl/container:inlined_vector",
|
|
rtc_libvpx_dir,
|
|
]
|
|
seed_corpus = "corpora/vp9-encoder-references-corpus"
|
|
defines = [ "RTC_ENABLE_VP9" ]
|
|
}
|
|
}
|
|
|
|
webrtc_fuzzer_test("vp9_replay_fuzzer") {
|
|
sources = [ "vp9_replay_fuzzer.cc" ]
|
|
deps = [ "utils:rtp_replayer" ]
|
|
seed_corpus = "corpora/rtpdump-corpus/vp9"
|
|
}
|
|
|
|
group("fuzzers") {
|
|
testonly = true
|
|
deps = [
|
|
":aec3_config_json_fuzzer",
|
|
":aec3_fuzzer",
|
|
":agc_fuzzer",
|
|
":audio_decoder_fuzzer",
|
|
":audio_decoder_g722_fuzzer",
|
|
":audio_decoder_ilbc_fuzzer",
|
|
":audio_decoder_multiopus_fuzzer",
|
|
":audio_decoder_opus_fuzzer",
|
|
":audio_decoder_opus_redundant_fuzzer",
|
|
":audio_decoder_pcm16b_fuzzer",
|
|
":audio_decoder_pcm_fuzzer",
|
|
":audio_encoder_fuzzer",
|
|
":audio_encoder_opus_fuzzer",
|
|
":audio_processing_fuzzer",
|
|
":audio_processing_sample_rate_fuzzer",
|
|
":comfort_noise_decoder_fuzzer",
|
|
":dcsctp_socket_fuzzer",
|
|
":field_trial_fuzzer",
|
|
":flexfec_header_reader_fuzzer",
|
|
":flexfec_receiver_fuzzer",
|
|
":flexfec_sender_fuzzer",
|
|
":forward_error_correction_fuzzer",
|
|
":frame_buffer_fuzzer",
|
|
":h264_bitstream_parser_fuzzer",
|
|
":h264_depacketizer_fuzzer",
|
|
":neteq_rtp_fuzzer",
|
|
":neteq_signal_fuzzer",
|
|
":pseudotcp_parser_fuzzer",
|
|
":receive_side_congestion_controller_fuzzer",
|
|
":residual_echo_detector_fuzzer",
|
|
":rtcp_receiver_fuzzer",
|
|
":rtp_depacketizer_av1_assemble_frame_fuzzer",
|
|
":rtp_dependency_descriptor_fuzzer",
|
|
":rtp_format_h264_fuzzer",
|
|
":rtp_format_vp8_fuzzer",
|
|
":rtp_format_vp9_fuzzer",
|
|
":rtp_frame_reference_finder_fuzzer",
|
|
":rtp_packet_fuzzer",
|
|
":rtp_packetizer_av1_fuzzer",
|
|
":rtp_video_frame_assembler_fuzzer",
|
|
":rtp_video_layers_allocation_fuzzer",
|
|
":sctp_utils_fuzzer",
|
|
":sdp_parser_fuzzer",
|
|
":ssl_certificate_fuzzer",
|
|
":string_to_number_fuzzer",
|
|
":stun_parser_fuzzer",
|
|
":stun_validator_fuzzer",
|
|
":turn_unwrap_fuzzer",
|
|
":ulpfec_generator_fuzzer",
|
|
":ulpfec_header_reader_fuzzer",
|
|
":ulpfec_receiver_fuzzer",
|
|
":vp8_depacketizer_fuzzer",
|
|
":vp8_qp_parser_fuzzer",
|
|
":vp8_replay_fuzzer",
|
|
":vp9_depacketizer_fuzzer",
|
|
":vp9_qp_parser_fuzzer",
|
|
":vp9_replay_fuzzer",
|
|
]
|
|
if (rtc_use_h265) {
|
|
deps += [
|
|
":h265_bitstream_parser_fuzzer",
|
|
":h265_depacketizer_fuzzer",
|
|
]
|
|
}
|
|
|
|
if (rtc_build_libvpx) {
|
|
deps += [ ":vp9_encoder_references_fuzzer" ]
|
|
}
|
|
|
|
if (!build_with_chromium) {
|
|
# TODO: bugs.webrtc.org/42222682 - Add unconditionally when this fuzzer
|
|
# builds in Chromium.
|
|
deps += [ ":sdp_integration_fuzzer" ]
|
|
}
|
|
}
|