Index: webrtc/call/bitrate_estimator_tests.cc |
diff --git a/webrtc/call/bitrate_estimator_tests.cc b/webrtc/call/bitrate_estimator_tests.cc |
index 3ce96f614ae13d34006526ea15e605d68aa58069..5b07c547449a109de1571c1aecb3d1fbf6bab9a5 100644 |
--- a/webrtc/call/bitrate_estimator_tests.cc |
+++ b/webrtc/call/bitrate_estimator_tests.cc |
@@ -15,6 +15,7 @@ |
#include "webrtc/audio_state.h" |
#include "webrtc/base/checks.h" |
+#include "webrtc/base/logging.h" |
#include "webrtc/base/scoped_ptr.h" |
#include "webrtc/base/thread_annotations.h" |
#include "webrtc/call.h" |
@@ -32,26 +33,12 @@ |
namespace webrtc { |
namespace { |
// Note: If you consider to re-use this class, think twice and instead consider |
-// writing tests that don't depend on the trace system. |
-class TraceObserver { |
+// writing tests that don't depend on the logging system. |
+class LogObserver { |
public: |
- TraceObserver() { |
- Trace::set_level_filter(kTraceTerseInfo); |
+ LogObserver() { rtc::LogMessage::AddLogToStream(&callback_, rtc::LS_INFO); } |
- Trace::CreateTrace(); |
- Trace::SetTraceCallback(&callback_); |
- |
- // Call webrtc trace to initialize the tracer that would otherwise trigger a |
- // data-race if left to be initialized by multiple threads (i.e. threads |
- // spawned by test::DirectTransport members in BitrateEstimatorTest). |
- WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, |
- "Instantiate without data races."); |
- } |
- |
- ~TraceObserver() { |
- Trace::SetTraceCallback(nullptr); |
- Trace::ReturnTrace(); |
- } |
+ ~LogObserver() { rtc::LogMessage::RemoveLogToStream(&callback_); } |
void PushExpectedLogLine(const std::string& expected_log_line) { |
callback_.PushExpectedLogLine(expected_log_line); |
@@ -60,16 +47,20 @@ class TraceObserver { |
EventTypeWrapper Wait() { return callback_.Wait(); } |
private: |
- class Callback : public TraceCallback { |
+ class Callback : public rtc::LogSink { |
public: |
Callback() : done_(EventWrapper::Create()) {} |
- void Print(TraceLevel level, const char* message, int length) override { |
+ void OnLogMessage(const std::string& message) override { |
rtc::CritScope lock(&crit_sect_); |
- std::string msg(message); |
- if (msg.find("BitrateEstimator") != std::string::npos) { |
- received_log_lines_.push_back(msg); |
+ // Ignore log lines that are due to missing AST extensions, these are |
+ // logged when we switch back from AST to TOF until the wrapping bitrate |
+ // estimator gives up on using AST. |
+ if (message.find("BitrateEstimator") != std::string::npos && |
+ message.find("packet is missing") == std::string::npos) { |
+ received_log_lines_.push_back(message); |
} |
+ |
int num_popped = 0; |
while (!received_log_lines_.empty() && !expected_log_lines_.empty()) { |
std::string a = received_log_lines_.front(); |
@@ -77,7 +68,7 @@ class TraceObserver { |
received_log_lines_.pop_front(); |
expected_log_lines_.pop_front(); |
num_popped++; |
- EXPECT_TRUE(a.find(b) != std::string::npos); |
+ EXPECT_TRUE(a.find(b) != std::string::npos) << a << " != " << b; |
} |
if (expected_log_lines_.size() <= 0) { |
if (num_popped > 0) { |
@@ -260,7 +251,7 @@ class BitrateEstimatorTest : public test::CallTest { |
}; |
testing::NiceMock<test::MockVoiceEngine> mock_voice_engine_; |
- TraceObserver receiver_trace_; |
+ LogObserver receiver_log_; |
rtc::scoped_ptr<test::DirectTransport> send_transport_; |
rtc::scoped_ptr<test::DirectTransport> receive_transport_; |
rtc::scoped_ptr<Call> sender_call_; |
@@ -277,87 +268,87 @@ static const char* kSingleStreamLog = |
TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) { |
send_config_.rtp.extensions.push_back( |
RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
streams_.push_back(new Stream(this, false)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
} |
TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForAudio) { |
send_config_.rtp.extensions.push_back( |
RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); |
- receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
+ receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
streams_.push_back(new Stream(this, true)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
} |
TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) { |
send_config_.rtp.extensions.push_back( |
RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); |
- receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
+ receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
streams_.push_back(new Stream(this, false)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
} |
TEST_F(BitrateEstimatorTest, SwitchesToASTForAudio) { |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
streams_.push_back(new Stream(this, true)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
send_config_.rtp.extensions.push_back( |
RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); |
- receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); |
- receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); |
+ receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
+ receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
streams_.push_back(new Stream(this, true)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
} |
TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { |
send_config_.rtp.extensions.push_back( |
RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
streams_.push_back(new Stream(this, false)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
send_config_.rtp.extensions[0] = |
RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); |
- receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); |
- receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); |
+ receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
+ receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
streams_.push_back(new Stream(this, false)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
} |
TEST_F(BitrateEstimatorTest, SwitchesToASTThenBackToTOFForVideo) { |
send_config_.rtp.extensions.push_back( |
RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
streams_.push_back(new Stream(this, false)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
send_config_.rtp.extensions[0] = |
RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); |
- receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); |
- receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); |
+ receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
+ receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
streams_.push_back(new Stream(this, false)); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
send_config_.rtp.extensions[0] = |
RtpExtension(RtpExtension::kTOffset, kTOFExtensionId); |
- receiver_trace_.PushExpectedLogLine( |
+ receiver_log_.PushExpectedLogLine( |
"WrappingBitrateEstimator: Switching to transmission time offset RBE."); |
- receiver_trace_.PushExpectedLogLine(kSingleStreamLog); |
+ receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
streams_.push_back(new Stream(this, false)); |
streams_[0]->StopSending(); |
streams_[1]->StopSending(); |
- EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); |
+ EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); |
} |
} // namespace webrtc |