Skip to content

Commit a2e6a9e

Browse files
Cleanup weird test
1 parent 83c403b commit a2e6a9e

1 file changed

Lines changed: 27 additions & 59 deletions

File tree

src/tests/unit/test_room.cpp

Lines changed: 27 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -91,65 +91,6 @@ class UnitDisconnectTrackingDelegate : public RoomDelegate {
9191

9292
} // namespace
9393

94-
TEST_F(RoomTest, ServerDisconnectTearsDownRoomAndRemovesListener) {
95-
Room room;
96-
UnitDisconnectTrackingDelegate delegate;
97-
std::atomic<int> listener_calls{0};
98-
room.setDelegate(&delegate);
99-
RoomTestAccess::installConnectedListener(room, listener_calls);
100-
101-
proto::FfiEvent event;
102-
auto* room_event = event.mutable_room_event();
103-
room_event->set_room_handle(0);
104-
room_event->mutable_disconnected()->set_reason(proto::ROOM_DELETED);
105-
106-
emitFfiEvent(event);
107-
108-
EXPECT_EQ(listener_calls.load(std::memory_order_relaxed), 1);
109-
EXPECT_EQ(room.connectionState(), ConnectionState::Disconnected);
110-
EXPECT_FALSE(RoomTestAccess::hasRoomHandle(room));
111-
EXPECT_EQ(RoomTestAccess::listenerId(room), 0);
112-
EXPECT_EQ(delegate.count, 1);
113-
EXPECT_EQ(delegate.reason, DisconnectReason::RoomDeleted);
114-
115-
emitFfiEvent(event);
116-
EXPECT_EQ(listener_calls.load(std::memory_order_relaxed), 1) << "server disconnect must unregister the Room listener";
117-
EXPECT_EQ(delegate.count, 1) << "server disconnect must notify the delegate exactly once";
118-
EXPECT_FALSE(room.disconnect()) << "disconnect after server shutdown must be a no-op";
119-
}
120-
121-
TEST_F(RoomTest, ConnectAllowedAfterServerDisconnectShutdown) {
122-
Room room;
123-
UnitDisconnectTrackingDelegate delegate;
124-
std::atomic<int> listener_calls{0};
125-
room.setDelegate(&delegate);
126-
RoomTestAccess::installConnectedListener(room, listener_calls);
127-
128-
proto::FfiEvent event;
129-
auto* room_event = event.mutable_room_event();
130-
room_event->set_room_handle(0);
131-
room_event->mutable_disconnected()->set_reason(proto::ROOM_DELETED);
132-
emitFfiEvent(event);
133-
134-
ASSERT_EQ(room.connectionState(), ConnectionState::Disconnected);
135-
ASSERT_TRUE(RoomTestAccess::shutdownStarted(room));
136-
ASSERT_EQ(delegate.count, 1);
137-
138-
// Room::connect() clears shutdown_started_ before FFI work; mirror that reset and run a
139-
// second synthetic connection cycle to prove the Room is reusable after server shutdown.
140-
RoomTestAccess::clearShutdownForReconnect(room);
141-
EXPECT_FALSE(RoomTestAccess::shutdownStarted(room));
142-
143-
listener_calls.store(0, std::memory_order_relaxed);
144-
RoomTestAccess::installConnectedListener(room, listener_calls);
145-
emitFfiEvent(event);
146-
147-
EXPECT_EQ(listener_calls.load(std::memory_order_relaxed), 1);
148-
EXPECT_EQ(delegate.count, 2) << "second connection cycle should notify onDisconnected again";
149-
EXPECT_EQ(RoomTestAccess::listenerId(room), 0);
150-
EXPECT_TRUE(RoomTestAccess::shutdownStarted(room));
151-
}
152-
15394
TEST_F(RoomTest, ConnectWithoutInitialize) {
15495
// Test fixture initializes by default, do this to emulate lack of initialization
15596
livekit::shutdown();
@@ -396,4 +337,31 @@ TEST_F(RoomTest, RemoteParticipantLookupBeforeConnect) {
396337
<< "Looking up participant before connect should return an empty handle";
397338
}
398339

340+
TEST_F(RoomTest, ServerDisconnectTearsDownRoomAndRemovesListener) {
341+
Room room;
342+
UnitDisconnectTrackingDelegate delegate;
343+
std::atomic<int> listener_calls{0};
344+
room.setDelegate(&delegate);
345+
RoomTestAccess::installConnectedListener(room, listener_calls);
346+
347+
proto::FfiEvent event;
348+
auto* room_event = event.mutable_room_event();
349+
room_event->set_room_handle(0);
350+
room_event->mutable_disconnected()->set_reason(proto::ROOM_DELETED);
351+
352+
emitFfiEvent(event);
353+
354+
EXPECT_EQ(listener_calls.load(std::memory_order_relaxed), 1);
355+
EXPECT_EQ(room.connectionState(), ConnectionState::Disconnected);
356+
EXPECT_FALSE(RoomTestAccess::hasRoomHandle(room));
357+
EXPECT_EQ(RoomTestAccess::listenerId(room), 0);
358+
EXPECT_EQ(delegate.count, 1);
359+
EXPECT_EQ(delegate.reason, DisconnectReason::RoomDeleted);
360+
361+
emitFfiEvent(event);
362+
EXPECT_EQ(listener_calls.load(std::memory_order_relaxed), 1) << "server disconnect must unregister the Room listener";
363+
EXPECT_EQ(delegate.count, 1) << "server disconnect must notify the delegate exactly once";
364+
EXPECT_FALSE(room.disconnect()) << "disconnect after server shutdown must be a no-op";
365+
}
366+
399367
} // namespace livekit::test

0 commit comments

Comments
 (0)