1*3f982cf4SFabien Sanglard# Copyright 2019 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard# found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglardimport("//build_overrides/build.gni") 6*3f982cf4SFabien Sanglardimport("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni") 7*3f982cf4SFabien Sanglardimport("//third_party/protobuf/proto_library.gni") 8*3f982cf4SFabien Sanglardimport("../../testing/libfuzzer/fuzzer_test.gni") 9*3f982cf4SFabien Sanglard 10*3f982cf4SFabien Sanglardfuzzable_proto_library("remoting_proto") { 11*3f982cf4SFabien Sanglard sources = [ "remoting.proto" ] 12*3f982cf4SFabien Sanglard} 13*3f982cf4SFabien Sanglard 14*3f982cf4SFabien Sanglardsource_set("streaming_configs") { 15*3f982cf4SFabien Sanglard sources = [ 16*3f982cf4SFabien Sanglard "capture_configs.h", 17*3f982cf4SFabien Sanglard "constants.h", 18*3f982cf4SFabien Sanglard "message_fields.cc", 19*3f982cf4SFabien Sanglard "message_fields.h", 20*3f982cf4SFabien Sanglard "resolution.cc", 21*3f982cf4SFabien Sanglard "resolution.h", 22*3f982cf4SFabien Sanglard ] 23*3f982cf4SFabien Sanglard 24*3f982cf4SFabien Sanglard public_configs = [ "../../build:openscreen_include_dirs" ] 25*3f982cf4SFabien Sanglard 26*3f982cf4SFabien Sanglard public_deps = [ 27*3f982cf4SFabien Sanglard "../../third_party/abseil", 28*3f982cf4SFabien Sanglard "../../third_party/jsoncpp", 29*3f982cf4SFabien Sanglard ] 30*3f982cf4SFabien Sanglard 31*3f982cf4SFabien Sanglard deps = [ 32*3f982cf4SFabien Sanglard "../../platform:base", 33*3f982cf4SFabien Sanglard "../../util:base", 34*3f982cf4SFabien Sanglard ] 35*3f982cf4SFabien Sanglard} 36*3f982cf4SFabien Sanglard 37*3f982cf4SFabien Sanglardsource_set("common") { 38*3f982cf4SFabien Sanglard sources = [ 39*3f982cf4SFabien Sanglard "answer_messages.cc", 40*3f982cf4SFabien Sanglard "answer_messages.h", 41*3f982cf4SFabien Sanglard "capture_recommendations.cc", 42*3f982cf4SFabien Sanglard "capture_recommendations.h", 43*3f982cf4SFabien Sanglard "clock_drift_smoother.cc", 44*3f982cf4SFabien Sanglard "clock_drift_smoother.h", 45*3f982cf4SFabien Sanglard "encoded_frame.cc", 46*3f982cf4SFabien Sanglard "encoded_frame.h", 47*3f982cf4SFabien Sanglard "environment.cc", 48*3f982cf4SFabien Sanglard "environment.h", 49*3f982cf4SFabien Sanglard "expanded_value_base.h", 50*3f982cf4SFabien Sanglard "frame_crypto.cc", 51*3f982cf4SFabien Sanglard "frame_crypto.h", 52*3f982cf4SFabien Sanglard "frame_id.cc", 53*3f982cf4SFabien Sanglard "frame_id.h", 54*3f982cf4SFabien Sanglard "ntp_time.cc", 55*3f982cf4SFabien Sanglard "ntp_time.h", 56*3f982cf4SFabien Sanglard "offer_messages.cc", 57*3f982cf4SFabien Sanglard "offer_messages.h", 58*3f982cf4SFabien Sanglard "packet_util.cc", 59*3f982cf4SFabien Sanglard "packet_util.h", 60*3f982cf4SFabien Sanglard "receiver_message.cc", 61*3f982cf4SFabien Sanglard "receiver_message.h", 62*3f982cf4SFabien Sanglard "rpc_messenger.cc", 63*3f982cf4SFabien Sanglard "rpc_messenger.h", 64*3f982cf4SFabien Sanglard "rtcp_common.cc", 65*3f982cf4SFabien Sanglard "rtcp_common.h", 66*3f982cf4SFabien Sanglard "rtcp_session.cc", 67*3f982cf4SFabien Sanglard "rtcp_session.h", 68*3f982cf4SFabien Sanglard "rtp_defines.cc", 69*3f982cf4SFabien Sanglard "rtp_defines.h", 70*3f982cf4SFabien Sanglard "rtp_time.cc", 71*3f982cf4SFabien Sanglard "rtp_time.h", 72*3f982cf4SFabien Sanglard "sender_message.cc", 73*3f982cf4SFabien Sanglard "sender_message.h", 74*3f982cf4SFabien Sanglard "session_config.cc", 75*3f982cf4SFabien Sanglard "session_config.h", 76*3f982cf4SFabien Sanglard "session_messenger.cc", 77*3f982cf4SFabien Sanglard "session_messenger.h", 78*3f982cf4SFabien Sanglard "ssrc.cc", 79*3f982cf4SFabien Sanglard "ssrc.h", 80*3f982cf4SFabien Sanglard ] 81*3f982cf4SFabien Sanglard 82*3f982cf4SFabien Sanglard public_configs = [ "../../build:openscreen_include_dirs" ] 83*3f982cf4SFabien Sanglard 84*3f982cf4SFabien Sanglard public_deps = [ 85*3f982cf4SFabien Sanglard ":remoting_proto", 86*3f982cf4SFabien Sanglard ":streaming_configs", 87*3f982cf4SFabien Sanglard "../../third_party/abseil", 88*3f982cf4SFabien Sanglard "../../third_party/boringssl", 89*3f982cf4SFabien Sanglard "../common:channel", 90*3f982cf4SFabien Sanglard "../common:public", 91*3f982cf4SFabien Sanglard "../common/certificate/proto:certificate_proto", 92*3f982cf4SFabien Sanglard ] 93*3f982cf4SFabien Sanglard 94*3f982cf4SFabien Sanglard deps = [ 95*3f982cf4SFabien Sanglard "../../platform", 96*3f982cf4SFabien Sanglard "../../util", 97*3f982cf4SFabien Sanglard ] 98*3f982cf4SFabien Sanglard 99*3f982cf4SFabien Sanglard if (!build_with_chromium) { 100*3f982cf4SFabien Sanglard deps += [ "../protocol:castv2" ] 101*3f982cf4SFabien Sanglard } 102*3f982cf4SFabien Sanglard} 103*3f982cf4SFabien Sanglard 104*3f982cf4SFabien Sanglardsource_set("receiver") { 105*3f982cf4SFabien Sanglard sources = [ 106*3f982cf4SFabien Sanglard "compound_rtcp_builder.cc", 107*3f982cf4SFabien Sanglard "compound_rtcp_builder.h", 108*3f982cf4SFabien Sanglard "frame_collector.cc", 109*3f982cf4SFabien Sanglard "frame_collector.h", 110*3f982cf4SFabien Sanglard "packet_receive_stats_tracker.cc", 111*3f982cf4SFabien Sanglard "packet_receive_stats_tracker.h", 112*3f982cf4SFabien Sanglard "receiver.cc", 113*3f982cf4SFabien Sanglard "receiver.h", 114*3f982cf4SFabien Sanglard "receiver_base.cc", 115*3f982cf4SFabien Sanglard "receiver_base.h", 116*3f982cf4SFabien Sanglard "receiver_packet_router.cc", 117*3f982cf4SFabien Sanglard "receiver_packet_router.h", 118*3f982cf4SFabien Sanglard "receiver_session.cc", 119*3f982cf4SFabien Sanglard "receiver_session.h", 120*3f982cf4SFabien Sanglard "rtp_packet_parser.cc", 121*3f982cf4SFabien Sanglard "rtp_packet_parser.h", 122*3f982cf4SFabien Sanglard "sender_report_parser.cc", 123*3f982cf4SFabien Sanglard "sender_report_parser.h", 124*3f982cf4SFabien Sanglard ] 125*3f982cf4SFabien Sanglard 126*3f982cf4SFabien Sanglard public_deps = [ ":common" ] 127*3f982cf4SFabien Sanglard 128*3f982cf4SFabien Sanglard deps = [ "../../util" ] 129*3f982cf4SFabien Sanglard} 130*3f982cf4SFabien Sanglard 131*3f982cf4SFabien Sanglardsource_set("sender") { 132*3f982cf4SFabien Sanglard sources = [ 133*3f982cf4SFabien Sanglard "bandwidth_estimator.cc", 134*3f982cf4SFabien Sanglard "bandwidth_estimator.h", 135*3f982cf4SFabien Sanglard "compound_rtcp_parser.cc", 136*3f982cf4SFabien Sanglard "compound_rtcp_parser.h", 137*3f982cf4SFabien Sanglard "remoting_capabilities.h", 138*3f982cf4SFabien Sanglard "rtp_packetizer.cc", 139*3f982cf4SFabien Sanglard "rtp_packetizer.h", 140*3f982cf4SFabien Sanglard "sender.cc", 141*3f982cf4SFabien Sanglard "sender.h", 142*3f982cf4SFabien Sanglard "sender_packet_router.cc", 143*3f982cf4SFabien Sanglard "sender_packet_router.h", 144*3f982cf4SFabien Sanglard "sender_report_builder.cc", 145*3f982cf4SFabien Sanglard "sender_report_builder.h", 146*3f982cf4SFabien Sanglard "sender_session.cc", 147*3f982cf4SFabien Sanglard "sender_session.h", 148*3f982cf4SFabien Sanglard ] 149*3f982cf4SFabien Sanglard 150*3f982cf4SFabien Sanglard public_deps = [ ":common" ] 151*3f982cf4SFabien Sanglard 152*3f982cf4SFabien Sanglard deps = [ "../../util" ] 153*3f982cf4SFabien Sanglard} 154*3f982cf4SFabien Sanglard 155*3f982cf4SFabien Sanglardsource_set("test_helpers") { 156*3f982cf4SFabien Sanglard testonly = true 157*3f982cf4SFabien Sanglard 158*3f982cf4SFabien Sanglard sources = [ 159*3f982cf4SFabien Sanglard "testing/message_pipe.h", 160*3f982cf4SFabien Sanglard "testing/simple_message_port.h", 161*3f982cf4SFabien Sanglard "testing/simple_socket_subscriber.h", 162*3f982cf4SFabien Sanglard ] 163*3f982cf4SFabien Sanglard 164*3f982cf4SFabien Sanglard public_deps = [ ":common" ] 165*3f982cf4SFabien Sanglard 166*3f982cf4SFabien Sanglard deps = [ 167*3f982cf4SFabien Sanglard "../../third_party/googletest:gmock", 168*3f982cf4SFabien Sanglard "../../third_party/googletest:gtest", 169*3f982cf4SFabien Sanglard "../../util", 170*3f982cf4SFabien Sanglard "../common:public", 171*3f982cf4SFabien Sanglard ] 172*3f982cf4SFabien Sanglard} 173*3f982cf4SFabien Sanglard 174*3f982cf4SFabien Sanglardsource_set("unittests") { 175*3f982cf4SFabien Sanglard testonly = true 176*3f982cf4SFabien Sanglard 177*3f982cf4SFabien Sanglard sources = [ 178*3f982cf4SFabien Sanglard "answer_messages_unittest.cc", 179*3f982cf4SFabien Sanglard "bandwidth_estimator_unittest.cc", 180*3f982cf4SFabien Sanglard "capture_recommendations_unittest.cc", 181*3f982cf4SFabien Sanglard "compound_rtcp_builder_unittest.cc", 182*3f982cf4SFabien Sanglard "compound_rtcp_parser_unittest.cc", 183*3f982cf4SFabien Sanglard "expanded_value_base_unittest.cc", 184*3f982cf4SFabien Sanglard "frame_collector_unittest.cc", 185*3f982cf4SFabien Sanglard "frame_crypto_unittest.cc", 186*3f982cf4SFabien Sanglard "message_fields_unittest.cc", 187*3f982cf4SFabien Sanglard "mock_compound_rtcp_parser_client.h", 188*3f982cf4SFabien Sanglard "mock_environment.cc", 189*3f982cf4SFabien Sanglard "mock_environment.h", 190*3f982cf4SFabien Sanglard "ntp_time_unittest.cc", 191*3f982cf4SFabien Sanglard "offer_messages_unittest.cc", 192*3f982cf4SFabien Sanglard "packet_receive_stats_tracker_unittest.cc", 193*3f982cf4SFabien Sanglard "packet_util_unittest.cc", 194*3f982cf4SFabien Sanglard "receiver_session_unittest.cc", 195*3f982cf4SFabien Sanglard "receiver_unittest.cc", 196*3f982cf4SFabien Sanglard "rpc_messenger_unittest.cc", 197*3f982cf4SFabien Sanglard "rtcp_common_unittest.cc", 198*3f982cf4SFabien Sanglard "rtp_packet_parser_unittest.cc", 199*3f982cf4SFabien Sanglard "rtp_packetizer_unittest.cc", 200*3f982cf4SFabien Sanglard "rtp_time_unittest.cc", 201*3f982cf4SFabien Sanglard "sender_packet_router_unittest.cc", 202*3f982cf4SFabien Sanglard "sender_report_unittest.cc", 203*3f982cf4SFabien Sanglard "sender_session_unittest.cc", 204*3f982cf4SFabien Sanglard "sender_unittest.cc", 205*3f982cf4SFabien Sanglard "session_messenger_unittest.cc", 206*3f982cf4SFabien Sanglard "ssrc_unittest.cc", 207*3f982cf4SFabien Sanglard ] 208*3f982cf4SFabien Sanglard 209*3f982cf4SFabien Sanglard deps = [ 210*3f982cf4SFabien Sanglard ":receiver", 211*3f982cf4SFabien Sanglard ":sender", 212*3f982cf4SFabien Sanglard ":test_helpers", 213*3f982cf4SFabien Sanglard "../../platform:test", 214*3f982cf4SFabien Sanglard "../../third_party/googletest:gmock", 215*3f982cf4SFabien Sanglard "../../third_party/googletest:gtest", 216*3f982cf4SFabien Sanglard "../../util", 217*3f982cf4SFabien Sanglard ] 218*3f982cf4SFabien Sanglard} 219*3f982cf4SFabien Sanglard 220*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("compound_rtcp_parser_fuzzer") { 221*3f982cf4SFabien Sanglard sources = [ "compound_rtcp_parser_fuzzer.cc" ] 222*3f982cf4SFabien Sanglard 223*3f982cf4SFabien Sanglard deps = [ 224*3f982cf4SFabien Sanglard ":sender", 225*3f982cf4SFabien Sanglard "../../third_party/abseil", 226*3f982cf4SFabien Sanglard ] 227*3f982cf4SFabien Sanglard 228*3f982cf4SFabien Sanglard seed_corpus = "compound_rtcp_parser_fuzzer_seeds" 229*3f982cf4SFabien Sanglard 230*3f982cf4SFabien Sanglard # Note: 1500 is approx. kMaxRtpPacketSize in rtp_defines.h. 231*3f982cf4SFabien Sanglard libfuzzer_options = [ "max_len=1500" ] 232*3f982cf4SFabien Sanglard} 233*3f982cf4SFabien Sanglard 234*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("rtp_packet_parser_fuzzer") { 235*3f982cf4SFabien Sanglard sources = [ "rtp_packet_parser_fuzzer.cc" ] 236*3f982cf4SFabien Sanglard 237*3f982cf4SFabien Sanglard deps = [ 238*3f982cf4SFabien Sanglard ":receiver", 239*3f982cf4SFabien Sanglard "../../third_party/abseil", 240*3f982cf4SFabien Sanglard ] 241*3f982cf4SFabien Sanglard 242*3f982cf4SFabien Sanglard seed_corpus = "rtp_packet_parser_fuzzer_seeds" 243*3f982cf4SFabien Sanglard 244*3f982cf4SFabien Sanglard # Note: 1500 is approx. kMaxRtpPacketSize in rtp_defines.h. 245*3f982cf4SFabien Sanglard libfuzzer_options = [ "max_len=1500" ] 246*3f982cf4SFabien Sanglard} 247*3f982cf4SFabien Sanglard 248*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("sender_report_parser_fuzzer") { 249*3f982cf4SFabien Sanglard sources = [ "sender_report_parser_fuzzer.cc" ] 250*3f982cf4SFabien Sanglard 251*3f982cf4SFabien Sanglard deps = [ 252*3f982cf4SFabien Sanglard ":receiver", 253*3f982cf4SFabien Sanglard "../../third_party/abseil", 254*3f982cf4SFabien Sanglard ] 255*3f982cf4SFabien Sanglard 256*3f982cf4SFabien Sanglard seed_corpus = "sender_report_parser_fuzzer_seeds" 257*3f982cf4SFabien Sanglard 258*3f982cf4SFabien Sanglard # Note: 1500 is approx. kMaxRtpPacketSize in rtp_defines.h. 259*3f982cf4SFabien Sanglard libfuzzer_options = [ "max_len=1500" ] 260*3f982cf4SFabien Sanglard} 261