proxygen
|
#include <thread>
#include <boost/thread/barrier.hpp>
#include <glog/logging.h>
#include <folly/Singleton.h>
#include <folly/experimental/io/FsUtil.h>
#include <folly/io/async/EventBase.h>
#include <folly/portability/GMock.h>
#include <folly/portability/GTest.h>
#include <folly/test/SingletonTestStructs.h>
#include <folly/Subprocess.h>
Go to the source code of this file.
Classes | |
struct | BasicUsageTag |
struct | DirectUsageTag |
struct | NamedUsageTag |
struct | NaughtyUsageTag |
struct | NaughtyUsageTag2 |
struct | SharedPtrUsageTag |
struct | NeedyTag |
struct | NeededSingleton |
struct | NeedySingleton |
struct | SelfNeedyTag |
struct | SelfNeedySingleton |
class | Slowpoke |
struct | ConcurrencyTag |
struct | ErrorConstructor |
struct | CreationErrorTag |
struct | ConcurrencyStressTag |
struct | MockTag |
struct | X |
struct | ConcurrentCreationDestructionTag |
struct | SlowpokeNeedySingleton |
struct | MainThreadDestructorTag |
struct | ThreadLoggingSingleton |
Typedefs | |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonBasicUsage = Singleton< T, Tag, BasicUsageTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonDirectUsage = Singleton< T, Tag, DirectUsageTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonNamedUsage = Singleton< T, Tag, NamedUsageTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonNaughtyUsage = Singleton< T, Tag, NaughtyUsageTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonNaughtyUsage2 = Singleton< T, Tag, NaughtyUsageTag2 > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonSharedPtrUsage = Singleton< T, Tag, SharedPtrUsageTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonNeedy = Singleton< T, Tag, NeedyTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonSelfNeedy = Singleton< T, Tag, SelfNeedyTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonConcurrency = Singleton< T, Tag, ConcurrencyTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonCreationError = Singleton< T, Tag, CreationErrorTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonConcurrencyStress = Singleton< T, Tag, ConcurrencyStressTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonEagerInitSync = Singleton< T, Tag, EagerInitSyncTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonEagerInitAsync = Singleton< T, Tag, EagerInitAsyncTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonEagerInitParallel = Singleton< T, Tag, EagerInitParallelTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonMock = Singleton< T, Tag, MockTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonConcurrentCreationDestruction = Singleton< T, Tag, ConcurrentCreationDestructionTag > |
template<typename T , typename Tag = detail::DefaultTag> | |
using | SingletonMainThreadDestructor = Singleton< T, Tag, MainThreadDestructorTag > |
Functions | |
TEST (Singleton, MissingSingleton) | |
TEST (Singleton, BasicUsage) | |
TEST (Singleton, DirectUsage) | |
TEST (Singleton, NamedUsage) | |
TEST (Singleton, NaughtyUsage) | |
TEST (Singleton, SharedPtrUsage) | |
TEST (Singleton, SingletonDependencies) | |
TEST (Singleton, SingletonConcurrency) | |
TEST (Singleton, SingletonCreationError) | |
TEST (Singleton, SingletonConcurrencyStress) | |
TEST (Singleton, SingletonEagerInitSync) | |
TEST (Singleton, SingletonEagerInitAsync) | |
TEST (Singleton, SingletonEagerInitParallel) | |
TEST (Singleton, MockTest) | |
TEST (Singleton, DoubleRegistrationLogging) | |
TEST (Singleton, CustomCreator) | |
TEST (Singleton, ConcurrentCreationDestruction) | |
TEST (Singleton, MainThreadDestructor) | |
TEST (Singleton, DoubleMakeMockAfterTryGet) | |
Variables | |
folly::Singleton< X > | singleton_x ([](){return new X(42,"foo");}) |
folly::Baton | slowpokeNeedySingletonBaton |
using SingletonBasicUsage = Singleton<T, Tag, BasicUsageTag> |
Definition at line 44 of file SingletonTest.cpp.
using SingletonConcurrency = Singleton<T, Tag, ConcurrencyTag> |
Definition at line 365 of file SingletonTest.cpp.
using SingletonConcurrencyStress = Singleton<T, Tag, ConcurrencyStressTag> |
Definition at line 423 of file SingletonTest.cpp.
using SingletonConcurrentCreationDestruction = Singleton<T, Tag, ConcurrentCreationDestructionTag> |
Definition at line 666 of file SingletonTest.cpp.
using SingletonCreationError = Singleton<T, Tag, CreationErrorTag> |
Definition at line 407 of file SingletonTest.cpp.
using SingletonDirectUsage = Singleton<T, Tag, DirectUsageTag> |
Definition at line 88 of file SingletonTest.cpp.
using SingletonEagerInitAsync = Singleton<T, Tag, EagerInitAsyncTag> |
Definition at line 473 of file SingletonTest.cpp.
using SingletonEagerInitParallel = Singleton<T, Tag, EagerInitParallelTag> |
Definition at line 532 of file SingletonTest.cpp.
using SingletonEagerInitSync = Singleton<T, Tag, EagerInitSyncTag> |
Definition at line 453 of file SingletonTest.cpp.
using SingletonMainThreadDestructor = Singleton<T, Tag, MainThreadDestructorTag> |
Definition at line 699 of file SingletonTest.cpp.
using SingletonMock = Singleton<T, Tag, MockTag> |
Definition at line 584 of file SingletonTest.cpp.
using SingletonNamedUsage = Singleton<T, Tag, NamedUsageTag> |
Definition at line 113 of file SingletonTest.cpp.
using SingletonNaughtyUsage = Singleton<T, Tag, NaughtyUsageTag> |
Definition at line 155 of file SingletonTest.cpp.
using SingletonNaughtyUsage2 = Singleton<T, Tag, NaughtyUsageTag2> |
Definition at line 158 of file SingletonTest.cpp.
using SingletonNeedy = Singleton<T, Tag, NeedyTag> |
Definition at line 310 of file SingletonTest.cpp.
using SingletonSelfNeedy = Singleton<T, Tag, SelfNeedyTag> |
Definition at line 323 of file SingletonTest.cpp.
using SingletonSharedPtrUsage = Singleton<T, Tag, SharedPtrUsageTag> |
Definition at line 188 of file SingletonTest.cpp.
TEST | ( | Singleton | , |
MissingSingleton | |||
) |
Definition at line 37 of file SingletonTest.cpp.
TEST | ( | Singleton | , |
BasicUsage | |||
) |
Definition at line 49 of file SingletonTest.cpp.
References EXPECT_EQ, EXPECT_NE, folly::ReadMostlySharedPtr< T, RefCount >::get(), folly::Singleton< T, Tag, VaultTag >::try_get(), and folly::Singleton< T, Tag, VaultTag >::try_get_fast().
TEST | ( | Singleton | , |
DirectUsage | |||
) |
Definition at line 90 of file SingletonTest.cpp.
References EXPECT_EQ, EXPECT_NE, and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
NamedUsage | |||
) |
Definition at line 115 of file SingletonTest.cpp.
References EXPECT_EQ, EXPECT_NE, and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
NaughtyUsage | |||
) |
Definition at line 162 of file SingletonTest.cpp.
TEST | ( | Singleton | , |
SharedPtrUsage | |||
) |
Definition at line 191 of file SingletonTest.cpp.
References EXPECT_EQ, EXPECT_FALSE, EXPECT_NE, EXPECT_TRUE, folly::Singleton< T, Tag, VaultTag >::get_weak(), folly::kIsSanitizeAddress, folly::gen::move, now(), ptr, folly::pushmi::detail::t, and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
SingletonDependencies | |||
) |
Definition at line 332 of file SingletonTest.cpp.
References EXPECT_EQ, and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
SingletonConcurrency | |||
) |
Definition at line 367 of file SingletonTest.cpp.
References EXPECT_EQ, i, mutex, folly::pushmi::detail::t, threads, and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
SingletonCreationError | |||
) |
Definition at line 409 of file SingletonTest.cpp.
References EXPECT_THROW, SUCCEED, and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
SingletonConcurrencyStress | |||
) |
Definition at line 425 of file SingletonTest.cpp.
References i, and folly::pushmi::detail::t.
TEST | ( | Singleton | , |
SingletonEagerInitSync | |||
) |
Definition at line 454 of file SingletonTest.cpp.
References EXPECT_FALSE, EXPECT_TRUE, and string.
TEST | ( | Singleton | , |
SingletonEagerInitAsync | |||
) |
Definition at line 474 of file SingletonTest.cpp.
References add, counter_, EXPECT_FALSE, EXPECT_TRUE, i, folly::EventBase::loop(), folly::gen::move, string, and folly::Baton< MayBlock, Atom >::wait().
TEST | ( | Singleton | , |
SingletonEagerInitParallel | |||
) |
Definition at line 533 of file SingletonTest.cpp.
References exe, EXPECT_EQ, i, SCOPE_EXIT, string, and threads.
TEST | ( | Singleton | , |
MockTest | |||
) |
Definition at line 588 of file SingletonTest.cpp.
References EXPECT_EQ, EXPECT_NE, folly::Singleton< T, Tag, VaultTag >::make_mock(), and folly::Singleton< T, Tag, VaultTag >::try_get().
TEST | ( | Singleton | , |
DoubleRegistrationLogging | |||
) |
Definition at line 623 of file SingletonTest.cpp.
References folly::Subprocess::Options::closeOtherFds(), folly::fs::executable_path(), EXPECT_EQ, EXPECT_THAT, folly::Subprocess::Options::pipeStderr(), testing::StartsWith(), folly::Subprocess::Options::stdinFd(), folly::Subprocess::Options::stdoutFd(), folly::gen::sub(), and gmock_test_utils::Subprocess.
TEST | ( | Singleton | , |
CustomCreator | |||
) |
Definition at line 653 of file SingletonTest.cpp.
References X::a1, X::a2, EXPECT_EQ, EXPECT_NE, singleton_x, and string.
TEST | ( | Singleton | , |
ConcurrentCreationDestruction | |||
) |
Definition at line 681 of file SingletonTest.cpp.
References folly::Singleton< T, Tag, VaultTag >::try_get(), and folly::Baton< MayBlock, Atom >::wait().
TEST | ( | Singleton | , |
MainThreadDestructor | |||
) |
Definition at line 716 of file SingletonTest.cpp.
References ThreadLoggingSingleton::destroyThread, EXPECT_EQ, ThreadLoggingSingleton::initThread, folly::singleton, and folly::pushmi::detail::t.
TEST | ( | Singleton | , |
DoubleMakeMockAfterTryGet | |||
) |
folly::Singleton<X> singleton_x([](){return new X(42,"foo");}) |
Referenced by TEST().
folly::Baton slowpokeNeedySingletonBaton |
Definition at line 668 of file SingletonTest.cpp.