|
|
|
@ -192,8 +192,6 @@ |
|
|
|
|
// GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning.
|
|
|
|
|
// GTEST_ATTRIBUTE_UNUSED_ - declares that a class' instances or a
|
|
|
|
|
// variable don't have to be used.
|
|
|
|
|
// GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=.
|
|
|
|
|
// GTEST_DISALLOW_MOVE_AND_ASSIGN_ - disables move ctor and operator=.
|
|
|
|
|
// GTEST_MUST_USE_RESULT_ - declares that a function's result must be used.
|
|
|
|
|
// GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is
|
|
|
|
|
// suppressed (constant conditional).
|
|
|
|
@ -689,20 +687,6 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; |
|
|
|
|
#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// A macro to disallow copy constructor and operator=
|
|
|
|
|
// This should be used in the private: declarations for a class.
|
|
|
|
|
// NOLINT is for modernize-use-trailing-return-type in macro uses.
|
|
|
|
|
#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \ |
|
|
|
|
type(type const&) = delete; \
|
|
|
|
|
type& operator=(type const&) = delete /* NOLINT */ |
|
|
|
|
|
|
|
|
|
// A macro to disallow move constructor and operator=
|
|
|
|
|
// This should be used in the private: declarations for a class.
|
|
|
|
|
// NOLINT is for modernize-use-trailing-return-type in macro uses.
|
|
|
|
|
#define GTEST_DISALLOW_MOVE_AND_ASSIGN_(type) \ |
|
|
|
|
type(type&&) noexcept = delete; \
|
|
|
|
|
type& operator=(type&&) noexcept = delete /* NOLINT */ |
|
|
|
|
|
|
|
|
|
// Tell the compiler to warn about unused return values for functions declared
|
|
|
|
|
// with this macro. The macro should be used on function declarations
|
|
|
|
|
// following the argument list:
|
|
|
|
@ -971,7 +955,8 @@ class GTEST_API_ GTestLog { |
|
|
|
|
private: |
|
|
|
|
const GTestLogSeverity severity_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog); |
|
|
|
|
GTestLog(const GTestLog&) = delete; |
|
|
|
|
GTestLog& operator=(const GTestLog&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#if !defined(GTEST_LOG_) |
|
|
|
@ -1191,7 +1176,8 @@ class GTEST_API_ AutoHandle { |
|
|
|
|
|
|
|
|
|
Handle handle_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(AutoHandle); |
|
|
|
|
AutoHandle(const AutoHandle&) = delete; |
|
|
|
|
AutoHandle& operator=(const AutoHandle&) = delete; |
|
|
|
|
}; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
@ -1314,7 +1300,8 @@ class ThreadWithParam : public ThreadWithParamBase { |
|
|
|
|
// finished.
|
|
|
|
|
pthread_t thread_; // The native thread object.
|
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); |
|
|
|
|
ThreadWithParam(const ThreadWithParam&) = delete; |
|
|
|
|
ThreadWithParam& operator=(const ThreadWithParam&) = delete; |
|
|
|
|
}; |
|
|
|
|
#endif // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
|
|
|
|
|
// GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
|
|
|
|
@ -1377,7 +1364,8 @@ class GTEST_API_ Mutex { |
|
|
|
|
long critical_section_init_phase_; // NOLINT
|
|
|
|
|
GTEST_CRITICAL_SECTION* critical_section_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); |
|
|
|
|
Mutex(const Mutex&) = delete; |
|
|
|
|
Mutex& operator=(const Mutex&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ |
|
|
|
@ -1400,7 +1388,8 @@ class GTestMutexLock { |
|
|
|
|
private: |
|
|
|
|
Mutex* const mutex_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); |
|
|
|
|
GTestMutexLock(const GTestMutexLock&) = delete; |
|
|
|
|
GTestMutexLock& operator=(const GTestMutexLock&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
typedef GTestMutexLock MutexLock; |
|
|
|
@ -1427,7 +1416,8 @@ class ThreadLocalBase { |
|
|
|
|
virtual ~ThreadLocalBase() {} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocalBase); |
|
|
|
|
ThreadLocalBase(const ThreadLocalBase&) = delete; |
|
|
|
|
ThreadLocalBase& operator=(const ThreadLocalBase&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Maps a thread to a set of ThreadLocals that have values instantiated on that
|
|
|
|
@ -1484,10 +1474,12 @@ class ThreadWithParam : public ThreadWithParamBase { |
|
|
|
|
UserThreadFunc* const func_; |
|
|
|
|
const T param_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(RunnableImpl); |
|
|
|
|
RunnableImpl(const RunnableImpl&) = delete; |
|
|
|
|
RunnableImpl& operator=(const RunnableImpl&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); |
|
|
|
|
ThreadWithParam(const ThreadWithParam&) = delete; |
|
|
|
|
ThreadWithParam& operator=(const ThreadWithParam&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Implements thread-local storage on Windows systems.
|
|
|
|
@ -1543,7 +1535,8 @@ class ThreadLocal : public ThreadLocalBase { |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
T value_; |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); |
|
|
|
|
ValueHolder(const ValueHolder&) = delete; |
|
|
|
|
ValueHolder& operator=(const ValueHolder&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
T* GetOrCreateValue() const { |
|
|
|
@ -1563,7 +1556,8 @@ class ThreadLocal : public ThreadLocalBase { |
|
|
|
|
virtual ValueHolder* MakeNewHolder() const = 0; |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory); |
|
|
|
|
ValueHolderFactory(const ValueHolderFactory&) = delete; |
|
|
|
|
ValueHolderFactory& operator=(const ValueHolderFactory&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class DefaultValueHolderFactory : public ValueHolderFactory { |
|
|
|
@ -1572,7 +1566,9 @@ class ThreadLocal : public ThreadLocalBase { |
|
|
|
|
ValueHolder* MakeNewHolder() const override { return new ValueHolder(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory); |
|
|
|
|
DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete; |
|
|
|
|
DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) = |
|
|
|
|
delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class InstanceValueHolderFactory : public ValueHolderFactory { |
|
|
|
@ -1585,12 +1581,15 @@ class ThreadLocal : public ThreadLocalBase { |
|
|
|
|
private: |
|
|
|
|
const T value_; // The value for each thread.
|
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory); |
|
|
|
|
InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete; |
|
|
|
|
InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) = |
|
|
|
|
delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
std::unique_ptr<ValueHolderFactory> default_factory_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); |
|
|
|
|
ThreadLocal(const ThreadLocal&) = delete; |
|
|
|
|
ThreadLocal& operator=(const ThreadLocal&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#elif GTEST_HAS_PTHREAD |
|
|
|
@ -1663,7 +1662,8 @@ class Mutex : public MutexBase { |
|
|
|
|
~Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); |
|
|
|
|
Mutex(const Mutex&) = delete; |
|
|
|
|
Mutex& operator=(const Mutex&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// We cannot name this class MutexLock because the ctor declaration would
|
|
|
|
@ -1680,7 +1680,8 @@ class GTestMutexLock { |
|
|
|
|
private: |
|
|
|
|
MutexBase* const mutex_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); |
|
|
|
|
GTestMutexLock(const GTestMutexLock&) = delete; |
|
|
|
|
GTestMutexLock& operator=(const GTestMutexLock&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
typedef GTestMutexLock MutexLock; |
|
|
|
@ -1737,7 +1738,8 @@ class GTEST_API_ ThreadLocal { |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
T value_; |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); |
|
|
|
|
ValueHolder(const ValueHolder&) = delete; |
|
|
|
|
ValueHolder& operator=(const ValueHolder&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static pthread_key_t CreateKey() { |
|
|
|
@ -1769,7 +1771,8 @@ class GTEST_API_ ThreadLocal { |
|
|
|
|
virtual ValueHolder* MakeNewHolder() const = 0; |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory); |
|
|
|
|
ValueHolderFactory(const ValueHolderFactory&) = delete; |
|
|
|
|
ValueHolderFactory& operator=(const ValueHolderFactory&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class DefaultValueHolderFactory : public ValueHolderFactory { |
|
|
|
@ -1778,7 +1781,9 @@ class GTEST_API_ ThreadLocal { |
|
|
|
|
ValueHolder* MakeNewHolder() const override { return new ValueHolder(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory); |
|
|
|
|
DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete; |
|
|
|
|
DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) = |
|
|
|
|
delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class InstanceValueHolderFactory : public ValueHolderFactory { |
|
|
|
@ -1791,14 +1796,17 @@ class GTEST_API_ ThreadLocal { |
|
|
|
|
private: |
|
|
|
|
const T value_; // The value for each thread.
|
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory); |
|
|
|
|
InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete; |
|
|
|
|
InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) = |
|
|
|
|
delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// A key pthreads uses for looking up per-thread values.
|
|
|
|
|
const pthread_key_t key_; |
|
|
|
|
std::unique_ptr<ValueHolderFactory> default_factory_; |
|
|
|
|
|
|
|
|
|
GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); |
|
|
|
|
ThreadLocal(const ThreadLocal&) = delete; |
|
|
|
|
ThreadLocal& operator=(const ThreadLocal&) = delete; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#endif // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
|
|
|
|
|