Index: webrtc/pc/rtcstats_integrationtest.cc |
diff --git a/webrtc/pc/rtcstats_integrationtest.cc b/webrtc/pc/rtcstats_integrationtest.cc |
index a2bfb3ee6a8bd12b42285d02bcee0279b458e8ff..edb91d329e4761587bda4a6cc0df071f03ac6bd3 100644 |
--- a/webrtc/pc/rtcstats_integrationtest.cc |
+++ b/webrtc/pc/rtcstats_integrationtest.cc |
@@ -139,6 +139,15 @@ class RTCStatsVerifier { |
} |
template<typename T> |
+ void TestMemberIsUndefinedOrNonNegative( |
+ const RTCStatsMemberInterface& member) { |
+ if (member.is_defined()) |
+ TestMemberIsNonNegative<T>(member); |
+ else |
+ MarkMemberTested(member, true); |
+ } |
+ |
+ template<typename T> |
void TestMemberIsPositive(const RTCStatsMemberInterface& member) { |
EXPECT_TRUE(member.is_defined()) << |
stats_->type() << "." << member.name() << "[" << stats_->id() << |
@@ -384,10 +393,15 @@ class RTCStatsReportVerifier { |
if (is_selected_pair) { |
verifier.TestMemberIsNonNegative<double>( |
candidate_pair.available_outgoing_bitrate); |
+ // TODO(hbos, nisse): It's usually undefined, but have appeared in tests |
+ // on the tsan try-bot. Find out why, possibly something timing related? |
+ // See https://bugs.webrtc.org/7062. |
+ verifier.TestMemberIsUndefinedOrNonNegative<double>( |
+ candidate_pair.available_incoming_bitrate); |
} else { |
verifier.TestMemberIsUndefined(candidate_pair.available_outgoing_bitrate); |
+ verifier.TestMemberIsUndefined(candidate_pair.available_incoming_bitrate); |
} |
- verifier.TestMemberIsUndefined(candidate_pair.available_incoming_bitrate); |
verifier.TestMemberIsNonNegative<uint64_t>( |
candidate_pair.requests_received); |
verifier.TestMemberIsNonNegative<uint64_t>(candidate_pair.requests_sent); |