From: Andrii Grynenko Date: Mon, 10 Apr 2017 17:44:31 +0000 (-0700) Subject: Fix folly/test:singleton_test - Singleton.SharedPtrUsage X-Git-Tag: v2017.04.17.00~47 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff_plain;h=b422f6b54599ddbde6f5f596ec2fbc2171816301 Fix folly/test:singleton_test - Singleton.SharedPtrUsage Reviewed By: yfeldblum Differential Revision: D4856138 fbshipit-source-id: 19eee4f8c4108ef168d82d5e9b1f2d65ff9b03bd --- diff --git a/folly/test/SingletonTest.cpp b/folly/test/SingletonTest.cpp index 782f0398..7ed6f107 100644 --- a/folly/test/SingletonTest.cpp +++ b/folly/test/SingletonTest.cpp @@ -202,7 +202,18 @@ TEST(Singleton, SharedPtrUsage) { auto& vault = *SingletonVault::singleton(); EXPECT_EQ(vault.registeredSingletonCount(), 0); - SingletonSharedPtrUsage watchdog_singleton; + std::vector> watchdog_instances; + SingletonSharedPtrUsage watchdog_singleton( + [&] { + watchdog_instances.push_back(std::make_unique()); + return watchdog_instances.back().get(); + }, + [&](Watchdog* ptr) { + // Make sure that only second instance is destroyed. First instance is + // expected to be leaked. + EXPECT_EQ(watchdog_instances[1].get(), ptr); + watchdog_instances[1].reset(); + }); EXPECT_EQ(vault.registeredSingletonCount(), 1); SingletonSharedPtrUsage child_watchdog_singleton;