Fix memory leaks & data races in tests (#4772)
* Add a few pre-made sanitizer suppressions * Test Sanitization: Fix threading issues * Test Sanitization: Allow deletion of PubSub We still don't delete it in main code, but this allows us to try deleting it in tests. * Test Sanitization: Fix some memory leaks * fix gtest clang-tidy warning * const emojis test :-)
This commit is contained in:
+19
-19
@@ -116,33 +116,33 @@ private:
|
||||
TEST(BasicPubSub, SubscriptionCycle)
|
||||
{
|
||||
const QString host("wss://127.0.0.1:9050/liveupdates/sub-unsub");
|
||||
auto *manager = new MyManager(host);
|
||||
manager->start();
|
||||
MyManager manager(host);
|
||||
manager.start();
|
||||
|
||||
std::this_thread::sleep_for(50ms);
|
||||
manager->sub({1, "foo"});
|
||||
manager.sub({1, "foo"});
|
||||
std::this_thread::sleep_for(500ms);
|
||||
|
||||
ASSERT_EQ(manager->diag.connectionsOpened, 1);
|
||||
ASSERT_EQ(manager->diag.connectionsClosed, 0);
|
||||
ASSERT_EQ(manager->diag.connectionsFailed, 0);
|
||||
ASSERT_EQ(manager->messagesReceived, 1);
|
||||
ASSERT_EQ(manager.diag.connectionsOpened, 1);
|
||||
ASSERT_EQ(manager.diag.connectionsClosed, 0);
|
||||
ASSERT_EQ(manager.diag.connectionsFailed, 0);
|
||||
ASSERT_EQ(manager.messagesReceived, 1);
|
||||
|
||||
ASSERT_EQ(manager->popMessage(), QString("ack-sub-1-foo"));
|
||||
ASSERT_EQ(manager.popMessage(), QString("ack-sub-1-foo"));
|
||||
|
||||
manager->unsub({1, "foo"});
|
||||
manager.unsub({1, "foo"});
|
||||
std::this_thread::sleep_for(50ms);
|
||||
|
||||
ASSERT_EQ(manager->diag.connectionsOpened, 1);
|
||||
ASSERT_EQ(manager->diag.connectionsClosed, 0);
|
||||
ASSERT_EQ(manager->diag.connectionsFailed, 0);
|
||||
ASSERT_EQ(manager->messagesReceived, 2);
|
||||
ASSERT_EQ(manager->popMessage(), QString("ack-unsub-1-foo"));
|
||||
ASSERT_EQ(manager.diag.connectionsOpened, 1);
|
||||
ASSERT_EQ(manager.diag.connectionsClosed, 0);
|
||||
ASSERT_EQ(manager.diag.connectionsFailed, 0);
|
||||
ASSERT_EQ(manager.messagesReceived, 2);
|
||||
ASSERT_EQ(manager.popMessage(), QString("ack-unsub-1-foo"));
|
||||
|
||||
manager->stop();
|
||||
manager.stop();
|
||||
|
||||
ASSERT_EQ(manager->diag.connectionsOpened, 1);
|
||||
ASSERT_EQ(manager->diag.connectionsClosed, 1);
|
||||
ASSERT_EQ(manager->diag.connectionsFailed, 0);
|
||||
ASSERT_EQ(manager->messagesReceived, 2);
|
||||
ASSERT_EQ(manager.diag.connectionsOpened, 1);
|
||||
ASSERT_EQ(manager.diag.connectionsClosed, 1);
|
||||
ASSERT_EQ(manager.diag.connectionsFailed, 0);
|
||||
ASSERT_EQ(manager.messagesReceived, 2);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user