blob: 3f37767fb924142a7bf7c31d6076ea45e186c7f2 [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
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../../webrtc.gni")
Peter Boström62e9bda2015-11-23 15:12:06 +010010import("//build/config/features.gni")
katrielc839315b2016-06-20 06:03:39 -070011import("//testing/libfuzzer/fuzzer_test.gni")
Peter Boström62e9bda2015-11-23 15:12:06 +010012
ehmaldonado38a21322016-09-02 04:10:34 -070013rtc_static_library("webrtc_fuzzer_main") {
Peter Boström62e9bda2015-11-23 15:12:06 +010014 sources = [
15 "webrtc_fuzzer_main.cc",
16 ]
17 deps = [
ehmaldonadof6a861a2017-07-19 10:40:47 -070018 "../../rtc_base:rtc_base_approved",
Peter Boström89d658f2015-11-25 21:58:36 +010019 "../../system_wrappers:field_trial_default",
Peter Boström871c4192015-11-26 14:52:23 +010020 "../../system_wrappers:metrics_default",
Peter Boström62e9bda2015-11-23 15:12:06 +010021 "//testing/libfuzzer:libfuzzer_main",
22 ]
23}
24
katrielc839315b2016-06-20 06:03:39 -070025template("webrtc_fuzzer_test") {
26 fuzzer_test(target_name) {
27 forward_variables_from(invoker, "*")
Niels Möller6e878502017-10-05 10:58:49 +020028 deps += [
29 ":webrtc_fuzzer_main",
30
31 # Link unconditionally with webrtc's TaskQueue, regardless of
32 # rtc_link_task_queue_impl flag.
33 "../../rtc_base:rtc_task_queue_impl",
34 ]
kjellandere40a7ee2016-10-16 23:56:12 -070035 if (!build_with_chromium && is_clang) {
36 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
katrielc839315b2016-06-20 06:03:39 -070037 suppressed_configs = [ "//build/config/clang:find_bad_constructs" ]
38 }
39 }
40}
41
Peter Boström1e0cfd92015-12-17 14:28:16 +010042webrtc_fuzzer_test("h264_depacketizer_fuzzer") {
43 sources = [
44 "h264_depacketizer_fuzzer.cc",
45 ]
46 deps = [
47 "../../modules/rtp_rtcp",
48 ]
49}
50
51webrtc_fuzzer_test("vp8_depacketizer_fuzzer") {
52 sources = [
53 "vp8_depacketizer_fuzzer.cc",
54 ]
55 deps = [
56 "../../modules/rtp_rtcp",
57 ]
58}
59
Peter Boström78315b92015-12-15 21:57:52 +010060webrtc_fuzzer_test("vp9_depacketizer_fuzzer") {
Peter Boström62e9bda2015-11-23 15:12:06 +010061 sources = [
62 "vp9_depacketizer_fuzzer.cc",
63 ]
64 deps = [
Peter Boström62e9bda2015-11-23 15:12:06 +010065 "../../modules/rtp_rtcp",
66 ]
Peter Boström62e9bda2015-11-23 15:12:06 +010067}
Peter Boström871c4192015-11-26 14:52:23 +010068
Peter Boström78315b92015-12-15 21:57:52 +010069webrtc_fuzzer_test("vp8_qp_parser_fuzzer") {
Peter Boström871c4192015-11-26 14:52:23 +010070 sources = [
71 "vp8_qp_parser_fuzzer.cc",
72 ]
73 deps = [
mbonadei3edccb92017-06-01 04:47:20 -070074 "../../modules/video_coding:video_coding_utility",
Peter Boström871c4192015-11-26 14:52:23 +010075 "../../modules/video_coding/",
76 ]
Peter Boström871c4192015-11-26 14:52:23 +010077}
Henrik Lundinfe32a762015-12-08 11:27:27 +010078
asapersson23ec19d2017-06-06 23:41:44 -070079webrtc_fuzzer_test("vp9_qp_parser_fuzzer") {
80 sources = [
81 "vp9_qp_parser_fuzzer.cc",
82 ]
83 deps = [
84 "../../modules/video_coding:video_coding_utility",
85 "../../modules/video_coding/",
86 ]
87}
88
pbosc6b4e542016-11-05 03:10:22 -070089webrtc_fuzzer_test("h264_bitstream_parser_fuzzer") {
90 sources = [
91 "h264_bitstream_parser_fuzzer.cc",
92 ]
93 deps = [
mbonadei3edccb92017-06-01 04:47:20 -070094 "../../common_video",
pbosc6b4e542016-11-05 03:10:22 -070095 "../../modules/video_coding/",
96 ]
97}
98
brandtrcada34c2016-10-03 02:02:49 -070099webrtc_fuzzer_test("flexfec_header_reader_fuzzer") {
100 sources = [
101 "flexfec_header_reader_fuzzer.cc",
102 ]
103 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700104 "../../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100105 "../../modules/rtp_rtcp:rtp_rtcp_format",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700106 "../../rtc_base:rtc_base_approved",
brandtrcada34c2016-10-03 02:02:49 -0700107 ]
108}
109
brandtr554becd2016-11-06 22:45:15 -0800110webrtc_fuzzer_test("flexfec_sender_fuzzer") {
111 sources = [
112 "flexfec_sender_fuzzer.cc",
113 ]
114 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700115 "../../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100116 "../../modules/rtp_rtcp:rtp_rtcp_format",
mbonadei3edccb92017-06-01 04:47:20 -0700117 "../../system_wrappers",
brandtr554becd2016-11-06 22:45:15 -0800118 ]
119 libfuzzer_options = [ "max_len=200" ]
120}
121
brandtrcada34c2016-10-03 02:02:49 -0700122webrtc_fuzzer_test("ulpfec_header_reader_fuzzer") {
123 sources = [
124 "ulpfec_header_reader_fuzzer.cc",
125 ]
126 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700127 "../../modules/rtp_rtcp",
128 "../../modules/rtp_rtcp:fec_test_helper",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100129 "../../modules/rtp_rtcp:rtp_rtcp_format",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700130 "../../rtc_base:rtc_base_approved",
brandtrcada34c2016-10-03 02:02:49 -0700131 ]
132}
133
brandtr869e7cd2016-10-31 05:27:07 -0700134webrtc_fuzzer_test("ulpfec_generator_fuzzer") {
Stefan Holmer4c1093b2015-12-11 18:25:45 +0100135 sources = [
brandtr869e7cd2016-10-31 05:27:07 -0700136 "ulpfec_generator_fuzzer.cc",
Stefan Holmer4c1093b2015-12-11 18:25:45 +0100137 ]
138 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700139 "../../modules/rtp_rtcp",
140 "../../modules/rtp_rtcp:fec_test_helper",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100141 "../../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda9e09242017-12-13 13:39:48 +0100142 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700143 "../../rtc_base:rtc_base_approved",
Stefan Holmer4c1093b2015-12-11 18:25:45 +0100144 ]
Stefan Holmer4c1093b2015-12-11 18:25:45 +0100145}
146
Mark Brand0c720502017-10-20 16:23:23 +0200147webrtc_fuzzer_test("ulpfec_receiver_fuzzer") {
148 sources = [
149 "ulpfec_receiver_fuzzer.cc",
150 ]
151 deps = [
152 "../../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100153 "../../modules/rtp_rtcp:rtp_rtcp_format",
Mark Brand0c720502017-10-20 16:23:23 +0200154 "../../rtc_base:rtc_base_approved",
155 ]
156 libfuzzer_options = [ "max_len=2000" ]
157}
158
brandtre405d9b2016-10-18 01:18:04 -0700159webrtc_fuzzer_test("flexfec_receiver_fuzzer") {
160 sources = [
161 "flexfec_receiver_fuzzer.cc",
162 ]
163 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700164 "../../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100165 "../../modules/rtp_rtcp:rtp_rtcp_format",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700166 "../../rtc_base:rtc_base_approved",
brandtre405d9b2016-10-18 01:18:04 -0700167 ]
168 libfuzzer_options = [ "max_len=2000" ]
169}
170
philipelea142f82017-01-11 02:01:56 -0800171webrtc_fuzzer_test("packet_buffer_fuzzer") {
172 sources = [
173 "packet_buffer_fuzzer.cc",
174 ]
175 deps = [
mbonadeib80ef8c2017-04-24 13:05:47 -0700176 "../../modules/video_coding/",
mbonadei3edccb92017-06-01 04:47:20 -0700177 "../../system_wrappers",
philipelea142f82017-01-11 02:01:56 -0800178 ]
179 libfuzzer_options = [ "max_len=2000" ]
180}
181
Peter Boströmba3e25e2016-02-23 11:35:30 +0100182webrtc_fuzzer_test("rtcp_receiver_fuzzer") {
183 sources = [
184 "rtcp_receiver_fuzzer.cc",
185 ]
186 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700187 "../../modules/rtp_rtcp",
Patrik Höglunda9e09242017-12-13 13:39:48 +0100188 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700189 "../../rtc_base:rtc_base_approved",
mbonadei3edccb92017-06-01 04:47:20 -0700190 "../../system_wrappers:system_wrappers",
Peter Boströmba3e25e2016-02-23 11:35:30 +0100191 ]
katrielcbddc94b2016-06-22 06:43:22 -0700192 seed_corpus = "corpora/rtcp-corpus"
Peter Boströmba3e25e2016-02-23 11:35:30 +0100193}
194
danilchap1edb7ab2016-04-20 05:25:10 -0700195webrtc_fuzzer_test("rtp_packet_fuzzer") {
196 sources = [
197 "rtp_packet_fuzzer.cc",
198 ]
199 deps = [
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100200 "../../modules/rtp_rtcp:rtp_rtcp_format",
danilchap1edb7ab2016-04-20 05:25:10 -0700201 ]
katrielcbddc94b2016-06-22 06:43:22 -0700202 seed_corpus = "corpora/rtp-corpus"
danilchap1edb7ab2016-04-20 05:25:10 -0700203}
204
katrielcd4bcdad2016-06-23 03:50:39 -0700205webrtc_fuzzer_test("rtp_header_fuzzer") {
206 sources = [
207 "rtp_header_fuzzer.cc",
208 ]
209 deps = [
kjellandere0629c02017-04-25 04:04:50 -0700210 "../../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100211 "../../modules/rtp_rtcp:rtp_rtcp_format",
katrielcd4bcdad2016-06-23 03:50:39 -0700212 ]
213}
214
stefanbded44b2016-07-18 09:26:06 -0700215webrtc_fuzzer_test("congestion_controller_feedback_fuzzer") {
216 sources = [
217 "congestion_controller_feedback_fuzzer.cc",
218 ]
219 deps = [
mbonadei3edccb92017-06-01 04:47:20 -0700220 "../../logging:rtc_event_log_api",
skvladcc91d282016-10-03 18:31:22 -0700221 "../../logging:rtc_event_log_impl",
Niels Möller245f17e2017-08-21 10:45:07 +0200222 "../../modules/congestion_controller",
223 "../../modules/pacing",
mbonadei3edccb92017-06-01 04:47:20 -0700224 "../../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100225 "../../modules/rtp_rtcp:rtp_rtcp_format",
stefanbded44b2016-07-18 09:26:06 -0700226 ]
227}
228
kjellanderb62dbbe2016-09-23 00:38:52 -0700229rtc_static_library("audio_decoder_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100230 sources = [
231 "audio_decoder_fuzzer.cc",
232 "audio_decoder_fuzzer.h",
233 ]
mbonadei3edccb92017-06-01 04:47:20 -0700234 deps = [
235 "../..:webrtc_common",
kwiberg84f6a3f2017-09-05 08:43:13 -0700236 "../../api:optional",
mbonadei3edccb92017-06-01 04:47:20 -0700237 "../../api/audio_codecs:audio_codecs_api",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100238 "../../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda9e09242017-12-13 13:39:48 +0100239 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700240 "../../rtc_base:rtc_base_approved",
mbonadei3edccb92017-06-01 04:47:20 -0700241 ]
Henrik Lundinfe32a762015-12-08 11:27:27 +0100242}
243
Peter Boström78315b92015-12-15 21:57:52 +0100244webrtc_fuzzer_test("audio_decoder_ilbc_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100245 sources = [
246 "audio_decoder_ilbc_fuzzer.cc",
247 ]
248 deps = [
249 ":audio_decoder_fuzzer",
250 "../../modules/audio_coding:ilbc",
251 ]
252}
253
Peter Boström78315b92015-12-15 21:57:52 +0100254webrtc_fuzzer_test("audio_decoder_isac_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100255 sources = [
256 "audio_decoder_isac_fuzzer.cc",
257 ]
258 deps = [
259 ":audio_decoder_fuzzer",
260 "../../modules/audio_coding:isac",
261 ]
262}
263
henrik.lundinfd2be272016-02-09 00:00:23 -0800264webrtc_fuzzer_test("audio_decoder_isac_incoming_packet_fuzzer") {
265 sources = [
266 "audio_decoder_isac_incoming_packet_fuzzer.cc",
267 ]
268 deps = [
269 ":audio_decoder_fuzzer",
270 "../../modules/audio_coding:isac",
271 ]
272}
273
Peter Boström78315b92015-12-15 21:57:52 +0100274webrtc_fuzzer_test("audio_decoder_isacfix_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100275 sources = [
276 "audio_decoder_isacfix_fuzzer.cc",
277 ]
278 deps = [
279 ":audio_decoder_fuzzer",
280 "../../modules/audio_coding:isac_fix",
281 ]
282}
283
Peter Boström78315b92015-12-15 21:57:52 +0100284webrtc_fuzzer_test("audio_decoder_opus_fuzzer") {
Henrik Lundinfe32a762015-12-08 11:27:27 +0100285 sources = [
286 "audio_decoder_opus_fuzzer.cc",
287 ]
288 deps = [
289 ":audio_decoder_fuzzer",
290 "../../modules/audio_coding:webrtc_opus",
291 ]
292}
henrik.lundinfd2be272016-02-09 00:00:23 -0800293
294webrtc_fuzzer_test("audio_decoder_opus_redundant_fuzzer") {
295 sources = [
296 "audio_decoder_opus_redundant_fuzzer.cc",
297 ]
298 deps = [
299 ":audio_decoder_fuzzer",
300 "../../modules/audio_coding:webrtc_opus",
301 ]
302}
katrielc262ba772016-07-06 05:59:23 -0700303
phoglund667bd072016-09-16 05:05:39 -0700304webrtc_fuzzer_test("turn_unwrap_fuzzer") {
305 sources = [
306 "turn_unwrap_fuzzer.cc",
307 ]
308 deps = [
309 "../../media:media",
310 ]
311}
katrielc1d4fefb2016-07-06 08:02:00 -0700312
henrik.lundin58466f62016-10-05 02:27:42 -0700313webrtc_fuzzer_test("neteq_rtp_fuzzer") {
314 sources = [
315 "neteq_rtp_fuzzer.cc",
316 ]
317 deps = [
kwiberg529662a2017-09-04 05:43:17 -0700318 "../../api:array_view",
mbonadei3d7b0e22017-04-26 00:38:48 -0700319 "../../modules/audio_coding:neteq",
mbonadei3edccb92017-06-01 04:47:20 -0700320 "../../modules/audio_coding:neteq_test_tools",
henrik.lundinb637a942017-04-28 00:59:45 -0700321 "../../modules/audio_coding:neteq_tools_minimal",
henrik.lundin58466f62016-10-05 02:27:42 -0700322 "../../modules/audio_coding:pcm16b",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100323 "../../modules/rtp_rtcp:rtp_rtcp_format",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700324 "../../rtc_base:rtc_base_approved",
325 "../../rtc_base:rtc_base_tests_utils",
henrik.lundin58466f62016-10-05 02:27:42 -0700326 ]
327}
328
Henrik Lundinb82de302017-10-20 10:38:56 +0200329webrtc_fuzzer_test("neteq_signal_fuzzer") {
330 sources = [
331 "neteq_signal_fuzzer.cc",
332 ]
333 deps = [
Henrik Lundin5dcbbfd2017-12-07 09:21:36 +0100334 ":fuzz_data_helper",
Henrik Lundinb82de302017-10-20 10:38:56 +0200335 "../../api:array_view",
336 "../../modules/audio_coding:neteq",
337 "../../modules/audio_coding:neteq_test_tools",
338 "../../modules/audio_coding:neteq_tools_minimal",
339 "../../modules/audio_coding:pcm16b",
Henrik Lundinb82de302017-10-20 10:38:56 +0200340 "../../rtc_base:rtc_base_approved",
341 "../../rtc_base:rtc_base_tests_utils",
342 ]
343}
344
ivoc860249e2017-05-16 06:50:11 -0700345webrtc_fuzzer_test("residual_echo_detector_fuzzer") {
346 sources = [
347 "residual_echo_detector_fuzzer.cc",
348 ]
349 deps = [
ivoc860249e2017-05-16 06:50:11 -0700350 "../../modules/audio_processing:audio_processing",
Patrik Höglunda9e09242017-12-13 13:39:48 +0100351 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700352 "../../rtc_base:rtc_base_approved",
ivoc860249e2017-05-16 06:50:11 -0700353 ]
354}
355
phoglund667bd072016-09-16 05:05:39 -0700356webrtc_fuzzer_test("sdp_parser_fuzzer") {
357 sources = [
358 "sdp_parser_fuzzer.cc",
359 ]
360 deps = [
Mirko Bonadeie51f7852017-12-06 11:23:19 +0100361 "../../api:libjingle_peerconnection_api",
ossu7bb87ee2017-01-23 04:56:25 -0800362 "../../pc:libjingle_peerconnection",
phoglund667bd072016-09-16 05:05:39 -0700363 ]
364 seed_corpus = "corpora/sdp-corpus"
365}
katrielc1d4fefb2016-07-06 08:02:00 -0700366
phoglund667bd072016-09-16 05:05:39 -0700367webrtc_fuzzer_test("stun_parser_fuzzer") {
368 sources = [
369 "stun_parser_fuzzer.cc",
370 ]
371 deps = [
372 "../../p2p:rtc_p2p",
373 ]
374 seed_corpus = "corpora/stun-corpus"
375 dict = "corpora/stun.tokens"
376}
katrielc1d4fefb2016-07-06 08:02:00 -0700377
phoglund667bd072016-09-16 05:05:39 -0700378webrtc_fuzzer_test("stun_validator_fuzzer") {
379 sources = [
380 "stun_validator_fuzzer.cc",
381 ]
382 deps = [
383 "../../p2p:rtc_p2p",
384 ]
385 seed_corpus = "corpora/stun-corpus"
386 dict = "corpora/stun.tokens"
387}
katrielc44905cf2016-07-07 05:52:24 -0700388
phoglund667bd072016-09-16 05:05:39 -0700389webrtc_fuzzer_test("pseudotcp_parser_fuzzer") {
390 sources = [
391 "pseudotcp_parser_fuzzer.cc",
392 ]
393 deps = [
394 "../../p2p:rtc_p2p",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700395 "../../rtc_base:rtc_base",
phoglund667bd072016-09-16 05:05:39 -0700396 ]
katrielc262ba772016-07-06 05:59:23 -0700397}
minyue435ddf92017-01-23 08:07:05 -0800398
399webrtc_fuzzer_test("transport_feedback_packet_loss_tracker_fuzzer") {
400 sources = [
401 "transport_feedback_packet_loss_tracker_fuzzer.cc",
402 ]
403 deps = [
kwiberg529662a2017-09-04 05:43:17 -0700404 "../../api:array_view",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100405 "../../modules/rtp_rtcp:rtp_rtcp_format",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700406 "../../rtc_base:rtc_base_approved",
minyue435ddf92017-01-23 08:07:05 -0800407 "../../voice_engine",
408 ]
409}
aleloi8c512822017-06-20 05:26:55 -0700410
411webrtc_fuzzer_test("audio_processing_fuzzer") {
412 sources = [
413 "audio_processing_fuzzer.cc",
414 "audio_processing_fuzzer.h",
415 "audio_processing_fuzzer_configs.cc",
416 ]
417 deps = [
kwiberg84f6a3f2017-09-05 08:43:13 -0700418 "../../api:optional",
aleloi8c512822017-06-20 05:26:55 -0700419 "../../modules:module_api",
420 "../../modules/audio_processing",
Patrik Höglunda9e09242017-12-13 13:39:48 +0100421 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700422 "../../rtc_base:rtc_base_approved",
aleloi8c512822017-06-20 05:26:55 -0700423 ]
424}
Henrik Lundin5dcbbfd2017-12-07 09:21:36 +0100425
426webrtc_fuzzer_test("comfort_noise_decoder_fuzzer") {
427 sources = [
428 "comfort_noise_decoder_fuzzer.cc",
429 ]
430 deps = [
431 ":fuzz_data_helper",
432 "../../api:array_view",
433 "../../modules/audio_coding:cng",
434 "../../rtc_base:rtc_base_approved",
435 ]
436}
437
438rtc_static_library("fuzz_data_helper") {
439 sources = [
440 "fuzz_data_helper.cc",
441 "fuzz_data_helper.h",
442 ]
443 deps = [
444 "../../api:array_view",
445 "../../modules/rtp_rtcp:rtp_rtcp_format",
446 ]
447 visibility = [ ":*" ] # Only targets in this file can depend on this.
448}