|
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.