Split peerconnection_unittests into smaller targets

Bug: webrtc:498394143
Change-Id: I89a9e152d9e9c3f9703362c8af2ee3376a6a6964
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/465520
Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#47497}
diff --git a/BUILD.gn b/BUILD.gn
index b19055d..8b34ec3 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -130,7 +130,10 @@
 if (rtc_include_tests) {
   group("test_suites") {
     testonly = true
-    deps = [ ":webrtc_nonparallel_tests" ]
+    deps = [
+      ":webrtc_nonparallel_tests",
+      "//pc:peerconnection_unittests",
+    ]
   }
 }
 
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 8a7617f..57026b6 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -2517,145 +2517,584 @@
       "//third_party/abseil-cpp/absl/strings",
     ]
   }
-
-  rtc_test("peerconnection_unittests") {
-    testonly = true
-    sources = [
-      "congestion_control_integrationtest.cc",
-      "data_channel_integrationtest.cc",
-      "dtmf_sender_unittest.cc",
-      "ice_server_parsing_unittest.cc",
-      "jitter_buffer_delay_unittest.cc",
-      "jsep_session_description_unittest.cc",
-      "legacy_stats_collector_unittest.cc",
-      "local_audio_source_unittest.cc",
-      "media_stream_unittest.cc",
-      "peer_connection_adaptation_integrationtest.cc",
-      "peer_connection_audio_options_unittest.cc",
-      "peer_connection_bundle_unittest.cc",
-      "peer_connection_crypto_unittest.cc",
-      "peer_connection_data_channel_unittest.cc",
-      "peer_connection_encodings_integrationtest.cc",
-      "peer_connection_end_to_end_unittest.cc",
-      "peer_connection_factory_unittest.cc",
-      "peer_connection_field_trial_tests.cc",
-      "peer_connection_header_extension_unittest.cc",
-      "peer_connection_histogram_unittest.cc",
-      "peer_connection_ice_unittest.cc",
-      "peer_connection_integrationtest.cc",
-      "peer_connection_interface_unittest.cc",
-      "peer_connection_jsep_unittest.cc",
-      "peer_connection_media_unittest.cc",
-      "peer_connection_rtp_unittest.cc",
-      "peer_connection_signaling_unittest.cc",
-      "peer_connection_simulcast_unittest.cc",
-      "peer_connection_stability_integrationtest.cc",
-      "peer_connection_svc_integrationtest.cc",
-      "pranswer_switch_integrationtest.cc",
-      "proxy_unittest.cc",
-      "rtc_stats_collector_unittest.cc",
-      "rtc_stats_integrationtest.cc",
-      "rtc_stats_traversal_unittest.cc",
-      "rtp_media_utils_unittest.cc",
-      "rtp_parameters_conversion_unittest.cc",
-      "rtp_sender_receiver_unittest.cc",
-      "rtp_transceiver_unittest.cc",
-      "scoped_operations_batcher_unittest.cc",
-      "sctp_data_channel_unittest.cc",
-      "sctp_utils_unittest.cc",
-      "sdp_munging_detector_unittest.cc",
-      "sdp_offer_answer_unittest.cc",
-      "sdp_payload_type_suggester_unittest.cc",
-      "simulcast_sdp_serializer_unittest.cc",
-      "test/fake_audio_capture_module_unittest.cc",
-      "test/test_sdp_strings.h",
-      "track_media_info_map_unittest.cc",
-      "video_rtp_track_source_unittest.cc",
-      "video_track_unittest.cc",
-    ]
-
+  rtc_cc_test("dtmf_sender_unittest") {
+    sources = [ "dtmf_sender_unittest.cc" ]
     deps = [
-      ":audio_rtp_receiver",
-      ":audio_track",
-      ":codec_vendor",
-      ":connection_context",
-      ":data_channel_utils",
-      ":dtls_srtp_transport",
-      ":dtls_transport",
       ":dtmf_sender",
-      ":enable_fake_media",
-      ":fake_codec_lookup_helper",
+      "../api:dtmf_sender_interface",
+      "../api:rtc_error_matchers",
+      "../api:scoped_refptr",
+      "../api/units:time_delta",
+      "../api/units:timestamp",
+      "../rtc_base:timeutils",
+      "../test:test_support",
+      "../test:wait_until",
+      "../test/time_controller",
+    ]
+  }
+
+  rtc_cc_test("ice_server_parsing_unittest") {
+    sources = [ "ice_server_parsing_unittest.cc" ]
+    deps = [
       ":ice_server_parsing",
-      ":integration_test_helpers",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../p2p:port",
+      "../p2p:port_allocator",
+      "../p2p:port_interface",
+      "../rtc_base:ip_address",
+      "../rtc_base:socket_address",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("jitter_buffer_delay_unittest") {
+    sources = [ "jitter_buffer_delay_unittest.cc" ]
+    deps = [
       ":jitter_buffer_delay",
-      ":jsep_transport_controller",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("jsep_session_description_unittest") {
+    sources = [ "jsep_session_description_unittest.cc" ]
+    deps = [
+      ":session_description",
+      "../api:candidate",
+      "../api:jsep",
+      "../media:codec",
+      "../p2p:p2p_constants",
+      "../p2p:transport_description",
+      "../p2p:transport_info",
+      "../rtc_base:crypto_random",
+      "../rtc_base:net_helper",
+      "../rtc_base:socket_address",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/strings",
+    ]
+  }
+
+  rtc_cc_test("legacy_stats_collector_unittest") {
+    sources = [ "legacy_stats_collector_unittest.cc" ]
+    deps = [
       ":legacy_stats_collector",
+      ":media_stream",
+      ":pc_test_utils",
+      ":peer_connection_internal",
+      ":sctp_data_channel",
+      ":transport_stats",
+      ":video_track",
+      "../api:candidate",
+      "../api:data_channel_interface",
+      "../api:legacy_stats_types",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:peer_connection_interface",
+      "../api:rtp_parameters",
+      "../api:rtp_sender_interface",
+      "../api:scoped_refptr",
+      "../api/audio:audio_processing_statistics",
+      "../api/audio_codecs:audio_codecs_api",
+      "../api/units:time_delta",
+      "../api/units:timestamp",
+      "../call:call_interfaces",
+      "../media:media_channel",
+      "../p2p:connection_info",
+      "../p2p:ice_transport_internal",
+      "../rtc_base:base64",
+      "../rtc_base:checks",
+      "../rtc_base:digest",
+      "../rtc_base:net_helper",
+      "../rtc_base:network_constants",
+      "../rtc_base:null_socket_server",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:socket_address",
+      "../rtc_base:ssl",
+      "../rtc_base:ssl_adapter",
+      "../rtc_base:threading",
+      "../rtc_base/system:plan_b_only",
+      "../system_wrappers",
+      "../test:create_test_environment",
+      "../test:run_loop",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/algorithm:container",
+      "//third_party/abseil-cpp/absl/strings",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("local_audio_source_unittest") {
+    sources = [ "local_audio_source_unittest.cc" ]
+    deps = [
       ":local_audio_source",
+      "../api:audio_options_api",
+      "../api:scoped_refptr",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("media_stream_unittest") {
+    sources = [ "media_stream_unittest.cc" ]
+    deps = [
+      ":audio_track",
+      ":media_stream",
+      ":pc_test_utils",
+      ":video_track",
+      "../api:media_stream_interface",
+      "../api:scoped_refptr",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_audio_options_unittest") {
+    sources = [ "peer_connection_audio_options_unittest.cc" ]
+    deps = [
+      ":enable_fake_media",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peer_connection_proxy",
+      ":rtp_transceiver",
+      "../api:audio_options_api",
+      "../api:create_modular_peer_connection_factory",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../api:set_local_description_observer_interface",
+      "../media:rtc_media_tests_utils",
+      "../rtc_base:checks",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_bundle_unittest") {
+    sources = [ "peer_connection_bundle_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":integration_test_helpers",
+      ":jsep_transport_controller",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peerconnection_wrapper",
+      ":rtp_transceiver",
+      ":rtp_transport_internal",
+      ":sdp_utils",
+      ":session_description",
+      "../api:candidate",
+      "../api:create_modular_peer_connection_factory",
+      "../api:enable_media_with_defaults",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtc_error_matchers",
+      "../api:rtc_stats_api",
+      "../api:rtp_parameters",
+      "../api:rtp_receiver_interface",
+      "../api:rtp_sender_interface",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:stream_params",
+      "../p2p:p2p_constants",
+      "../p2p:port_allocator",
+      "../p2p:transport_info",
+      "../rtc_base:checks",
+      "../rtc_base:logging",
+      "../rtc_base:net_helper",
+      "../rtc_base:network",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:socket_address",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_crypto_unittest") {
+    sources = [ "peer_connection_crypto_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
       ":media_protocol_names",
       ":media_session",
+      ":pc_test_utils",
+      ":peerconnection_wrapper",
+      ":sdp_utils",
+      ":session_description",
+      "../api:create_peerconnection_factory",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:peer_connection_interface",
+      "../api:rtc_error_matchers",
+      "../api:scoped_refptr",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/environment:environment_factory",
+      "../api/units:time_delta",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../p2p:fake_port_allocator",
+      "../p2p:transport_description",
+      "../p2p:transport_info",
+      "../rtc_base:checks",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:rtc_certificate_generator",
+      "../rtc_base:ssl",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_data_channel_unittest") {
+    sources = [ "peer_connection_data_channel_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":enable_fake_media",
+      ":media_session",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peerconnection_wrapper",
+      ":sctp_transport",
+      ":session_description",
+      "../api:create_modular_peer_connection_factory",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../api:sctp_transport_interface",
+      "../rtc_base:checks",
+      "../rtc_base:logging",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test/pc/sctp:fake_sctp_transport",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_end_to_end_unittest") {
+    sources = [ "peer_connection_end_to_end_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":pc_test_utils",
+      "../api:audio_options_api",
+      "../api:data_channel_interface",
+      "../api:make_ref_counted",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../api:sctp_transport_interface",
+      "../api/audio_codecs:audio_codecs_api",
+      "../api/audio_codecs:opus_audio_decoder_factory",
+      "../api/audio_codecs:opus_audio_encoder_factory",
+      "../api/audio_codecs/L16:audio_decoder_L16",
+      "../api/audio_codecs/L16:audio_encoder_L16",
+      "../api/environment",
+      "../api/units:time_delta",
+      "../rtc_base:checks",
+      "../rtc_base:copy_on_write_buffer",
+      "../rtc_base:threading",
+      "../test:audio_codec_mocks",
+      "../test:create_test_environment",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+      "//third_party/abseil-cpp/absl/strings",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_factory_unittest") {
+    sources = [ "peer_connection_factory_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":connection_context",
+      ":pc_test_utils",
+      ":peer_connection_factory",
+      "../api:create_modular_peer_connection_factory",
+      "../api:create_peerconnection_factory",
+      "../api:data_channel_interface",
+      "../api:enable_media",
+      "../api:enable_media_with_defaults",
+      "../api:field_trials",
+      "../api:field_trials_view",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:mock_packet_socket_factory",
+      "../api:peer_connection_interface",
+      "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../api/audio:audio_device",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/environment",
+      "../api/environment:environment_factory",
+      "../api/units:time_delta",
+      "../api/units:timestamp",
+      "../api/video_codecs:scalability_mode",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:media_constants",
+      "../media:rtc_media_tests_utils",
+      "../modules/audio_processing:mocks",
+      "../p2p:fake_port_allocator",
+      "../p2p:port",
+      "../p2p:port_allocator",
+      "../rtc_base:net_helper",
+      "../rtc_base:network",
+      "../rtc_base:rtc_event",
+      "../rtc_base:socket_address",
+      "../rtc_base:socket_server",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_header_extension_unittest") {
+    sources = [ "peer_connection_header_extension_unittest.cc" ]
+    deps = [
+      ":enable_fake_media",
+      ":pc_test_utils",
+      ":peerconnection_wrapper",
+      ":session_description",
+      "../api:create_modular_peer_connection_factory",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtp_parameters",
+      "../api:rtp_transceiver_direction",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
+      "../api/environment:environment_factory",
+      "../api/rtc_event_log:rtc_event_log_factory",
+      "../media:rtc_media_tests_utils",
+      "../p2p:fake_port_allocator",
+      "../rtc_base:socket_server",
+      "../rtc_base:stringutils",
+      "../rtc_base:threading",
+      "../test:create_test_field_trials",
+      "../test:run_loop",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_histogram_unittest") {
+    sources = [ "peer_connection_histogram_unittest.cc" ]
+    deps = [
+      ":enable_fake_media",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peerconnection_wrapper",
+      ":usage_pattern",
+      "../api:create_modular_peer_connection_factory",
+      "../api:jsep",
+      "../api:mock_async_dns_resolver",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:scoped_refptr",
+      "../api/units:time_delta",
+      "../rtc_base:checks",
+      "../rtc_base:ip_address",
+      "../rtc_base:network",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:socket_address",
+      "../rtc_base:threading",
+      "../system_wrappers:metrics",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+      "//third_party/abseil-cpp/absl/strings:str_format",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_ice_unittest") {
+    sources = [ "peer_connection_ice_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":dtls_transport",
+      ":media_session",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peer_connection_proxy",
+      ":peerconnection_wrapper",
+      ":rtp_transceiver",
+      ":session_description",
+      "../api:candidate",
+      "../api:create_modular_peer_connection_factory",
+      "../api:create_peerconnection_factory",
+      "../api:enable_media_with_defaults",
+      "../api:ice_transport_interface",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../api:uma_metrics",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/environment:environment_factory",
+      "../api/units:time_delta",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../p2p:fake_port_allocator",
+      "../p2p:ice_transport_internal",
+      "../p2p:p2p_constants",
+      "../p2p:port_allocator",
+      "../p2p:transport_description",
+      "../p2p:transport_info",
+      "../rtc_base:checks",
+      "../rtc_base:ip_address",
+      "../rtc_base:logging",
+      "../rtc_base:net_helper",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:socket_address",
+      "../rtc_base:socket_server",
+      "../rtc_base:stringutils",
+      "../rtc_base:threading",
+      "../system_wrappers:metrics",
+      "../test:run_loop",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_interface_unittest") {
+    sources = [ "peer_connection_interface_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":audio_track",
+      ":media_session",
       ":media_stream",
       ":pc_test_utils",
       ":peer_connection",
       ":peer_connection_factory",
-      ":peer_connection_internal",
-      ":peer_connection_proxy",
-      ":peerconnection_wrapper",
-      ":proxy",
-      ":rtc_stats_collector",
-      ":rtc_stats_traversal",
       ":rtp_media_utils",
-      ":rtp_parameters_conversion",
-      ":rtp_receiver",
-      ":rtp_receiver_proxy",
       ":rtp_sender",
       ":rtp_sender_proxy",
-      ":rtp_transceiver",
-      ":rtp_transport",
-      ":rtp_transport_internal",
-      ":scoped_operations_batcher",
-      ":sctp_data_channel",
-      ":sctp_transport",
-      ":sctp_utils",
-      ":sdp_munging_detector",
-      ":sdp_payload_type_suggester",
-      ":sdp_utils",
       ":session_description",
-      ":simulcast_description",
-      ":simulcast_sdp_serializer",
       ":stream_collection",
-      ":track_media_info_map",
-      ":transport_stats",
-      ":usage_pattern",
-      ":video_rtp_receiver",
-      ":video_rtp_track_source",
       ":video_track",
-      "../api:audio_options_api",
-      "../api:candidate",
-      "../api:create_modular_peer_connection_factory",
       "../api:create_peerconnection_factory",
       "../api:data_channel_interface",
-      "../api:dtls_transport_interface",
-      "../api:dtmf_sender_interface",
-      "../api:enable_media",
       "../api:enable_media_with_defaults",
-      "../api:fake_frame_decryptor",
-      "../api:fake_frame_encryptor",
-      "../api:field_trials",
-      "../api:field_trials_view",
-      "../api:ice_transport_interface",
       "../api:jsep",
-      "../api:legacy_stats_types",
       "../api:libjingle_logging_api",
       "../api:make_ref_counted",
       "../api:media_stream_interface",
-      "../api:mock_async_dns_resolver",
-      "../api:mock_encoder_selector",
-      "../api:mock_packet_socket_factory",
-      "../api:mock_video_track",
-      "../api:payload_type",
       "../api:peer_connection_interface",
-      "../api:priority",
-      "../api:ref_count",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_receiver_interface",
+      "../api:rtp_sender_interface",
+      "../api:rtp_transceiver_direction",
+      "../api:scoped_refptr",
+      "../api:sctp_transport_interface",
+      "../api/audio:audio_device",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/crypto:options",
+      "../api/environment:environment_factory",
+      "../api/rtc_event_log",
+      "../api/rtc_event_log:rtc_event_log_factory",
+      "../api/transport:bitrate_settings",
+      "../api/transport:enums",
+      "../api/units:time_delta",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:codec",
+      "../media:rtc_media_config",
+      "../media:stream_params",
+      "../p2p:fake_port_allocator",
+      "../p2p:p2p_constants",
+      "../p2p:port",
+      "../p2p:port_allocator",
+      "../p2p:transport_description",
+      "../p2p:transport_info",
+      "../rtc_base:checks",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:rtc_certificate_generator",
+      "../rtc_base:socket_address",
+      "../rtc_base:socket_server",
+      "../rtc_base:threading",
+      "../rtc_base:weak_ptr",
+      "../rtc_base/system:plan_b_only",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+      "//third_party/abseil-cpp/absl/strings",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_jsep_unittest") {
+    sources = [ "peer_connection_jsep_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":media_session",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peerconnection_wrapper",
+      ":session_description",
+      "../api:create_modular_peer_connection_factory",
+      "../api:enable_media_with_defaults",
+      "../api:jsep",
+      "../api:media_stream_interface",
+      "../api:peer_connection_interface",
       "../api:rtc_error",
       "../api:rtc_error_matchers",
       "../api:rtc_stats_api",
@@ -2665,49 +3104,86 @@
       "../api:rtp_transceiver_direction",
       "../api:rtp_transceiver_interface",
       "../api:scoped_refptr",
-      "../api:sctp_transport_interface",
-      "../api:sequence_checker",
-      "../api:set_local_description_observer_interface",
+      "../media:stream_params",
+      "../p2p:p2p_constants",
+      "../p2p:transport_info",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test/pc/sctp:fake_sctp_transport",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_media_unittest") {
+    sources = [ "peer_connection_media_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":enable_fake_media",
+      ":media_session",
+      ":pc_test_utils",
+      ":peerconnection_wrapper",
+      ":rtp_media_utils",
+      ":rtp_transceiver",
+      ":session_description",
+      "../api:create_modular_peer_connection_factory",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_sender_interface",
+      "../api:rtp_transceiver_direction",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
+      "../api/environment:environment_factory",
+      "../api/rtc_event_log:rtc_event_log_factory",
+      "../media:codec",
+      "../media:media_channel",
+      "../media:media_constants",
+      "../media:media_engine",
+      "../media:rtc_media_tests_utils",
+      "../media:stream_params",
+      "../p2p:fake_port_allocator",
+      "../p2p:p2p_constants",
+      "../p2p:transport_info",
+      "../rtc_base:checks",
+      "../rtc_base:refcount",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/algorithm:container",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_rtp_unittest") {
+    sources = [ "peer_connection_rtp_unittest.cc" ]
+    deps = [
+      ":integration_test_helpers",
+      ":media_session",
+      ":pc_test_utils",
+      ":peerconnection_wrapper",
+      ":rtp_transceiver",
+      ":session_description",
+      "../api:create_peerconnection_factory",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_receiver_interface",
+      "../api:rtp_sender_interface",
+      "../api:rtp_transceiver_direction",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
       "../api:set_remote_description_observer_interface",
-      "../api:uma_metrics",
-      "../api/adaptation:resource_adaptation_api",
-      "../api/audio:audio_device",
-      "../api/audio:audio_processing_statistics",
-      "../api/audio_codecs:audio_codecs_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/audio_codecs:builtin_audio_encoder_factory",
-      "../api/audio_codecs:opus_audio_decoder_factory",
-      "../api/audio_codecs:opus_audio_encoder_factory",
-      "../api/audio_codecs/L16:audio_decoder_L16",
-      "../api/audio_codecs/L16:audio_encoder_L16",
-      "../api/crypto:frame_decryptor_interface",
-      "../api/crypto:frame_encryptor_interface",
-      "../api/crypto:options",
-      "../api/environment",
-      "../api/environment:environment_factory",
-      "../api/rtc_event_log",
-      "../api/rtc_event_log:rtc_event_log_factory",
-      "../api/task_queue",
-      "../api/task_queue:pending_task_safety_flag",
-      "../api/transport:bitrate_settings",
-      "../api/transport:datagram_transport_interface",
-      "../api/transport:enums",
-      "../api/transport/rtp:rtp_source",
       "../api/units:data_rate",
-      "../api/units:time_delta",
-      "../api/units:timestamp",
-      "../api/video:builtin_video_bitrate_allocator_factory",
-      "../api/video:encoded_image",
-      "../api/video:recordable_encoded_frame",
       "../api/video:render_resolution",
-      "../api/video:video_bitrate_allocator_factory",
-      "../api/video:video_codec_constants",
-      "../api/video:video_frame",
-      "../api/video:video_rtp_headers",
-      "../api/video:video_stream_encoder",
-      "../api/video_codecs:builtin_video_decoder_factory",
-      "../api/video_codecs:builtin_video_encoder_factory",
-      "../api/video_codecs:scalability_mode",
       "../api/video_codecs:video_codecs_api",
       "../api/video_codecs:video_decoder_factory_template",
       "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
@@ -2719,105 +3195,608 @@
       "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
       "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
       "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
-      "../call:call_interfaces",
-      "../call:payload_type",
-      "../call/adaptation:resource_adaptation_test_utilities",
-      "../common_video",
-      "../logging:fake_rtc_event_log",
       "../media:codec",
       "../media:media_channel",
-      "../media:media_constants",
-      "../media:media_engine",
-      "../media:rid_description",
       "../media:rtc_audio_video",
-      "../media:rtc_data_sctp_transport_internal",
-      "../media:rtc_media_config",
+      "../media:stream_params",
+      "../rtc_base:checks",
+      "../rtc_base:threading",
+      "../rtc_base/system:plan_b_only",
+      "../system_wrappers:metrics",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_signaling_unittest") {
+    sources = [ "peer_connection_signaling_unittest.cc" ]
+    deps = [
+      ":android_black_magic",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peerconnection_wrapper",
+      ":sdp_utils",
+      ":session_description",
+      "../api:create_peerconnection_factory",
+      "../api:dtls_transport_interface",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_receiver_interface",
+      "../api:rtp_sender_interface",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
+      "../api/audio:audio_device",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/units:time_delta",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:codec",
+      "../rtc_base:checks",
+      "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:stringutils",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+      "//third_party/abseil-cpp/absl/strings",
+    ]
+  }
+
+  rtc_cc_test("peer_connection_simulcast_unittest") {
+    sources = [ "peer_connection_simulcast_unittest.cc" ]
+    deps = [
+      ":pc_test_utils",
+      ":peerconnection_wrapper",
+      ":session_description",
+      ":simulcast_description",
+      "../api:create_peerconnection_factory",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtp_parameters",
+      "../api:rtp_sender_interface",
+      "../api:rtp_transceiver_direction",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/video:video_codec_constants",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:rid_description",
+      "../media:stream_params",
+      "../rtc_base:checks",
+      "../rtc_base:threading",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/algorithm:container",
+    ]
+  }
+
+  rtc_cc_test("proxy_unittest") {
+    sources = [ "proxy_unittest.cc" ]
+    deps = [
+      ":proxy",
+      "../api:make_ref_counted",
+      "../api:ref_count",
+      "../api:scoped_refptr",
+      "../rtc_base:threading",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("rtc_stats_collector_unittest") {
+    sources = [ "rtc_stats_collector_unittest.cc" ]
+    deps = [
+      ":media_stream",
+      ":pc_test_utils",
+      ":peer_connection_internal",
+      ":rtc_stats_collector",
+      ":rtp_sender",
+      ":rtp_transceiver",
+      ":scoped_operations_batcher",
+      ":sctp_data_channel",
+      ":stream_collection",
+      ":transport_stats",
+      "../api:audio_options_api",
+      "../api:candidate",
+      "../api:data_channel_interface",
+      "../api:dtls_transport_interface",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:peer_connection_interface",
+      "../api:rtc_stats_api",
+      "../api:rtp_parameters",
+      "../api:rtp_transceiver_direction",
+      "../api:scoped_refptr",
+      "../api/audio:audio_device",
+      "../api/audio:audio_processing_statistics",
+      "../api/environment",
+      "../api/task_queue:pending_task_safety_flag",
+      "../api/transport:enums",
+      "../api/units:data_rate",
+      "../api/units:time_delta",
+      "../api/units:timestamp",
+      "../api/video:video_rtp_headers",
+      "../api/video_codecs:scalability_mode",
+      "../call:call_interfaces",
+      "../common_video",
+      "../media:media_channel",
       "../media:rtc_media_tests_utils",
       "../media:stream_params",
-      "../modules/audio_processing:mocks",
       "../modules/rtp_rtcp:rtp_rtcp_format",
       "../p2p:connection_info",
-      "../p2p:dtls_transport_internal",
-      "../p2p:fake_port_allocator",
       "../p2p:ice_transport_internal",
       "../p2p:p2p_constants",
-      "../p2p:p2p_test_utils",
       "../p2p:port",
-      "../p2p:port_allocator",
-      "../p2p:port_interface",
       "../p2p:transport_description",
-      "../p2p:transport_info",
-      "../rtc_base:base64",
-      "../rtc_base:byte_buffer",
       "../rtc_base:checks",
-      "../rtc_base:copy_on_write_buffer",
-      "../rtc_base:crypto_random",
-      "../rtc_base:digest",
-      "../rtc_base:event_tracer",
-      "../rtc_base:ip_address",
-      "../rtc_base:logging",
-      "../rtc_base:net_helper",
-      "../rtc_base:network",
       "../rtc_base:network_constants",
-      "../rtc_base:null_socket_server",
-      "../rtc_base:random",
-      "../rtc_base:refcount",
       "../rtc_base:rtc_base_tests_utils",
-      "../rtc_base:rtc_certificate_generator",
       "../rtc_base:rtc_event",
-      "../rtc_base:safe_conversions",
       "../rtc_base:socket_address",
-      "../rtc_base:socket_server",
       "../rtc_base:ssl",
       "../rtc_base:ssl_adapter",
-      "../rtc_base:stringutils",
-      "../rtc_base:task_queue_for_test",
       "../rtc_base:threading",
       "../rtc_base:timeutils",
-      "../rtc_base:unique_id_generator",
-      "../rtc_base:weak_ptr",
-      "../rtc_base/containers:flat_map",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/system:plan_b_only",
       "../system_wrappers",
-      "../system_wrappers:metrics",
-      "../test:audio_codec_mocks",
       "../test:create_test_environment",
-      "../test:create_test_field_trials",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test/time_controller",
+      "//third_party/abseil-cpp/absl/functional:any_invocable",
+      "//third_party/abseil-cpp/absl/strings",
+      "//third_party/jsoncpp",
+    ]
+  }
+
+  rtc_stats_traversal_unittest = [ "rtc_stats_traversal_unittest.cc" ]
+  rtc_cc_test("rtc_stats_traversal_unittest") {
+    sources = rtc_stats_traversal_unittest
+    deps = [
+      ":rtc_stats_traversal",
+      "../api:rtc_stats_api",
+      "../api:scoped_refptr",
+      "../api/units:timestamp",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("rtp_media_utils_unittest") {
+    sources = [ "rtp_media_utils_unittest.cc" ]
+    deps = [
+      ":rtp_media_utils",
+      "../api:rtp_transceiver_direction",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("rtp_parameters_conversion_unittest") {
+    sources = [ "rtp_parameters_conversion_unittest.cc" ]
+    deps = [
+      ":rtp_parameters_conversion",
+      ":session_description",
+      "../api:rtp_parameters",
+      "../media:codec",
+      "../media:media_constants",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("rtp_sender_receiver_unittest") {
+    sources = [ "rtp_sender_receiver_unittest.cc" ]
+    deps = [
+      ":audio_rtp_receiver",
+      ":audio_track",
+      ":dtls_srtp_transport",
+      ":local_audio_source",
+      ":media_stream",
+      ":pc_test_utils",
+      ":rtp_sender",
+      ":rtp_transport_internal",
+      ":video_rtp_receiver",
+      ":video_track",
+      "../api:audio_options_api",
+      "../api:dtmf_sender_interface",
+      "../api:fake_frame_decryptor",
+      "../api:fake_frame_encryptor",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_receiver_interface",
+      "../api:scoped_refptr",
+      "../api/crypto:frame_decryptor_interface",
+      "../api/crypto:frame_encryptor_interface",
+      "../api/crypto:options",
+      "../api/environment",
+      "../api/environment:environment_factory",
+      "../api/task_queue",
+      "../api/video:builtin_video_bitrate_allocator_factory",
+      "../api/video:video_bitrate_allocator_factory",
+      "../api/video:video_codec_constants",
+      "../media:codec",
+      "../media:media_channel",
+      "../media:media_engine",
+      "../media:rid_description",
+      "../media:rtc_media_config",
+      "../media:rtc_media_tests_utils",
+      "../media:stream_params",
+      "../p2p:dtls_transport_internal",
+      "../p2p:p2p_constants",
+      "../p2p:p2p_test_utils",
+      "../rtc_base:checks",
+      "../rtc_base:threading",
+      "../rtc_base:unique_id_generator",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+      "//third_party/abseil-cpp/absl/algorithm:container",
+      "//third_party/abseil-cpp/absl/functional:any_invocable",
+    ]
+  }
+
+  rtc_cc_test("rtp_transceiver_unittest") {
+    sources = [ "rtp_transceiver_unittest.cc" ]
+    deps = [
+      ":codec_vendor",
+      ":connection_context",
+      ":dtls_transport",
+      ":enable_fake_media",
+      ":fake_codec_lookup_helper",
+      ":pc_test_utils",
+      ":rtp_parameters_conversion",
+      ":rtp_receiver",
+      ":rtp_receiver_proxy",
+      ":rtp_sender",
+      ":rtp_sender_proxy",
+      ":rtp_transceiver",
+      ":rtp_transport",
+      ":rtp_transport_internal",
+      ":scoped_operations_batcher",
+      ":session_description",
+      ":simulcast_description",
+      "../api:audio_options_api",
+      "../api:jsep",
+      "../api:make_ref_counted",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_transceiver_direction",
+      "../api:scoped_refptr",
+      "../api/crypto:options",
+      "../api/environment",
+      "../api/video_codecs:scalability_mode",
+      "../api/video_codecs:video_codecs_api",
+      "../media:codec",
+      "../media:media_channel",
+      "../media:rtc_media_config",
+      "../media:rtc_media_tests_utils",
+      "../p2p:p2p_test_utils",
+      "../rtc_base:threading",
+      "../test:create_test_environment",
+      "../test:run_loop",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("scoped_operations_batcher_unittest") {
+    sources = [ "scoped_operations_batcher_unittest.cc" ]
+    deps = [
+      ":scoped_operations_batcher",
+      "../api:rtc_error",
+      "../rtc_base:threading",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/functional:any_invocable",
+    ]
+  }
+
+  rtc_cc_test("sctp_data_channel_unittest") {
+    sources = [ "sctp_data_channel_unittest.cc" ]
+    deps = [
+      ":pc_test_utils",
+      ":sctp_data_channel",
+      ":sctp_utils",
+      "../api:data_channel_interface",
+      "../api:make_ref_counted",
+      "../api:priority",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:scoped_refptr",
+      "../api:sctp_transport_interface",
+      "../api:sequence_checker",
+      "../api/task_queue:pending_task_safety_flag",
+      "../api/transport:datagram_transport_interface",
+      "../rtc_base:checks",
+      "../rtc_base:copy_on_write_buffer",
+      "../rtc_base:null_socket_server",
+      "../rtc_base:ssl_adapter",
+      "../rtc_base:threading",
       "../test:rtc_expect_death",
       "../test:run_loop",
       "../test:test_support",
       "../test:wait_until",
-      "../test/pc/sctp:fake_sctp_transport",
-      "../test/time_controller",
-      "//third_party/abseil-cpp/absl/algorithm:container",
-      "//third_party/abseil-cpp/absl/base:nullability",
-      "//third_party/abseil-cpp/absl/functional:any_invocable",
-      "//third_party/abseil-cpp/absl/memory",
-      "//third_party/abseil-cpp/absl/strings",
-      "//third_party/abseil-cpp/absl/strings:str_format",
-      "//third_party/abseil-cpp/absl/strings:string_view",
-      "//third_party/jsoncpp",
     ]
+  }
 
-    # These deps are kept separately because they can't be automatically
-    # regenerated by gn_check_autofix tool
-    deps += [ ":data_channel_controller_unittest" ]
+  rtc_cc_test("sctp_utils_unittest") {
+    sources = [ "sctp_utils_unittest.cc" ]
+    deps = [
+      ":sctp_utils",
+      "../api:priority",
+      "../media:rtc_data_sctp_transport_internal",
+      "../rtc_base:byte_buffer",
+      "../rtc_base:copy_on_write_buffer",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
 
+  rtc_cc_test("sdp_munging_detector_unittest") {
+    sources = [ "sdp_munging_detector_unittest.cc" ]
+    deps = [
+      ":integration_test_helpers",
+      ":pc_test_utils",
+      ":peer_connection",
+      ":peerconnection_wrapper",
+      ":rtp_transceiver",
+      ":sdp_munging_detector",
+      ":session_description",
+      "../api:candidate",
+      "../api:create_peerconnection_factory",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtc_error_matchers",
+      "../api:rtp_parameters",
+      "../api:rtp_transceiver_direction",
+      "../api:scoped_refptr",
+      "../api:uma_metrics",
+      "../api/audio_codecs:audio_codecs_api",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/video_codecs:video_codecs_api",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:codec",
+      "../media:media_constants",
+      "../media:stream_params",
+      "../p2p:p2p_constants",
+      "../p2p:transport_description",
+      "../rtc_base:rtc_event",
+      "../rtc_base:stringutils",
+      "../rtc_base:threading",
+      "../system_wrappers:metrics",
+      "../test:create_test_field_trials",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+      "//third_party/abseil-cpp/absl/strings",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("sdp_offer_answer_unittest") {
+    sources = [ "sdp_offer_answer_unittest.cc" ]
+    deps = [
+      ":integration_test_helpers",
+      ":pc_test_utils",
+      ":peerconnection_wrapper",
+      ":rtp_transceiver",
+      ":session_description",
+      "../api:create_peerconnection_factory",
+      "../api:jsep",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../api:rtp_parameters",
+      "../api:rtp_transceiver_direction",
+      "../api:rtp_transceiver_interface",
+      "../api:scoped_refptr",
+      "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/video_codecs:video_codecs_api",
+      "../api/video_codecs:video_decoder_factory_template",
+      "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+      "../api/video_codecs:video_encoder_factory_template",
+      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+      "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+      "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+      "../media:codec",
+      "../media:media_constants",
+      "../media:stream_params",
+      "../rtc_base:threading",
+      "../system_wrappers:metrics",
+      "../test:create_test_field_trials",
+      "../test:run_loop",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/strings",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("sdp_payload_type_suggester_unittest") {
+    sources = [ "sdp_payload_type_suggester_unittest.cc" ]
+    deps = [
+      ":sdp_payload_type_suggester",
+      ":session_description",
+      "../api:jsep",
+      "../api:payload_type",
+      "../api:peer_connection_interface",
+      "../api:rtc_error",
+      "../media:codec",
+      "../media:media_constants",
+      "../test:test_support",
+      "//third_party/abseil-cpp/absl/strings:string_view",
+    ]
+  }
+
+  rtc_cc_test("simulcast_sdp_serializer_unittest") {
+    sources = [ "simulcast_sdp_serializer_unittest.cc" ]
+    deps = [
+      ":session_description",
+      ":simulcast_description",
+      ":simulcast_sdp_serializer",
+      "../media:codec",
+      "../media:rid_description",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("fake_audio_capture_module_unittest") {
+    sources = [ "test/fake_audio_capture_module_unittest.cc" ]
+    deps = [
+      ":pc_test_utils",
+      "../api:rtc_error_matchers",
+      "../api:scoped_refptr",
+      "../api/audio:audio_device",
+      "../api/units:time_delta",
+      "../rtc_base/synchronization:mutex",
+      "../test:run_loop",
+      "../test:test_support",
+      "../test:wait_until",
+    ]
+  }
+
+  rtc_cc_test("track_media_info_map_unittest") {
+    sources = [ "track_media_info_map_unittest.cc" ]
+    deps = [
+      ":audio_track",
+      ":pc_test_utils",
+      ":track_media_info_map",
+      ":video_track",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:mock_video_track",
+      "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../media:media_channel",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("video_rtp_track_source_unittest") {
+    sources = [ "video_rtp_track_source_unittest.cc" ]
+    deps = [
+      ":video_rtp_track_source",
+      "../api:make_ref_counted",
+      "../api:scoped_refptr",
+      "../api/units:timestamp",
+      "../api/video:encoded_image",
+      "../api/video:recordable_encoded_frame",
+      "../api/video:video_frame",
+      "../api/video:video_rtp_headers",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_cc_test("video_track_unittest") {
+    sources = [ "video_track_unittest.cc" ]
+    deps = [
+      ":pc_test_utils",
+      ":video_track",
+      "../api:make_ref_counted",
+      "../api:media_stream_interface",
+      "../api:scoped_refptr",
+      "../api/units:time_delta",
+      "../api/units:timestamp",
+      "../media:rtc_media_tests_utils",
+      "../rtc_base:threading",
+      "../test:run_loop",
+      "../test:test_support",
+    ]
+  }
+
+  rtc_test_suite("peerconnection_unittests") {
+    testonly = true
+    tests = [
+      ":dtmf_sender_unittest",
+      ":ice_server_parsing_unittest",
+      ":jitter_buffer_delay_unittest",
+      ":jsep_session_description_unittest",
+      ":legacy_stats_collector_unittest",
+      ":local_audio_source_unittest",
+      ":media_stream_unittest",
+      ":peer_connection_audio_options_unittest",
+      ":peer_connection_bundle_unittest",
+      ":peer_connection_crypto_unittest",
+      ":peer_connection_data_channel_unittest",
+      ":peer_connection_end_to_end_unittest",
+      ":peer_connection_factory_unittest",
+      ":peer_connection_header_extension_unittest",
+      ":peer_connection_histogram_unittest",
+      ":peer_connection_ice_unittest",
+      ":peer_connection_interface_unittest",
+      ":peer_connection_jsep_unittest",
+      ":peer_connection_media_unittest",
+      ":peer_connection_rtp_unittest",
+      ":peer_connection_signaling_unittest",
+      ":peer_connection_simulcast_unittest",
+      ":proxy_unittest",
+      ":rtc_stats_collector_unittest",
+      ":rtc_stats_traversal_unittest",
+      ":rtp_media_utils_unittest",
+      ":rtp_parameters_conversion_unittest",
+      ":rtp_sender_receiver_unittest",
+      ":rtp_transceiver_unittest",
+      ":scoped_operations_batcher_unittest",
+      ":sctp_data_channel_unittest",
+      ":sctp_utils_unittest",
+      ":sdp_munging_detector_unittest",
+      ":sdp_offer_answer_unittest",
+      ":sdp_payload_type_suggester_unittest",
+      ":simulcast_sdp_serializer_unittest",
+      ":fake_audio_capture_module_unittest",
+      ":track_media_info_map_unittest",
+      ":video_rtp_track_source_unittest",
+      ":video_track_unittest",
+      ":data_channel_controller_unittest",
+    ]
     if (is_android) {
-      use_default_launcher = false
-      deps += [
-        ":android_black_magic",
-
-        # We need to depend on this one directly, or classloads will fail for
-        # the voice engine BuildInfo, for instance.
-        "../sdk/android:libjingle_peerconnection_java",
-      ]
       shard_timeout = 900
     }
   }
 
-  rtc_library("data_channel_controller_unittest") {
+  rtc_cc_test("data_channel_controller_unittest") {
     testonly = true
     sources = [ "data_channel_controller_unittest.cc" ]
     deps = [
@@ -2845,11 +3824,11 @@
     ]
   }
 
-  if (is_android) {
-    rtc_library("android_black_magic") {
-      # The android code uses hacky includes to ssl code. Having this in a
-      # separate target enables us to keep the peerconnection unit tests clean.
-      testonly = true
+  rtc_library("android_black_magic") {
+    # The android code uses hacky includes to ssl code. Having this in a
+    # separate target enables us to keep the peerconnection unit tests clean.
+    testonly = true
+    if (is_android) {
       sources = [
         "test/android_test_initializer.cc",
         "test/android_test_initializer.h",