| # 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_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:builtin_audio_processing_builder", |
| "../../api/audio:echo_detector_creator", |
| "../../api/environment", |
| "../../api/environment:environment_factory", |
| "../../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", |
| "../../api/audio:builtin_audio_processing_builder", |
| "../../api/environment:environment_factory", |
| "../../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:encoded_image", |
| "../../api/video:video_bitrate_allocation", |
| "../../api/video:video_frame", |
| "../../api/video:video_frame_type", |
| "../../api/video_codecs:video_codecs_api", |
| "../../common_video/generic_frame_descriptor", |
| "../../media:media_constants", |
| "../../modules/video_coding:codec_globals_headers", |
| "../../modules/video_coding:frame_dependencies_calculator", |
| "../../modules/video_coding:video_codec_interface", |
| "../../modules/video_coding:webrtc_libvpx_interface", |
| "../../modules/video_coding:webrtc_vp9", |
| "../../rtc_base:checks", |
| "../../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", |
| "//third_party/abseil-cpp/absl/strings:string_view", |
| 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_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" ] |
| } |
| } |