From fecbec261bfcfbd3f8f370eb2207eddf8c4c34f0 Mon Sep 17 00:00:00 2001 From: Mirko Bonadei Date: Fri, 9 Dec 2022 11:08:47 +0100 Subject: [PATCH] Add metadata key to export test name in PCLF generated metrics. This metadata key is temporary, as explained in bugs.webrtc.org/14757, this information will be at some point directly accessible via the webrtc.test_metrics.Metric.test_case field. Bug: b/237982523, webrtc:14757 Change-Id: Ie77875a33db5961f8a5572bd1b7066ad8ba17291 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287221 Reviewed-by: Jeremy Leconte Commit-Queue: Mirko Bonadei Cr-Commit-Position: refs/heads/main@{#38858} --- test/pc/e2e/BUILD.gn | 6 +- .../audio/default_audio_quality_analyzer.cc | 5 +- .../video/default_video_quality_analyzer.cc | 14 +- .../video/video_quality_metrics_reporter.cc | 5 +- test/pc/e2e/cross_media_metrics_reporter.cc | 10 +- test/pc/e2e/metric_metadata_keys.cc | 27 ++ test/pc/e2e/metric_metadata_keys.h | 15 + test/pc/e2e/peer_connection_quality_test.cc | 10 +- ...nnection_quality_test_metric_names_test.cc | 355 +++++++++++++----- ..._based_network_quality_metrics_reporter.cc | 10 +- 10 files changed, 355 insertions(+), 102 deletions(-) create mode 100644 test/pc/e2e/metric_metadata_keys.cc diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn index 2b9a69afc5..5a81e12dad 100644 --- a/test/pc/e2e/BUILD.gn +++ b/test/pc/e2e/BUILD.gn @@ -10,7 +10,11 @@ import("../../../webrtc.gni") rtc_library("metric_metadata_keys") { testonly = true - sources = [ "metric_metadata_keys.h" ] + sources = [ + "metric_metadata_keys.cc", + "metric_metadata_keys.h", + ] + deps = [ "../..:test_support" ] } if (!build_with_chromium) { diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc index 189eaca14a..3d49f8faf8 100644 --- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc @@ -131,10 +131,13 @@ void DefaultAudioQualityAnalyzer::Stop() { for (auto& item : streams_stats_) { const TrackIdStreamInfoMap::StreamInfo& stream_info = stream_info_[item.first]; + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map metric_metadata{ {MetricMetadataKey::kAudioStreamMetadataKey, item.first}, {MetricMetadataKey::kPeerMetadataKey, stream_info.receiver_peer}, - {MetricMetadataKey::kReceiverMetadataKey, stream_info.receiver_peer}}; + {MetricMetadataKey::kReceiverMetadataKey, stream_info.receiver_peer}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}; metrics_logger_->LogMetric("expand_rate", GetTestCaseName(item.first), item.second.expand_rate, Unit::kUnitless, diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc index 9ea2ef8aa6..81ed27ba95 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc @@ -936,9 +936,12 @@ void DefaultVideoQualityAnalyzer::ReportResults() { ReportResults(item.first, item.second, stream_frame_counters_.at(item.first)); } - metrics_logger_->LogSingleValueMetric("cpu_usage_%", test_label_, - GetCpuUsagePercent(), Unit::kUnitless, - ImprovementDirection::kSmallerIsBetter); + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. + metrics_logger_->LogSingleValueMetric( + "cpu_usage_%", test_label_, GetCpuUsagePercent(), Unit::kUnitless, + ImprovementDirection::kSmallerIsBetter, + {{MetricMetadataKey::kExperimentalTestNameMetadataKey, + webrtc_pc_e2e::GetCurrentTestName()}}); LogFrameCounters("Global", frame_counters_); if (!unknown_sender_frame_counters_.empty()) { RTC_LOG(LS_INFO) << "Received frame counters with unknown frame id:"; @@ -1030,11 +1033,14 @@ void DefaultVideoQualityAnalyzer::ReportResults( const FrameCounters& frame_counters) { TimeDelta test_duration = Now() - start_time_; std::string test_case_name = GetTestCaseName(ToMetricName(key)); + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map metric_metadata{ {MetricMetadataKey::kPeerMetadataKey, peers_->name(key.sender)}, {MetricMetadataKey::kVideoStreamMetadataKey, streams_.name(key.stream)}, {MetricMetadataKey::kSenderMetadataKey, peers_->name(key.sender)}, - {MetricMetadataKey::kReceiverMetadataKey, peers_->name(key.receiver)}}; + {MetricMetadataKey::kReceiverMetadataKey, peers_->name(key.receiver)}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + webrtc_pc_e2e::GetCurrentTestName()}}; double sum_squared_interframe_delays_secs = 0; Timestamp video_start_time = Timestamp::PlusInfinity(); diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc index 085f1b3cf6..ef14dee2e0 100644 --- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc +++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc @@ -136,8 +136,11 @@ void VideoQualityMetricsReporter::ReportVideoBweResults( const std::string& peer_name, const VideoBweStats& video_bwe_stats) { std::string test_case_name = GetTestCaseName(peer_name); + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map metric_metadata{ - {MetricMetadataKey::kPeerMetadataKey, peer_name}}; + {MetricMetadataKey::kPeerMetadataKey, peer_name}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}; metrics_logger_->LogMetric( "available_send_bandwidth", test_case_name, diff --git a/test/pc/e2e/cross_media_metrics_reporter.cc b/test/pc/e2e/cross_media_metrics_reporter.cc index d09135d182..9f80625123 100644 --- a/test/pc/e2e/cross_media_metrics_reporter.cc +++ b/test/pc/e2e/cross_media_metrics_reporter.cc @@ -114,6 +114,7 @@ void CrossMediaMetricsReporter::StopAndReportResults() { MutexLock lock(&mutex_); for (const auto& pair : stats_info_) { const std::string& sync_group = pair.first; + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map audio_metric_metadata{ {MetricMetadataKey::kPeerSyncGroupMetadataKey, sync_group}, {MetricMetadataKey::kAudioStreamMetadataKey, @@ -121,7 +122,9 @@ void CrossMediaMetricsReporter::StopAndReportResults() { {MetricMetadataKey::kPeerMetadataKey, pair.second.audio_stream_info.receiver_peer}, {MetricMetadataKey::kReceiverMetadataKey, - pair.second.audio_stream_info.receiver_peer}}; + pair.second.audio_stream_info.receiver_peer}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}; metrics_logger_->LogMetric( "audio_ahead_ms", GetTestCaseName(pair.second.audio_stream_info.stream_label, sync_group), @@ -129,6 +132,7 @@ void CrossMediaMetricsReporter::StopAndReportResults() { webrtc::test::ImprovementDirection::kSmallerIsBetter, std::move(audio_metric_metadata)); + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map video_metric_metadata{ {MetricMetadataKey::kPeerSyncGroupMetadataKey, sync_group}, {MetricMetadataKey::kAudioStreamMetadataKey, @@ -136,7 +140,9 @@ void CrossMediaMetricsReporter::StopAndReportResults() { {MetricMetadataKey::kPeerMetadataKey, pair.second.video_stream_info.receiver_peer}, {MetricMetadataKey::kReceiverMetadataKey, - pair.second.video_stream_info.receiver_peer}}; + pair.second.video_stream_info.receiver_peer}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}; metrics_logger_->LogMetric( "video_ahead_ms", GetTestCaseName(pair.second.video_stream_info.stream_label, sync_group), diff --git a/test/pc/e2e/metric_metadata_keys.cc b/test/pc/e2e/metric_metadata_keys.cc new file mode 100644 index 0000000000..cc57491d91 --- /dev/null +++ b/test/pc/e2e/metric_metadata_keys.cc @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2022 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. + */ + +#include "test/pc/e2e/metric_metadata_keys.h" + +#include + +#include "test/gtest.h" + +namespace webrtc { +namespace webrtc_pc_e2e { + +std::string GetCurrentTestName() { + const testing::TestInfo* test_info = + testing::UnitTest::GetInstance()->current_test_info(); + return test_info->name(); +} + +} // namespace webrtc_pc_e2e +} // namespace webrtc diff --git a/test/pc/e2e/metric_metadata_keys.h b/test/pc/e2e/metric_metadata_keys.h index 9a77c31963..d07d4ca0ac 100644 --- a/test/pc/e2e/metric_metadata_keys.h +++ b/test/pc/e2e/metric_metadata_keys.h @@ -10,9 +10,17 @@ #ifndef TEST_PC_E2E_METRIC_METADATA_KEYS_H_ #define TEST_PC_E2E_METRIC_METADATA_KEYS_H_ +#include + namespace webrtc { namespace webrtc_pc_e2e { +// TODO(bugs.webrtc.org/14757): Move this function to a better location once +// kExperimentalTestNameMetadataKey has been removed (this is here just for +// convenience since it is the value of the kExperimentalTestNameMetadataKey +// metadata entries). +std::string GetCurrentTestName(); + // All metadata fields are present only if applicable for particular metric. class MetricMetadataKey { public: @@ -28,6 +36,13 @@ class MetricMetadataKey { static constexpr char kVideoStreamMetadataKey[] = "video_stream"; // Represents name of the sync group to which stream belongs. static constexpr char kPeerSyncGroupMetadataKey[] = "peer_sync_group"; + // Represents the test name (without any peer and stream data appended to it + // as it currently happens with the webrtc.test_metrics.Metric.test_case + // field). This metadata is temporary and it will be removed once this + // information is moved to webrtc.test_metrics.Metric.test_case. + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. + static constexpr char kExperimentalTestNameMetadataKey[] = + "experimental_test_name"; private: MetricMetadataKey() = default; diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc index e6311927f1..cfaab3df6f 100644 --- a/test/pc/e2e/peer_connection_quality_test.cc +++ b/test/pc/e2e/peer_connection_quality_test.cc @@ -741,14 +741,20 @@ void PeerConnectionE2EQualityTest::TearDownCall() { } void PeerConnectionE2EQualityTest::ReportGeneralTestResults() { + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. metrics_logger_->LogSingleValueMetric( *alice_->params().name + "_connected", test_case_name_, alice_connected_, Unit::kUnitless, ImprovementDirection::kBiggerIsBetter, - {{MetricMetadataKey::kPeerMetadataKey, *alice_->params().name}}); + {{MetricMetadataKey::kPeerMetadataKey, *alice_->params().name}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}); + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. metrics_logger_->LogSingleValueMetric( *bob_->params().name + "_connected", test_case_name_, bob_connected_, Unit::kUnitless, ImprovementDirection::kBiggerIsBetter, - {{MetricMetadataKey::kPeerMetadataKey, *bob_->params().name}}); + {{MetricMetadataKey::kPeerMetadataKey, *bob_->params().name}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}); } Timestamp PeerConnectionE2EQualityTest::Now() const { diff --git a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc index c275ecdff6..4f56ae7eb8 100644 --- a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc +++ b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc @@ -157,13 +157,17 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .name = "alice_connected", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kBiggerIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case", .name = "bob_connected", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kBiggerIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, // Metrics from DefaultAudioQualityAnalyzer MetricValidationInfo{ @@ -174,7 +178,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_audio", .name = "accelerate_rate", @@ -183,7 +189,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_audio", .name = "preemptive_rate", @@ -192,7 +200,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_audio", .name = "speech_expand_rate", @@ -201,7 +211,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_audio", .name = "average_jitter_buffer_delay_ms", @@ -210,7 +222,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_audio", .name = "preferred_buffer_size_ms", @@ -219,7 +233,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_audio", .name = "expand_rate", @@ -228,7 +244,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_audio", .name = "accelerate_rate", @@ -237,7 +255,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_audio", .name = "preemptive_rate", @@ -246,7 +266,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_audio", .name = "speech_expand_rate", @@ -255,7 +277,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_audio", .name = "average_jitter_buffer_delay_ms", @@ -264,7 +288,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_audio", .name = "preferred_buffer_size_ms", @@ -273,7 +299,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, // Metrics from DefaultVideoQualityAnalyzer MetricValidationInfo{ @@ -285,7 +313,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "ssim", @@ -295,7 +325,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "transport_time", @@ -305,7 +337,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "total_delay_incl_transport", @@ -315,7 +349,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "time_between_rendered_frames", @@ -325,7 +361,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "harmonic_framerate", @@ -335,7 +373,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "encode_frame_rate", @@ -345,7 +385,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "encode_time", @@ -355,7 +397,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "time_between_freezes", @@ -365,7 +409,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "freeze_time_ms", @@ -375,7 +421,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "pixels_per_frame", @@ -385,7 +433,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "min_psnr_dB", @@ -395,7 +445,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "decode_time", @@ -405,7 +457,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "receive_to_render_time", @@ -415,7 +469,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "dropped_frames", @@ -425,7 +481,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "frames_in_flight", @@ -435,7 +493,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "rendered_frames", @@ -445,7 +505,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "max_skipped", @@ -455,7 +517,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "target_encode_bitrate", @@ -465,7 +529,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "qp", @@ -475,7 +541,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_video", .name = "actual_encode_bitrate", @@ -485,7 +553,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kSenderMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "psnr_dB", @@ -495,7 +565,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "ssim", @@ -505,7 +577,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "transport_time", @@ -515,7 +589,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "total_delay_incl_transport", @@ -525,7 +601,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "time_between_rendered_frames", @@ -535,7 +613,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "harmonic_framerate", @@ -545,7 +625,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "encode_frame_rate", @@ -555,7 +637,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "encode_time", @@ -565,7 +649,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "time_between_freezes", @@ -575,7 +661,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "freeze_time_ms", @@ -585,7 +673,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "pixels_per_frame", @@ -595,7 +685,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "min_psnr_dB", @@ -605,7 +697,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "decode_time", @@ -615,7 +709,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "receive_to_render_time", @@ -625,7 +721,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "dropped_frames", @@ -635,7 +733,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "frames_in_flight", @@ -645,7 +745,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "rendered_frames", @@ -655,7 +757,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "max_skipped", @@ -665,7 +769,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "target_encode_bitrate", @@ -675,7 +781,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "actual_encode_bitrate", @@ -685,7 +793,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_video", .name = "qp", @@ -695,13 +805,16 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kVideoStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kSenderMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case", .name = "cpu_usage_%", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kSmallerIsBetter, - .metadata = {}}, + .metadata = {{MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, // Metrics from StatsBasedNetworkQualityMetricsReporter MetricValidationInfo{ @@ -709,133 +822,177 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .name = "bytes_discarded_no_receiver", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "packets_discarded_no_receiver", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "payload_bytes_received", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "payload_bytes_sent", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "bytes_sent", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "packets_sent", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "average_send_rate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "bytes_received", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "packets_received", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "average_receive_rate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "sent_packets_loss", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "bytes_discarded_no_receiver", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "packets_discarded_no_receiver", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "payload_bytes_received", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "payload_bytes_sent", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "bytes_sent", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "packets_sent", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "average_send_rate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "bytes_received", .unit = Unit::kBytes, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "packets_received", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "average_receive_rate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "sent_packets_loss", .unit = Unit::kUnitless, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, // Metrics from VideoQualityMetricsReporter MetricValidationInfo{ @@ -843,37 +1000,49 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, .name = "available_send_bandwidth", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "transmission_bitrate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice", .name = "retransmission_bitrate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "available_send_bandwidth", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "transmission_bitrate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob", .name = "retransmission_bitrate", .unit = Unit::kKilobitsPerSecond, .improvement_direction = ImprovementDirection::kNeitherIsBetter, - .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}}, + .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, // Metrics from CrossMediaMetricsReporter MetricValidationInfo{ @@ -885,7 +1054,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, {MetricMetadataKey::kPeerSyncGroupMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/alice_alice_video", .name = "video_ahead_ms", @@ -895,7 +1066,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_video"}, {MetricMetadataKey::kPeerMetadataKey, "bob"}, {MetricMetadataKey::kPeerSyncGroupMetadataKey, "alice"}, - {MetricMetadataKey::kReceiverMetadataKey, "bob"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "bob"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_bob_audio", .name = "audio_ahead_ms", @@ -905,7 +1078,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, {MetricMetadataKey::kPeerSyncGroupMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}, + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}}, MetricValidationInfo{ .test_case = "test_case/bob_bob_video", .name = "video_ahead_ms", @@ -915,7 +1090,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest, {MetricMetadataKey::kAudioStreamMetadataKey, "bob_video"}, {MetricMetadataKey::kPeerMetadataKey, "alice"}, {MetricMetadataKey::kPeerSyncGroupMetadataKey, "bob"}, - {MetricMetadataKey::kReceiverMetadataKey, "alice"}}})); + {MetricMetadataKey::kReceiverMetadataKey, "alice"}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}})); } } // namespace diff --git a/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc b/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc index 155c81a5e9..27a15f1c0f 100644 --- a/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc +++ b/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc @@ -370,8 +370,11 @@ void StatsBasedNetworkQualityMetricsReporter::ReportStats( const NetworkLayerStats& network_layer_stats, int64_t packet_loss, const Timestamp& end_time) { + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map metric_metadata{ - {MetricMetadataKey::kPeerMetadataKey, pc_label}}; + {MetricMetadataKey::kPeerMetadataKey, pc_label}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}; metrics_logger_->LogSingleValueMetric( "bytes_discarded_no_receiver", GetTestCaseName(pc_label), network_layer_stats.endpoints_stats.overall_incoming_stats @@ -438,8 +441,11 @@ void StatsBasedNetworkQualityMetricsReporter::LogNetworkLayerStats( stats.endpoints_stats.overall_incoming_stats.packets_received >= 2 ? stats.endpoints_stats.overall_incoming_stats.AverageReceiveRate() : DataRate::Zero(); + // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey. std::map metric_metadata{ - {MetricMetadataKey::kPeerMetadataKey, peer_name}}; + {MetricMetadataKey::kPeerMetadataKey, peer_name}, + {MetricMetadataKey::kExperimentalTestNameMetadataKey, + GetCurrentTestName()}}; rtc::StringBuilder log; log << "Raw network layer statistic for [" << peer_name << "]:\n" << "Local IPs:\n";