Author: labath Date: Mon Feb 27 05:05:39 2017 New Revision: 296329 URL: http://llvm.org/viewvc/llvm-project?rev=296329&view=rev Log: Log: Fix a regression in handling log options
The channel refactor introduced a regression where we were not honoring the log options passed when enabling the channel. Fix that and add a test. Modified: lldb/trunk/include/lldb/Core/Log.h lldb/trunk/source/Core/Log.cpp lldb/trunk/unittests/Core/LogTest.cpp Modified: lldb/trunk/include/lldb/Core/Log.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Log.h?rev=296329&r1=296328&r2=296329&view=diff ============================================================================== --- lldb/trunk/include/lldb/Core/Log.h (original) +++ lldb/trunk/include/lldb/Core/Log.h Mon Feb 27 05:05:39 2017 @@ -86,7 +86,7 @@ public: // Calls to Enable and disable need to be serialized externally. void Enable(Log &log, const std::shared_ptr<llvm::raw_ostream> &stream_sp, - uint32_t flags); + uint32_t options, uint32_t flags); // Calls to Enable and disable need to be serialized externally. void Disable(uint32_t flags); Modified: lldb/trunk/source/Core/Log.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Log.cpp?rev=296329&r1=296328&r2=296329&view=diff ============================================================================== --- lldb/trunk/source/Core/Log.cpp (original) +++ lldb/trunk/source/Core/Log.cpp Mon Feb 27 05:05:39 2017 @@ -89,9 +89,10 @@ static uint32_t GetFlags(Stream &stream, void Log::Channel::Enable(Log &log, const std::shared_ptr<llvm::raw_ostream> &stream_sp, - uint32_t flags) { + uint32_t options, uint32_t flags) { log.GetMask().Set(flags); if (log.GetMask().Get()) { + log.GetOptions().Set(options); log.SetStream(stream_sp); log_ptr.store(&log, std::memory_order_release); } @@ -283,7 +284,8 @@ bool Log::EnableLogChannel( uint32_t flags = categories && categories[0] ? GetFlags(error_stream, *iter, categories) : iter->second.channel.default_flags; - iter->second.channel.Enable(iter->second.log, log_stream_sp, flags); + iter->second.channel.Enable(iter->second.log, log_stream_sp, log_options, + flags); return true; } Modified: lldb/trunk/unittests/Core/LogTest.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Core/LogTest.cpp?rev=296329&r1=296328&r2=296329&view=diff ============================================================================== --- lldb/trunk/unittests/Core/LogTest.cpp (original) +++ lldb/trunk/unittests/Core/LogTest.cpp Mon Feb 27 05:05:39 2017 @@ -130,6 +130,20 @@ TEST_F(LogChannelTest, Enable) { EXPECT_NE(nullptr, test_channel.GetLogIfAll(FOO | BAR)); } +TEST_F(LogChannelTest, EnableOptions) { + EXPECT_EQ(nullptr, test_channel.GetLogIfAll(FOO)); + 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, LLDB_LOG_OPTION_VERBOSE, "chan", + nullptr, err)); + + Log *log = test_channel.GetLogIfAll(FOO); + ASSERT_NE(nullptr, log); + EXPECT_TRUE(log->GetVerbose()); +} + TEST_F(LogChannelTest, Disable) { EXPECT_EQ(nullptr, test_channel.GetLogIfAll(FOO)); const char *cat12[] = {"foo", "bar", nullptr}; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits