Add a new test binary to check if split-channel works

This test (and binary) will be used to verify that the field trial
for enabling split-MediaChannel works in both "off" and "on" modes,
so that it can be run as a field trial. It is intended to be deleted
once the conversion to split-MediaChannel is complete.

Bug: webrtc:13931
Change-Id: If62d19be9b2f205067b86dc859946279442fdd58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/296322
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#39493}
This commit is contained in:
Harald Alvestrand 2023-03-07 07:53:16 +00:00 committed by WebRTC LUCI CQ
parent 2f5efcc3e9
commit ff16f5f88e
7 changed files with 1198 additions and 0 deletions

View File

@ -64,6 +64,7 @@ if (!build_with_chromium) {
"modules/rtp_rtcp:test_packet_masks_metrics",
"modules/video_capture:video_capture_internal_impl",
"net/dcsctp:dcsctp_unittests",
"pc:peer_connection_mediachannel_split_unittests",
"pc:peerconnection_unittests",
"pc:rtc_pc_unittests",
"pc:slow_peer_connection_unittests",

View File

@ -189,6 +189,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -704,6 +727,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -1250,6 +1296,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -1765,6 +1834,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -2590,6 +2682,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -3044,6 +3157,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-20.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -3477,6 +3611,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -3910,6 +4065,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -4364,6 +4540,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -4818,6 +5015,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -5252,6 +5470,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -5687,6 +5926,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -6142,6 +6402,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -6627,6 +6908,28 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cores": "12",
"cpu": "x86-64",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -7081,6 +7384,28 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cores": "12",
"cpu": "x86-64",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -7527,6 +7852,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -7982,6 +8328,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "arm64-64-Apple_M1",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -8444,6 +8811,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -8877,6 +9265,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -9310,6 +9719,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -9743,6 +10173,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {

View File

@ -84,6 +84,10 @@
"label": "//modules:modules_unittests",
"type": "windowed_test_launcher",
},
"peer_connection_mediachannel_split_unittests": {
"label": "//pc:peer_connection_mediachannel_split_unittests",
"type": "console_test_launcher",
},
"peerconnection_unittests": {
"label": "//pc:peerconnection_unittests",
"type": "console_test_launcher",

View File

@ -40,6 +40,7 @@
'modules_unittests': {
'mixins': ['shards-6'],
},
'peer_connection_mediachannel_split_unittests': {},
'peerconnection_unittests': {
'mixins': ['shards-4'],
},
@ -94,6 +95,7 @@
'modules_unittests': {
'mixins': ['shards-6'],
},
'peer_connection_mediachannel_split_unittests': {},
'peerconnection_unittests': {
'mixins': ['shards-4'],
},

View File

@ -189,6 +189,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -731,6 +754,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -1273,6 +1319,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -1843,6 +1912,29 @@
"test": "modules_unittests",
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"android_devices": "1",
"device_type": "walleye",
"os": "Android"
}
],
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
},
"test": "peer_connection_mediachannel_split_unittests",
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"merge": {
"args": [],
@ -5986,6 +6078,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -6453,6 +6566,28 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"isolate_profile_data": true,
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"isolate_profile_data": true,
@ -6972,6 +7107,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -7427,6 +7583,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -7907,6 +8084,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-20.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -8340,6 +8538,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -8843,6 +9062,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -9276,6 +9516,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -9730,6 +9991,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -10184,6 +10466,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -10617,6 +10920,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Ubuntu-18.04"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -11057,6 +11381,28 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cores": "12",
"cpu": "x86-64",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -11512,6 +11858,28 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cores": "12",
"cpu": "x86-64",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -11958,6 +12326,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "arm64-64-Apple_M1",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -12391,6 +12780,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -12873,6 +13283,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "arm64-64-Apple_M1",
"os": "Mac-12"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -13306,6 +13737,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -13743,6 +14195,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -14176,6 +14649,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -14609,6 +15103,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {
@ -15042,6 +15557,27 @@
},
"test_id_prefix": "ninja://modules:modules_unittests/"
},
{
"isolate_name": "peer_connection_mediachannel_split_unittests",
"merge": {
"args": [],
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "peer_connection_mediachannel_split_unittests",
"resultdb": {
"result_format": "json"
},
"swarming": {
"can_use_on_swarming_builders": true,
"dimension_sets": [
{
"cpu": "x86-64",
"os": "Windows-10-19045"
}
]
},
"test_id_prefix": "ninja://pc:peer_connection_mediachannel_split_unittests/"
},
{
"isolate_name": "peerconnection_unittests",
"merge": {

View File

@ -2544,6 +2544,27 @@ if (rtc_include_tests && !build_with_chromium) {
]
}
rtc_test("peer_connection_mediachannel_split_unittests") {
testonly = true
sources = [ "peer_connection_mediachannel_split_unittest.cc" ]
deps = [
":integration_test_helpers",
":session_description",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_error",
"../api:rtc_stats_api",
"../api:scoped_refptr",
"../media:codec",
"../media:media_constants",
"../rtc_base:gunit_helpers",
"../rtc_base:rtc_base_tests_utils",
"../test:test_main",
"../test:test_support",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("data_channel_controller_unittest") {
testonly = true
sources = [ "data_channel_controller_unittest.cc" ]

View File

@ -0,0 +1,183 @@
/*
* Copyright 2012 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
// Integration tests for PeerConnection to exercise the options of
// either splitting or not splitting the MediaChannel object.
// These tests exercise a full stack over a simulated network.
// TODO(bugs.webrtc.org/13931): Delete these tests when split is landed.
#include <string>
#include <vector>
#include "absl/types/optional.h"
#include "api/media_stream_interface.h"
#include "api/peer_connection_interface.h"
#include "api/rtc_error.h"
#include "api/scoped_refptr.h"
#include "api/stats/rtc_stats.h"
#include "api/stats/rtc_stats_report.h"
#include "api/stats/rtcstats_objects.h"
#include "media/base/codec.h"
#include "media/base/media_constants.h"
#include "pc/session_description.h"
#include "pc/test/integration_test_helpers.h"
#include "rtc_base/gunit.h"
#include "rtc_base/virtual_socket_server.h"
#include "test/gtest.h"
namespace webrtc {
namespace {
class PeerConnectionMediaChannelSplitTest
: public PeerConnectionIntegrationBaseTest,
public ::testing::WithParamInterface<std::string> {
protected:
PeerConnectionMediaChannelSplitTest()
: PeerConnectionIntegrationBaseTest(SdpSemantics::kUnifiedPlan,
/* field_trials = */ GetParam()) {}
};
int NacksReceivedCount(PeerConnectionIntegrationWrapper& pc) {
rtc::scoped_refptr<const webrtc::RTCStatsReport> report = pc.NewGetStats();
auto sender_stats = report->GetStatsOfType<RTCOutboundRTPStreamStats>();
if (sender_stats.size() != 1) {
ADD_FAILURE();
return 0;
}
if (!sender_stats[0]->nack_count.is_defined()) {
return 0;
}
return *sender_stats[0]->nack_count;
}
int NacksSentCount(PeerConnectionIntegrationWrapper& pc) {
rtc::scoped_refptr<const webrtc::RTCStatsReport> report = pc.NewGetStats();
auto receiver_stats = report->GetStatsOfType<RTCInboundRTPStreamStats>();
if (receiver_stats.size() != 1) {
ADD_FAILURE();
return 0;
}
if (!receiver_stats[0]->nack_count.is_defined()) {
return 0;
}
return *receiver_stats[0]->nack_count;
}
// Test disabled because it is flaky.
TEST_P(PeerConnectionMediaChannelSplitTest,
DISABLED_AudioPacketLossCausesNack) {
RTCConfiguration config;
ASSERT_TRUE(CreatePeerConnectionWrappersWithConfig(config, config));
ConnectFakeSignaling();
auto audio_transceiver_or_error =
caller()->pc()->AddTransceiver(caller()->CreateLocalAudioTrack());
ASSERT_TRUE(audio_transceiver_or_error.ok());
auto send_transceiver = audio_transceiver_or_error.MoveValue();
// Munge the SDP to include NACK and RRTR on Opus, and remove all other
// codecs.
caller()->SetGeneratedSdpMunger([](cricket::SessionDescription* desc) {
for (ContentInfo& content : desc->contents()) {
cricket::AudioContentDescription* media =
content.media_description()->as_audio();
std::vector<cricket::AudioCodec> codecs = media->codecs();
std::vector<cricket::AudioCodec> codecs_out;
for (cricket::AudioCodec codec : codecs) {
if (codec.name == "opus") {
codec.AddFeedbackParam(cricket::FeedbackParam(
cricket::kRtcpFbParamNack, cricket::kParamValueEmpty));
codec.AddFeedbackParam(cricket::FeedbackParam(
cricket::kRtcpFbParamRrtr, cricket::kParamValueEmpty));
codecs_out.push_back(codec);
}
}
EXPECT_FALSE(codecs_out.empty());
media->set_codecs(codecs_out);
}
});
caller()->CreateAndSetAndSignalOffer();
// Check for failure in helpers
ASSERT_FALSE(HasFailure());
MediaExpectations media_expectations;
media_expectations.CalleeExpectsSomeAudio(1);
ExpectNewFrames(media_expectations);
ASSERT_FALSE(HasFailure());
virtual_socket_server()->set_drop_probability(0.2);
// Wait until callee has sent at least one NACK.
// Note that due to stats caching, this might only be visible 50 ms
// after the nack was in fact sent.
EXPECT_TRUE_WAIT(NacksSentCount(*callee()) > 0, kDefaultTimeout);
ASSERT_FALSE(HasFailure());
virtual_socket_server()->set_drop_probability(0.0);
// Wait until caller has received at least one NACK
EXPECT_TRUE_WAIT(NacksReceivedCount(*caller()) > 0, kDefaultTimeout);
}
TEST_P(PeerConnectionMediaChannelSplitTest, VideoPacketLossCausesNack) {
RTCConfiguration config;
ASSERT_TRUE(CreatePeerConnectionWrappersWithConfig(config, config));
ConnectFakeSignaling();
auto video_transceiver_or_error =
caller()->pc()->AddTransceiver(caller()->CreateLocalVideoTrack());
ASSERT_TRUE(video_transceiver_or_error.ok());
auto send_transceiver = video_transceiver_or_error.MoveValue();
// Munge the SDP to include NACK and RRTR on VP8, and remove all other
// codecs.
caller()->SetGeneratedSdpMunger([](cricket::SessionDescription* desc) {
for (ContentInfo& content : desc->contents()) {
cricket::VideoContentDescription* media =
content.media_description()->as_video();
std::vector<cricket::VideoCodec> codecs = media->codecs();
std::vector<cricket::VideoCodec> codecs_out;
for (cricket::VideoCodec codec : codecs) {
if (codec.name == "VP8") {
ASSERT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)));
codecs_out.push_back(codec);
}
}
EXPECT_FALSE(codecs_out.empty());
media->set_codecs(codecs_out);
}
});
caller()->CreateAndSetAndSignalOffer();
// Check for failure in helpers
ASSERT_FALSE(HasFailure());
MediaExpectations media_expectations;
media_expectations.CalleeExpectsSomeVideo(1);
ExpectNewFrames(media_expectations);
ASSERT_FALSE(HasFailure());
virtual_socket_server()->set_drop_probability(0.2);
// Wait until callee has sent at least one NACK.
// Note that due to stats caching, this might only be visible 50 ms
// after the nack was in fact sent.
EXPECT_TRUE_WAIT(NacksSentCount(*callee()) > 0, kDefaultTimeout);
ASSERT_FALSE(HasFailure());
// Wait until caller has received at least one NACK
EXPECT_TRUE_WAIT(NacksReceivedCount(*caller()) > 0, kDefaultTimeout);
}
INSTANTIATE_TEST_SUITE_P(PeerConnectionMediaChannelSplitTest,
PeerConnectionMediaChannelSplitTest,
Values("WebRTC-SplitMediaChannel/Disabled/",
"WebRTC-SplitMediaChannel/Enabled/"));
} // namespace
} // namespace webrtc