Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(531)

Unified Diff: webrtc/base/logging_unittest.cc

Issue 2877023002: Move webrtc/{base => rtc_base} (Closed)
Patch Set: update presubmit.py and DEPS include rules Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/logging_mac.mm ('k') | webrtc/base/logsinks.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/logging_unittest.cc
diff --git a/webrtc/base/logging_unittest.cc b/webrtc/base/logging_unittest.cc
deleted file mode 100644
index 3d9fc9ee5b1a3b8e9263df32051d583934228577..0000000000000000000000000000000000000000
--- a/webrtc/base/logging_unittest.cc
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2004 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 "webrtc/base/fileutils.h"
-#include "webrtc/base/gunit.h"
-#include "webrtc/base/logging.h"
-#include "webrtc/base/pathutils.h"
-#include "webrtc/base/stream.h"
-#include "webrtc/base/thread.h"
-
-namespace rtc {
-
-template <typename Base>
-class LogSinkImpl
- : public LogSink,
- public Base {
- public:
- LogSinkImpl() {}
-
- template<typename P>
- explicit LogSinkImpl(P* p) : Base(p) {}
-
- private:
- void OnLogMessage(const std::string& message) override {
- static_cast<Base*>(this)->WriteAll(
- message.data(), message.size(), nullptr, nullptr);
- }
-};
-
-// Test basic logging operation. We should get the INFO log but not the VERBOSE.
-// We should restore the correct global state at the end.
-TEST(LogTest, SingleStream) {
- int sev = LogMessage::GetLogToStream(nullptr);
-
- std::string str;
- LogSinkImpl<StringStream> stream(&str);
- LogMessage::AddLogToStream(&stream, LS_INFO);
- EXPECT_EQ(LS_INFO, LogMessage::GetLogToStream(&stream));
-
- LOG(LS_INFO) << "INFO";
- LOG(LS_VERBOSE) << "VERBOSE";
- EXPECT_NE(std::string::npos, str.find("INFO"));
- EXPECT_EQ(std::string::npos, str.find("VERBOSE"));
-
- LogMessage::RemoveLogToStream(&stream);
- EXPECT_EQ(LS_NONE, LogMessage::GetLogToStream(&stream));
-
- EXPECT_EQ(sev, LogMessage::GetLogToStream(nullptr));
-}
-
-// Test using multiple log streams. The INFO stream should get the INFO message,
-// the VERBOSE stream should get the INFO and the VERBOSE.
-// We should restore the correct global state at the end.
-TEST(LogTest, MultipleStreams) {
- int sev = LogMessage::GetLogToStream(nullptr);
-
- std::string str1, str2;
- LogSinkImpl<StringStream> stream1(&str1), stream2(&str2);
- LogMessage::AddLogToStream(&stream1, LS_INFO);
- LogMessage::AddLogToStream(&stream2, LS_VERBOSE);
- EXPECT_EQ(LS_INFO, LogMessage::GetLogToStream(&stream1));
- EXPECT_EQ(LS_VERBOSE, LogMessage::GetLogToStream(&stream2));
-
- LOG(LS_INFO) << "INFO";
- LOG(LS_VERBOSE) << "VERBOSE";
-
- EXPECT_NE(std::string::npos, str1.find("INFO"));
- EXPECT_EQ(std::string::npos, str1.find("VERBOSE"));
- EXPECT_NE(std::string::npos, str2.find("INFO"));
- EXPECT_NE(std::string::npos, str2.find("VERBOSE"));
-
- LogMessage::RemoveLogToStream(&stream2);
- LogMessage::RemoveLogToStream(&stream1);
- EXPECT_EQ(LS_NONE, LogMessage::GetLogToStream(&stream2));
- EXPECT_EQ(LS_NONE, LogMessage::GetLogToStream(&stream1));
-
- EXPECT_EQ(sev, LogMessage::GetLogToStream(nullptr));
-}
-
-// Ensure we don't crash when adding/removing streams while threads are going.
-// We should restore the correct global state at the end.
-class LogThread : public Thread {
- public:
- ~LogThread() override {
- Stop();
- }
-
- private:
- void Run() override {
- // LS_SENSITIVE to avoid cluttering up any real logging going on
- LOG(LS_SENSITIVE) << "LOG";
- }
-};
-
-TEST(LogTest, MultipleThreads) {
- int sev = LogMessage::GetLogToStream(nullptr);
-
- LogThread thread1, thread2, thread3;
- thread1.Start();
- thread2.Start();
- thread3.Start();
-
- LogSinkImpl<NullStream> stream1, stream2, stream3;
- for (int i = 0; i < 1000; ++i) {
- LogMessage::AddLogToStream(&stream1, LS_INFO);
- LogMessage::AddLogToStream(&stream2, LS_VERBOSE);
- LogMessage::AddLogToStream(&stream3, LS_SENSITIVE);
- LogMessage::RemoveLogToStream(&stream1);
- LogMessage::RemoveLogToStream(&stream2);
- LogMessage::RemoveLogToStream(&stream3);
- }
-
- EXPECT_EQ(sev, LogMessage::GetLogToStream(nullptr));
-}
-
-
-TEST(LogTest, WallClockStartTime) {
- uint32_t time = LogMessage::WallClockStartTime();
- // Expect the time to be in a sensible range, e.g. > 2012-01-01.
- EXPECT_GT(time, 1325376000u);
-}
-
-// Test the time required to write 1000 80-character logs to an unbuffered file.
-#if defined (WEBRTC_ANDROID)
-// Fails on Android: https://bugs.chromium.org/p/webrtc/issues/detail?id=4364.
-#define MAYBE_Perf DISABLED_Perf
-#else
-#define MAYBE_Perf Perf
-#endif
-
-TEST(LogTest, MAYBE_Perf) {
- Pathname path;
- EXPECT_TRUE(Filesystem::GetTemporaryFolder(path, true, nullptr));
- path.SetPathname(Filesystem::TempFilename(path, "ut"));
-
- LogSinkImpl<FileStream> stream;
- EXPECT_TRUE(stream.Open(path.pathname(), "wb", nullptr));
- stream.DisableBuffering();
- LogMessage::AddLogToStream(&stream, LS_SENSITIVE);
-
- int64_t start = TimeMillis(), finish;
- std::string message('X', 80);
- for (int i = 0; i < 1000; ++i) {
- LOG(LS_SENSITIVE) << message;
- }
- finish = TimeMillis();
-
- LogMessage::RemoveLogToStream(&stream);
- stream.Close();
- Filesystem::DeleteFile(path);
-
- LOG(LS_INFO) << "Average log time: " << TimeDiff(finish, start) << " ms";
-}
-
-} // namespace rtc
« no previous file with comments | « webrtc/base/logging_mac.mm ('k') | webrtc/base/logsinks.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698