blob: d917f1afa7ad43c6e71581e47e658854ab6fc1e1 [file] [log] [blame]
Peter Boström62e9bda2015-11-23 15:12:06 +01001# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("//build/config/features.gni")
katrielc262ba772016-07-06 05:59:23 -070010import("//build_overrides/webrtc.gni")
katrielc839315b2016-06-20 06:03:39 -070011import("//testing/libfuzzer/fuzzer_test.gni")
katrielc262ba772016-07-06 05:59:23 -070012import("//testing/test.gni")
Peter Boström62e9bda2015-11-23 15:12:06 +010013
14static_library("webrtc_fuzzer_main") {
Henrik Lundinfe32a762015-12-08 11:27:27 +010015 public_configs = [ "../..:common_inherited_config" ]
Peter Boström62e9bda2015-11-23 15:12:06 +010016 sources = [
17 "webrtc_fuzzer_main.cc",
18 ]
19 deps = [
Peter Boström89d658f2015-11-25 21:58:36 +010020 "../../system_wrappers:field_trial_default",
Peter Boström871c4192015-11-26 14:52:23 +010021 "../../system_wrappers:metrics_default",
Peter Boström62e9bda2015-11-23 15:12:06 +010022 "//testing/libfuzzer:libfuzzer_main",
23 ]
24}
25
katrielc839315b2016-06-20 06:03:39 -070026template("webrtc_fuzzer_test") {
27 fuzzer_test(target_name) {
28 forward_variables_from(invoker, "*")
29 deps += [ ":webrtc_fuzzer_main" ]
30 if (is_clang) {
31 # Suppress warnings from Chrome's Clang plugins.
32 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details
33 suppressed_configs = [ "//build/config/clang:find_bad_constructs" ]
34 }
35 }
36}
37
Peter Boström1e0cfd92015-12-17 14:28:16 +010038webrtc_fuzzer_test("h264_depacketizer_fuzzer") {
39 sources = [
40 "h264_depacketizer_fuzzer.cc",
41 ]
42 deps = [
43 "../../modules/rtp_rtcp",
44 ]
45}
46
47webrtc_fuzzer_test("vp8_depacketizer_fuzzer") {
48 sources = [
49 "vp8_depacketizer_fuzzer.cc",
50 ]
51 deps = [
52 "../../modules/rtp_rtcp",
53 ]
54}
55
Peter Boström78315b92015-12-15 21:57:52 +010056webrtc_fuzzer_test("vp9_depacketizer_fuzzer") {
Peter Boström62e9bda2015-11-23 15:12:06 +010057 sources = [
58 "vp9_depacketizer_fuzzer.cc",
59 ]
60 deps = [
Peter Boström62e9bda2015-11-23 15:12:06 +010061 "../../modules/rtp_rtcp",
62 ]
Peter Boström62e9bda2015-11-23 15:12:06 +010063}
Peter Boström871c4192015-11-26 14:52:23 +010064
Peter Boström78315b92015-12-15 21:57:52 +010065webrtc_fuzzer_test("vp8_qp_parser_fuzzer") {
Peter Boström871c4192015-11-26 14:52:23 +010066 sources = [
67 "vp8_qp_parser_fuzzer.cc",
68 ]
69 deps = [
Peter Boström871c4192015-11-26 14:52:23 +010070 "../../modules/video_coding/",
71 ]
Peter Boström871c4192015-11-26 14:52:23 +010072}
Henrik Lundinfe32a762015-12-08 11:27:27 +010073
Peter Boström78315b92015-12-15 21:57:52 +010074webrtc_fuzzer_test("producer_fec_fuzzer") {
Stefan Holmer4c1093b2015-12-11 18:25:45 +010075 sources = [
76 "producer_fec_fuzzer.cc",
77 ]
78 deps = [
Stefan Holmer4c1093b2015-12-11 18:25:45 +010079 "../../modules/rtp_rtcp/",
80 ]
Stefan Holmer4c1093b2015-12-11 18:25:45 +010081}
82
Peter Boströmba3e25e2016-02-23 11:35:30 +010083webrtc_fuzzer_test("rtcp_receiver_fuzzer") {
84 sources = [
85 "rtcp_receiver_fuzzer.cc",
86 ]
87 deps = [
88 "../../modules/rtp_rtcp/",
89 ]
katrielcbddc94b2016-06-22 06:43:22 -070090 seed_corpus = "corpora/rtcp-corpus"
Peter Boströmba3e25e2016-02-23 11:35:30 +010091}
92
danilchap1edb7ab2016-04-20 05:25:10 -070093webrtc_fuzzer_test("rtp_packet_fuzzer") {
94 sources = [
95 "rtp_packet_fuzzer.cc",
96 ]
97 deps = [
98 "../../modules/rtp_rtcp/",
99 ]
katrielcbddc94b2016-06-22 06:43:22 -0700100 seed_corpus = "corpora/rtp-corpus"
danilchap1edb7ab2016-04-20 05:25:10 -0700101}
102
katrielcd4bcdad2016-06-23 03:50:39 -0700103webrtc_fuzzer_test("rtp_header_fuzzer") {
104 sources = [
105 "rtp_header_fuzzer.cc",
106 ]
107 deps = [
108 "../../modules/rtp_rtcp/",
109 ]
110}
111
stefanbded44b2016-07-18 09:26:06 -0700112webrtc_fuzzer_test("congestion_controller_feedback_fuzzer") {
113 sources = [
114 "congestion_controller_feedback_fuzzer.cc",
115 ]
116 deps = [
117 "../../modules/congestion_controller/",
118 ]
119}
120
Henrik Lundinfe32a762015-12-08 11:27:27 +0100121source_set("audio_decoder_fuzzer") {
Peter Boström78315b92015-12-15 21:57:52 +0100122 public_configs = [ "../..:common_inherited_config" ]
Henrik Lundinfe32a762015-12-08 11:27:27 +0100123 sources = [
124 "audio_decoder_fuzzer.cc",
125 "audio_decoder_fuzzer.h",
126 ]
Henrik Lundinfe32a762015-12-08 11:27:27 +0100127}
128
Peter Boström78315b92015-12-15 21:57:52 +0100129webrtc_fuzzer_test("audio_decoder_ilbc_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100130 sources = [
131 "audio_decoder_ilbc_fuzzer.cc",
132 ]
133 deps = [
134 ":audio_decoder_fuzzer",
135 "../../modules/audio_coding:ilbc",
136 ]
137}
138
Peter Boström78315b92015-12-15 21:57:52 +0100139webrtc_fuzzer_test("audio_decoder_isac_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100140 sources = [
141 "audio_decoder_isac_fuzzer.cc",
142 ]
143 deps = [
144 ":audio_decoder_fuzzer",
145 "../../modules/audio_coding:isac",
146 ]
147}
148
henrik.lundinfd2be272016-02-09 00:00:23 -0800149webrtc_fuzzer_test("audio_decoder_isac_incoming_packet_fuzzer") {
150 sources = [
151 "audio_decoder_isac_incoming_packet_fuzzer.cc",
152 ]
153 deps = [
154 ":audio_decoder_fuzzer",
155 "../../modules/audio_coding:isac",
156 ]
157}
158
Peter Boström78315b92015-12-15 21:57:52 +0100159webrtc_fuzzer_test("audio_decoder_isacfix_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100160 sources = [
161 "audio_decoder_isacfix_fuzzer.cc",
162 ]
163 deps = [
164 ":audio_decoder_fuzzer",
165 "../../modules/audio_coding:isac_fix",
166 ]
167}
168
Peter Boström78315b92015-12-15 21:57:52 +0100169webrtc_fuzzer_test("audio_decoder_opus_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100170 sources = [
171 "audio_decoder_opus_fuzzer.cc",
172 ]
173 deps = [
174 ":audio_decoder_fuzzer",
175 "../../modules/audio_coding:webrtc_opus",
176 ]
177}
henrik.lundinfd2be272016-02-09 00:00:23 -0800178
179webrtc_fuzzer_test("audio_decoder_opus_redundant_fuzzer") {
180 sources = [
181 "audio_decoder_opus_redundant_fuzzer.cc",
182 ]
183 deps = [
184 ":audio_decoder_fuzzer",
185 "../../modules/audio_coding:webrtc_opus",
186 ]
187}
katrielc262ba772016-07-06 05:59:23 -0700188
189# TODO(katrielc) Enable in Chromium when CL 2022833002 lands.
190# Although the dependency on media compiles in standalone, it is
191# flagged by gn check, so breaks when rolled into Chromium.
192if (!build_with_chromium) {
193 webrtc_fuzzer_test("turn_unwrap_fuzzer") {
194 sources = [
195 "turn_unwrap_fuzzer.cc",
196 ]
197 deps = [
198 "../../media:media",
199 ]
200 }
katrielc1d4fefb2016-07-06 08:02:00 -0700201
202 webrtc_fuzzer_test("sdp_parser_fuzzer") {
203 sources = [
204 "sdp_parser_fuzzer.cc",
205 ]
206 deps = [
207 "../../api:libjingle_peerconnection",
208 ]
209 seed_corpus = "corpora/sdp-corpus"
210 }
211
212 webrtc_fuzzer_test("stun_parser_fuzzer") {
213 sources = [
214 "stun_parser_fuzzer.cc",
215 ]
216 deps = [
217 "../../p2p:rtc_p2p",
218 ]
219 seed_corpus = "corpora/stun-corpus"
220 dict = "corpora/stun.tokens"
221 }
222
223 webrtc_fuzzer_test("stun_validator_fuzzer") {
224 sources = [
225 "stun_validator_fuzzer.cc",
226 ]
227 deps = [
228 "../../p2p:rtc_p2p",
229 ]
230 seed_corpus = "corpora/stun-corpus"
231 dict = "corpora/stun.tokens"
232 }
katrielc44905cf2016-07-07 05:52:24 -0700233
234 webrtc_fuzzer_test("pseudotcp_parser_fuzzer") {
235 sources = [
236 "pseudotcp_parser_fuzzer.cc",
237 ]
238 deps = [
239 "../../p2p:rtc_p2p",
240 ]
241 }
katrielc262ba772016-07-06 05:59:23 -0700242}