From f1fa7058b6b8e276d279ef895ffa4e02fadb2d1b Mon Sep 17 00:00:00 2001 From: Christoffer Jansson Date: Tue, 8 Nov 2022 13:56:19 +0100 Subject: [PATCH] Add Fuchsia mixin, disable unsupported absl calls for fuchsia Add a few tests to get started on debugging. The goal of this CL is to get the Fuchsia bots running the tests without infra specific issues. After landing this, failures will be in test framework files (e.g. test/testsupport folder) and WebRTC code. Bug: b/232740856 Change-Id: I332607fe875334769e7dadf6696d878a23a7e69f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280440 Reviewed-by: Andrey Logvin Reviewed-by: Andrey Logvin Reviewed-by: Jeremy Leconte Commit-Queue: Jeremy Leconte Cr-Commit-Position: refs/heads/main@{#38596} --- infra/specs/client.webrtc.json | 340 ++---------------------------- infra/specs/mixins.pyl | 5 + infra/specs/mixins_webrtc.pyl | 5 + infra/specs/test_suites.pyl | 7 + infra/specs/tryserver.webrtc.json | 130 +++++++++++- infra/specs/waterfalls.pyl | 12 +- test/test_main.cc | 3 + 7 files changed, 174 insertions(+), 328 deletions(-) diff --git a/infra/specs/client.webrtc.json b/infra/specs/client.webrtc.json index 93615be55e..e9e9b5622b 100644 --- a/infra/specs/client.webrtc.json +++ b/infra/specs/client.webrtc.json @@ -2692,6 +2692,10 @@ "Fuchsia Release": { "isolated_scripts": [ { + "args": [ + "--", + "--undefok=use-vulkan" + ], "isolate_name": "audio_decoder_unittests", "merge": { "args": [], @@ -2713,6 +2717,10 @@ "test_id_prefix": "ninja://modules/audio_coding:audio_decoder_unittests/" }, { + "args": [ + "--", + "--undefok=use-vulkan" + ], "isolate_name": "common_audio_unittests", "merge": { "args": [], @@ -2734,6 +2742,10 @@ "test_id_prefix": "ninja://common_audio:common_audio_unittests/" }, { + "args": [ + "--", + "--undefok=use-vulkan" + ], "isolate_name": "common_video_unittests", "merge": { "args": [], @@ -2755,6 +2767,10 @@ "test_id_prefix": "ninja://common_video:common_video_unittests/" }, { + "args": [ + "--", + "--undefok=use-vulkan" + ], "isolate_name": "dcsctp_unittests", "merge": { "args": [], @@ -2777,7 +2793,8 @@ }, { "args": [ - "--quick" + "--", + "--undefok=use-vulkan" ], "isolate_name": "low_bandwidth_audio_test", "merge": { @@ -2798,327 +2815,6 @@ ] }, "test_id_prefix": "ninja://audio:low_bandwidth_audio_test/" - }, - { - "isolate_name": "modules_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "modules_tests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ], - "shards": 2 - }, - "test_id_prefix": "ninja://modules:modules_tests/" - }, - { - "isolate_name": "modules_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "modules_unittests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ], - "shards": 6 - }, - "test_id_prefix": "ninja://modules:modules_unittests/" - }, - { - "isolate_name": "peerconnection_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "peerconnection_unittests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ], - "shards": 4 - }, - "test_id_prefix": "ninja://pc:peerconnection_unittests/" - }, - { - "isolate_name": "rtc_media_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "rtc_media_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://media:rtc_media_unittests/" - }, - { - "isolate_name": "rtc_pc_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "rtc_pc_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:rtc_pc_unittests/" - }, - { - "isolate_name": "rtc_stats_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "rtc_stats_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://stats:rtc_stats_unittests/" - }, - { - "isolate_name": "rtc_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "rtc_unittests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ], - "shards": 6 - }, - "test_id_prefix": "ninja://:rtc_unittests/" - }, - { - "isolate_name": "slow_peer_connection_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "slow_peer_connection_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:slow_peer_connection_unittests/" - }, - { - "isolate_name": "svc_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "svc_tests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ], - "shards": 4 - }, - "test_id_prefix": "ninja://pc:svc_tests/" - }, - { - "isolate_name": "system_wrappers_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "system_wrappers_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://system_wrappers:system_wrappers_unittests/" - }, - { - "isolate_name": "test_support_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "test_support_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://test:test_support_unittests/" - }, - { - "isolate_name": "tools_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "tools_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://rtc_tools:tools_unittests/" - }, - { - "isolate_name": "video_engine_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "video_engine_tests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ], - "shards": 4 - }, - "test_id_prefix": "ninja://:video_engine_tests/" - }, - { - "isolate_name": "voip_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "voip_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://:voip_unittests/" - }, - { - "isolate_name": "webrtc_nonparallel_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webrtc_nonparallel_tests", - "resultdb": { - "result_format": "json" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "os": "Ubuntu-18.04" - } - ] - }, - "test_id_prefix": "ninja://:webrtc_nonparallel_tests/" } ] }, diff --git a/infra/specs/mixins.pyl b/infra/specs/mixins.pyl index 49566fff8a..3e3c9b716e 100644 --- a/infra/specs/mixins.pyl +++ b/infra/specs/mixins.pyl @@ -59,6 +59,11 @@ } } }, + 'fuchsia': { + '$mixin_append': { + 'args': ['--', '--undefok=use-vulkan'] + } + }, 'hammerhead': { 'swarming': { 'dimensions': { diff --git a/infra/specs/mixins_webrtc.pyl b/infra/specs/mixins_webrtc.pyl index 1d270f473f..357b94e5ce 100644 --- a/infra/specs/mixins_webrtc.pyl +++ b/infra/specs/mixins_webrtc.pyl @@ -184,6 +184,11 @@ } } }, + 'fuchsia': { + '$mixin_append': { + 'args': ['--', '--undefok=use-vulkan'] + } + }, 'resultdb-gtest-json-format': { '$mixin_append': { 'args': [ diff --git a/infra/specs/test_suites.pyl b/infra/specs/test_suites.pyl index 88de021205..06338d3f32 100644 --- a/infra/specs/test_suites.pyl +++ b/infra/specs/test_suites.pyl @@ -116,6 +116,13 @@ 'voip_unittests': {}, 'webrtc_nonparallel_tests': {}, }, + 'fuchsia_compatible_tests': { + 'audio_decoder_unittests': {}, + 'common_audio_unittests': {}, + 'common_video_unittests': {}, + 'dcsctp_unittests': {}, + 'low_bandwidth_audio_test': {}, + }, 'ios_device_tests': { # TODO(bugs.webrtc.org/11362): Real XCTests fail to start on devices. #'apprtcmobile_tests': {'mixins': ['xcodebuild-device-runner']}, diff --git a/infra/specs/tryserver.webrtc.json b/infra/specs/tryserver.webrtc.json index a5dc5aebf5..302c94cfcd 100644 --- a/infra/specs/tryserver.webrtc.json +++ b/infra/specs/tryserver.webrtc.json @@ -2828,7 +2828,135 @@ "android_compile_x64_rel": {}, "android_compile_x86_dbg": {}, "android_compile_x86_rel": {}, - "fuchsia_rel": {}, + "fuchsia_rel": { + "isolated_scripts": [ + { + "args": [ + "--", + "--undefok=use-vulkan" + ], + "isolate_name": "audio_decoder_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "audio_decoder_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://modules/audio_coding:audio_decoder_unittests/" + }, + { + "args": [ + "--", + "--undefok=use-vulkan" + ], + "isolate_name": "common_audio_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_audio_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://common_audio:common_audio_unittests/" + }, + { + "args": [ + "--", + "--undefok=use-vulkan" + ], + "isolate_name": "common_video_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_video_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://common_video:common_video_unittests/" + }, + { + "args": [ + "--", + "--undefok=use-vulkan" + ], + "isolate_name": "dcsctp_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "dcsctp_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://net/dcsctp:dcsctp_unittests/" + }, + { + "args": [ + "--", + "--undefok=use-vulkan" + ], + "isolate_name": "low_bandwidth_audio_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "low_bandwidth_audio_test", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://audio:low_bandwidth_audio_test/" + } + ] + }, "ios_compile_arm64_dbg": {}, "ios_compile_arm64_rel": {}, "ios_sim_x64_dbg_ios12": { diff --git a/infra/specs/waterfalls.pyl b/infra/specs/waterfalls.pyl index 1a9257e0b8..2dcaac9262 100644 --- a/infra/specs/waterfalls.pyl +++ b/infra/specs/waterfalls.pyl @@ -67,9 +67,10 @@ 'Android64 Builder x64 (dbg)': {}, 'Fuchsia Release': { 'os_type': 'linux', - 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], + 'mixins': + ['linux-bionic', 'x86-64', 'resultdb-json-format', 'fuchsia'], 'test_suites': { - 'isolated_scripts': 'desktop_tests', + 'isolated_scripts': 'fuchsia_compatible_tests', }, }, 'Linux (more configs)': { @@ -458,9 +459,10 @@ 'android_compile_x86_rel': {}, 'fuchsia_rel': { 'os_type': 'linux', - 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], - 'test_suties': { - 'isolateds_scripts': 'desktop_tests', + 'mixins': + ['linux-bionic', 'x86-64', 'resultdb-json-format', 'fuchsia'], + 'test_suites': { + 'isolated_scripts': 'fuchsia_compatible_tests', }, }, 'ios_compile_arm64_dbg': {}, diff --git a/test/test_main.cc b/test/test_main.cc index f919c4bba7..27c3d8c134 100644 --- a/test/test_main.cc +++ b/test/test_main.cc @@ -22,8 +22,11 @@ int main(int argc, char* argv[]) { testing::InitGoogleMock(&argc, argv); absl::ParseCommandLine(argc, argv); +// This absl handler use unsupported features/instructions on Fuchsia +#if !defined(WEBRTC_FUCHSIA) absl::FailureSignalHandlerOptions options; absl::InstallFailureSignalHandler(options); +#endif std::unique_ptr main = webrtc::TestMain::Create(); int err_code = main->Init();