summaryrefslogtreecommitdiffstats
path: root/lldb/unittests/Core/BroadcasterTest.cpp
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2018-12-14 15:59:49 +0000
committerPavel Labath <pavel@labath.sk>2018-12-14 15:59:49 +0000
commit181b823b0478f92ae5fc4e022de18ce082f91bf0 (patch)
treef39c156d89b20ea73c9e9a756d98b91cfbd2446f /lldb/unittests/Core/BroadcasterTest.cpp
parent2ae9783b4fc7a7a716e4a21f85c304632b527b10 (diff)
downloadbcm5719-llvm-181b823b0478f92ae5fc4e022de18ce082f91bf0.tar.gz
bcm5719-llvm-181b823b0478f92ae5fc4e022de18ce082f91bf0.zip
Move Broadcaster+Listener+Event combo from Core into Utility
Summary: These are general purpose "utility" classes, whose functionality is not debugger-specific in any way. As such, I believe they belong in the Utility module. This doesn't break any particular dependency (yet), but it reduces the number of Core dependencies across the board. Reviewers: zturner, jingham, teemperor, clayborg Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D55361 llvm-svn: 349157
Diffstat (limited to 'lldb/unittests/Core/BroadcasterTest.cpp')
-rw-r--r--lldb/unittests/Core/BroadcasterTest.cpp75
1 files changed, 0 insertions, 75 deletions
diff --git a/lldb/unittests/Core/BroadcasterTest.cpp b/lldb/unittests/Core/BroadcasterTest.cpp
deleted file mode 100644
index e59999cc437..00000000000
--- a/lldb/unittests/Core/BroadcasterTest.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//===-- BroadcasterTest.cpp -------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "gtest/gtest.h"
-
-#include "lldb/Core/Broadcaster.h"
-#include "lldb/Core/Event.h"
-#include "lldb/Core/Listener.h"
-#include "lldb/Utility/Predicate.h"
-
-#include <thread>
-
-using namespace lldb;
-using namespace lldb_private;
-
-TEST(BroadcasterTest, BroadcastEvent) {
- EventSP event_sp;
- Broadcaster broadcaster(nullptr, "test-broadcaster");
- std::chrono::seconds timeout(0);
-
- // Create a listener, sign it up, make sure it receives an event.
- ListenerSP listener1_sp = Listener::MakeListener("test-listener1");
- const uint32_t event_mask1 = 1;
- EXPECT_EQ(event_mask1,
- listener1_sp->StartListeningForEvents(&broadcaster, event_mask1));
- broadcaster.BroadcastEvent(event_mask1, nullptr);
- EXPECT_TRUE(listener1_sp->GetEvent(event_sp, timeout));
- EXPECT_EQ(event_mask1, event_sp->GetType());
-
- {
- // Add one more listener, make sure it works as well.
- ListenerSP listener2_sp = Listener::MakeListener("test-listener2");
- const uint32_t event_mask2 = 1;
- EXPECT_EQ(event_mask2, listener2_sp->StartListeningForEvents(
- &broadcaster, event_mask1 | event_mask2));
- broadcaster.BroadcastEvent(event_mask2, nullptr);
- EXPECT_TRUE(listener2_sp->GetEvent(event_sp, timeout));
- EXPECT_EQ(event_mask2, event_sp->GetType());
-
- // Both listeners should get this event.
- broadcaster.BroadcastEvent(event_mask1, nullptr);
- EXPECT_TRUE(listener1_sp->GetEvent(event_sp, timeout));
- EXPECT_EQ(event_mask1, event_sp->GetType());
- EXPECT_TRUE(listener2_sp->GetEvent(event_sp, timeout));
- EXPECT_EQ(event_mask2, event_sp->GetType());
- }
-
- // Now again only one listener should be active.
- broadcaster.BroadcastEvent(event_mask1, nullptr);
- EXPECT_TRUE(listener1_sp->GetEvent(event_sp, timeout));
- EXPECT_EQ(event_mask1, event_sp->GetType());
-}
-
-TEST(BroadcasterTest, EventTypeHasListeners) {
- EventSP event_sp;
- Broadcaster broadcaster(nullptr, "test-broadcaster");
-
- const uint32_t event_mask = 1;
- EXPECT_FALSE(broadcaster.EventTypeHasListeners(event_mask));
-
- {
- ListenerSP listener_sp = Listener::MakeListener("test-listener");
- EXPECT_EQ(event_mask,
- listener_sp->StartListeningForEvents(&broadcaster, event_mask));
- EXPECT_TRUE(broadcaster.EventTypeHasListeners(event_mask));
- }
-
- EXPECT_FALSE(broadcaster.EventTypeHasListeners(event_mask));
-}
OpenPOWER on IntegriCloud