[Lldb-commits] [lldb] r297053 - Update log_options unit test
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Mon Mar 6 11:10:19 PST 2017
Author: labath
Date: Mon Mar 6 13:10:19 2017
New Revision: 297053
URL: http://llvm.org/viewvc/llvm-project?rev=297053&view=rev
Log:
Update log_options unit test
it was accessing the details of the Log class directly. Let it go
through the channel class instead.
This also discovered a bug when we were setting but not clearing the log
options when enabling a channel.
Modified:
lldb/trunk/source/Utility/Log.cpp
lldb/trunk/unittests/Utility/LogTest.cpp
Modified: lldb/trunk/source/Utility/Log.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/Log.cpp?rev=297053&r1=297052&r2=297053&view=diff
==============================================================================
--- lldb/trunk/source/Utility/Log.cpp (original)
+++ lldb/trunk/source/Utility/Log.cpp Mon Mar 6 13:10:19 2017
@@ -89,7 +89,7 @@ void Log::Channel::Enable(Log &log,
uint32_t options, uint32_t flags) {
log.GetMask().Set(flags);
if (log.GetMask().Get()) {
- log.GetOptions().Set(options);
+ log.GetOptions().Reset(options);
log.SetStream(stream_sp);
log_ptr.store(&log, std::memory_order_release);
}
Modified: lldb/trunk/unittests/Utility/LogTest.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Utility/LogTest.cpp?rev=297053&r1=297052&r2=297053&view=diff
==============================================================================
--- lldb/trunk/unittests/Utility/LogTest.cpp (original)
+++ lldb/trunk/unittests/Utility/LogTest.cpp Mon Mar 6 13:10:19 2017
@@ -39,47 +39,11 @@ struct LogChannelTest : public ::testing
}
};
-static std::string GetLogString(uint32_t log_options, const char *format,
- int arg) {
- std::string stream_string;
- std::shared_ptr<llvm::raw_string_ostream> stream_sp(
- new llvm::raw_string_ostream(stream_string));
- Log log_(stream_sp);
- log_.GetOptions().Reset(log_options);
- Log *log = &log_;
- LLDB_LOG(log, format, arg);
- return stream_sp->str();
-}
-
TEST(LogTest, LLDB_LOG_nullptr) {
Log *log = nullptr;
LLDB_LOG(log, "{0}", 0); // Shouldn't crash
}
-TEST(LogTest, log_options) {
- EXPECT_EQ("Hello World 47\n", GetLogString(0, "Hello World {0}", 47));
- EXPECT_EQ("Hello World 47\n",
- GetLogString(LLDB_LOG_OPTION_THREADSAFE, "Hello World {0}", 47));
-
- {
- std::string msg =
- GetLogString(LLDB_LOG_OPTION_PREPEND_SEQUENCE, "Hello World {0}", 47);
- int seq_no;
- EXPECT_EQ(1, sscanf(msg.c_str(), "%d Hello World 47", &seq_no));
- }
-
- EXPECT_EQ(
- "LogTest.cpp:GetLogString Hello "
- "World 47\n",
- GetLogString(LLDB_LOG_OPTION_PREPEND_FILE_FUNCTION, "Hello World {0}", 47));
-
- EXPECT_EQ(llvm::formatv("[{0,0+4}/{1,0+4}] Hello World 47\n", ::getpid(),
- llvm::get_threadid())
- .str(),
- GetLogString(LLDB_LOG_OPTION_PREPEND_PROC_AND_THREAD,
- "Hello World {0}", 47));
-}
-
TEST(LogTest, Register) {
llvm::llvm_shutdown_obj obj;
Log::Register("chan", test_channel);
@@ -187,6 +151,47 @@ TEST_F(LogChannelTest, List) {
EXPECT_EQ("Invalid log channel 'chanchan'.\n", str.GetString().str());
}
+static std::string GetLogString(uint32_t log_options, const char *format,
+ int arg) {
+ std::string message;
+ std::shared_ptr<llvm::raw_string_ostream> stream_sp(
+ new llvm::raw_string_ostream(message));
+ StreamString err;
+ EXPECT_TRUE(Log::EnableLogChannel(stream_sp, log_options, "chan", {}, err));
+
+ Log *log = test_channel.GetLogIfAll(FOO);
+ EXPECT_NE(nullptr, log);
+
+ LLDB_LOG(log, format, arg);
+ EXPECT_TRUE(Log::DisableLogChannel("chan", {}, err));
+
+ return stream_sp->str();
+}
+
+TEST_F(LogChannelTest, log_options) {
+ EXPECT_EQ("Hello World 47\n", GetLogString(0, "Hello World {0}", 47));
+ EXPECT_EQ("Hello World 47\n",
+ GetLogString(LLDB_LOG_OPTION_THREADSAFE, "Hello World {0}", 47));
+
+ {
+ std::string msg =
+ GetLogString(LLDB_LOG_OPTION_PREPEND_SEQUENCE, "Hello World {0}", 47);
+ int seq_no;
+ EXPECT_EQ(1, sscanf(msg.c_str(), "%d Hello World 47", &seq_no));
+ }
+
+ EXPECT_EQ(
+ "LogTest.cpp:GetLogString Hello "
+ "World 47\n",
+ GetLogString(LLDB_LOG_OPTION_PREPEND_FILE_FUNCTION, "Hello World {0}", 47));
+
+ EXPECT_EQ(llvm::formatv("[{0,0+4}/{1,0+4}] Hello World 47\n", ::getpid(),
+ llvm::get_threadid())
+ .str(),
+ GetLogString(LLDB_LOG_OPTION_PREPEND_PROC_AND_THREAD,
+ "Hello World {0}", 47));
+}
+
TEST_F(LogChannelTest, LogThread) {
// Test that we are able to concurrently write to a log channel and disable
// it.
More information about the lldb-commits
mailing list