Create custom/gtest-port.h to hold custom logic.
This commit is contained in:
		
							
								
								
									
										62
									
								
								include/gtest/internal/custom/gtest-port.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								include/gtest/internal/custom/gtest-port.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
// Copyright 2015, Google Inc.
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions are
 | 
			
		||||
// met:
 | 
			
		||||
//
 | 
			
		||||
//     * Redistributions of source code must retain the above copyright
 | 
			
		||||
// notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//     * Redistributions in binary form must reproduce the above
 | 
			
		||||
// copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
// in the documentation and/or other materials provided with the
 | 
			
		||||
// distribution.
 | 
			
		||||
//     * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
// contributors may be used to endorse or promote products derived from
 | 
			
		||||
// this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
//
 | 
			
		||||
// Injection point for custom user configurations.
 | 
			
		||||
// The following macros can be defined:
 | 
			
		||||
//
 | 
			
		||||
//   Flag related macros:
 | 
			
		||||
//     GTEST_FLAG(flag_name)
 | 
			
		||||
//     GTEST_DECLARE_bool_(name)
 | 
			
		||||
//     GTEST_DECLARE_int32_(name)
 | 
			
		||||
//     GTEST_DECLARE_string_(name)
 | 
			
		||||
//     GTEST_DEFINE_bool_(name, default_val, doc)
 | 
			
		||||
//     GTEST_DEFINE_int32_(name, default_val, doc)
 | 
			
		||||
//     GTEST_DEFINE_string_(name, default_val, doc)
 | 
			
		||||
//
 | 
			
		||||
//   Logging:
 | 
			
		||||
//     GTEST_LOG_(severity)
 | 
			
		||||
//     GTEST_CHECK_(condition)
 | 
			
		||||
//     Functions LogToStderr() and FlushInfoLog() have to be provided too.
 | 
			
		||||
//
 | 
			
		||||
//   Threading:
 | 
			
		||||
//     GTEST_HAS_NOTIFICATION_ - Enabled if Notification is already provided.
 | 
			
		||||
//     GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Enabled if Mutex and ThreadLocal are
 | 
			
		||||
//                                         already provided.
 | 
			
		||||
//     Must also provide GTEST_DECLARE_STATIC_MUTEX_(mutex) and
 | 
			
		||||
//     GTEST_DEFINE_STATIC_MUTEX_(mutex)
 | 
			
		||||
//
 | 
			
		||||
//     GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
 | 
			
		||||
//     GTEST_LOCK_EXCLUDED_(locks)
 | 
			
		||||
//
 | 
			
		||||
// ** Custom implementation starts here **
 | 
			
		||||
 | 
			
		||||
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 | 
			
		||||
#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 | 
			
		||||
 | 
			
		||||
#endif  // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 | 
			
		||||
							
								
								
									
										93
									
								
								include/gtest/internal/gtest-port-arch.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								include/gtest/internal/gtest-port-arch.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
			
		||||
// Copyright 2015, Google Inc.
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions are
 | 
			
		||||
// met:
 | 
			
		||||
//
 | 
			
		||||
//     * Redistributions of source code must retain the above copyright
 | 
			
		||||
// notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//     * Redistributions in binary form must reproduce the above
 | 
			
		||||
// copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
// in the documentation and/or other materials provided with the
 | 
			
		||||
// distribution.
 | 
			
		||||
//     * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
// contributors may be used to endorse or promote products derived from
 | 
			
		||||
// this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
//
 | 
			
		||||
// The Google C++ Testing Framework (Google Test)
 | 
			
		||||
//
 | 
			
		||||
// This header file defines the GTEST_OS_* macro.
 | 
			
		||||
// It is separate from gtest-port.h so that custom/gtest-port.h can include it.
 | 
			
		||||
 | 
			
		||||
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
 | 
			
		||||
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
 | 
			
		||||
 | 
			
		||||
// Determines the platform on which Google Test is compiled.
 | 
			
		||||
#ifdef __CYGWIN__
 | 
			
		||||
# define GTEST_OS_CYGWIN 1
 | 
			
		||||
#elif defined __SYMBIAN32__
 | 
			
		||||
# define GTEST_OS_SYMBIAN 1
 | 
			
		||||
#elif defined _WIN32
 | 
			
		||||
# define GTEST_OS_WINDOWS 1
 | 
			
		||||
# ifdef _WIN32_WCE
 | 
			
		||||
#  define GTEST_OS_WINDOWS_MOBILE 1
 | 
			
		||||
# elif defined(__MINGW__) || defined(__MINGW32__)
 | 
			
		||||
#  define GTEST_OS_WINDOWS_MINGW 1
 | 
			
		||||
# elif defined(WINAPI_FAMILY)
 | 
			
		||||
#  include <winapifamily.h>
 | 
			
		||||
#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 | 
			
		||||
#   define GTEST_OS_WINDOWS_DESKTOP 1
 | 
			
		||||
#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
 | 
			
		||||
#   define GTEST_OS_WINDOWS_PHONE 1
 | 
			
		||||
#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 | 
			
		||||
#   define GTEST_OS_WINDOWS_RT 1
 | 
			
		||||
#  else
 | 
			
		||||
    // WINAPI_FAMILY defined but no known partition matched.
 | 
			
		||||
    // Default to desktop.
 | 
			
		||||
#   define GTEST_OS_WINDOWS_DESKTOP 1
 | 
			
		||||
#  endif
 | 
			
		||||
# else
 | 
			
		||||
#  define GTEST_OS_WINDOWS_DESKTOP 1
 | 
			
		||||
# endif  // _WIN32_WCE
 | 
			
		||||
#elif defined __APPLE__
 | 
			
		||||
# define GTEST_OS_MAC 1
 | 
			
		||||
# if TARGET_OS_IPHONE
 | 
			
		||||
#  define GTEST_OS_IOS 1
 | 
			
		||||
# endif
 | 
			
		||||
#elif defined __FreeBSD__
 | 
			
		||||
# define GTEST_OS_FREEBSD 1
 | 
			
		||||
#elif defined __linux__
 | 
			
		||||
# define GTEST_OS_LINUX 1
 | 
			
		||||
# if defined __ANDROID__
 | 
			
		||||
#  define GTEST_OS_LINUX_ANDROID 1
 | 
			
		||||
# endif
 | 
			
		||||
#elif defined __MVS__
 | 
			
		||||
# define GTEST_OS_ZOS 1
 | 
			
		||||
#elif defined(__sun) && defined(__SVR4)
 | 
			
		||||
# define GTEST_OS_SOLARIS 1
 | 
			
		||||
#elif defined(_AIX)
 | 
			
		||||
# define GTEST_OS_AIX 1
 | 
			
		||||
#elif defined(__hpux)
 | 
			
		||||
# define GTEST_OS_HPUX 1
 | 
			
		||||
#elif defined __native_client__
 | 
			
		||||
# define GTEST_OS_NACL 1
 | 
			
		||||
#elif defined __OpenBSD__
 | 
			
		||||
# define GTEST_OS_OPENBSD 1
 | 
			
		||||
#elif defined __QNX__
 | 
			
		||||
# define GTEST_OS_QNX 1
 | 
			
		||||
#endif  // __CYGWIN__
 | 
			
		||||
 | 
			
		||||
#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
 | 
			
		||||
@@ -277,12 +277,17 @@
 | 
			
		||||
#include <string>  // NOLINT
 | 
			
		||||
#include <utility>
 | 
			
		||||
 | 
			
		||||
#define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
 | 
			
		||||
#define GTEST_FLAG_PREFIX_ "gtest_"
 | 
			
		||||
#define GTEST_FLAG_PREFIX_DASH_ "gtest-"
 | 
			
		||||
#define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
 | 
			
		||||
#define GTEST_NAME_ "Google Test"
 | 
			
		||||
#define GTEST_PROJECT_URL_ "http://code.google.com/p/googletest/"
 | 
			
		||||
#include "gtest/internal/gtest-port-arch.h"
 | 
			
		||||
#include "gtest/internal/custom/gtest-port.h"
 | 
			
		||||
 | 
			
		||||
#if !defined(GTEST_DEV_EMAIL_)
 | 
			
		||||
# define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
 | 
			
		||||
# define GTEST_FLAG_PREFIX_ "gtest_"
 | 
			
		||||
# define GTEST_FLAG_PREFIX_DASH_ "gtest-"
 | 
			
		||||
# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
 | 
			
		||||
# define GTEST_NAME_ "Google Test"
 | 
			
		||||
# define GTEST_PROJECT_URL_ "http://code.google.com/p/googletest/"
 | 
			
		||||
#endif  // !defined(GTEST_DEV_EMAIL_)
 | 
			
		||||
 | 
			
		||||
// Determines the version of gcc that is used to compile this.
 | 
			
		||||
#ifdef __GNUC__
 | 
			
		||||
@@ -291,61 +296,6 @@
 | 
			
		||||
    (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
 | 
			
		||||
#endif  // __GNUC__
 | 
			
		||||
 | 
			
		||||
// Determines the platform on which Google Test is compiled.
 | 
			
		||||
#ifdef __CYGWIN__
 | 
			
		||||
# define GTEST_OS_CYGWIN 1
 | 
			
		||||
#elif defined __SYMBIAN32__
 | 
			
		||||
# define GTEST_OS_SYMBIAN 1
 | 
			
		||||
#elif defined _WIN32
 | 
			
		||||
# define GTEST_OS_WINDOWS 1
 | 
			
		||||
# ifdef _WIN32_WCE
 | 
			
		||||
#  define GTEST_OS_WINDOWS_MOBILE 1
 | 
			
		||||
# elif defined(__MINGW__) || defined(__MINGW32__)
 | 
			
		||||
#  define GTEST_OS_WINDOWS_MINGW 1
 | 
			
		||||
# elif defined(WINAPI_FAMILY)
 | 
			
		||||
#  include <winapifamily.h>
 | 
			
		||||
#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 | 
			
		||||
#   define GTEST_OS_WINDOWS_DESKTOP 1
 | 
			
		||||
#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
 | 
			
		||||
#   define GTEST_OS_WINDOWS_PHONE 1
 | 
			
		||||
#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 | 
			
		||||
#   define GTEST_OS_WINDOWS_RT 1
 | 
			
		||||
#  else
 | 
			
		||||
    // WINAPI_FAMILY defined but no known partition matched.
 | 
			
		||||
    // Default to desktop.
 | 
			
		||||
#   define GTEST_OS_WINDOWS_DESKTOP 1
 | 
			
		||||
#  endif
 | 
			
		||||
# else
 | 
			
		||||
#  define GTEST_OS_WINDOWS_DESKTOP 1
 | 
			
		||||
# endif  // _WIN32_WCE
 | 
			
		||||
#elif defined __APPLE__
 | 
			
		||||
# define GTEST_OS_MAC 1
 | 
			
		||||
# if TARGET_OS_IPHONE
 | 
			
		||||
#  define GTEST_OS_IOS 1
 | 
			
		||||
# endif
 | 
			
		||||
#elif defined __FreeBSD__
 | 
			
		||||
# define GTEST_OS_FREEBSD 1
 | 
			
		||||
#elif defined __linux__
 | 
			
		||||
# define GTEST_OS_LINUX 1
 | 
			
		||||
# if defined __ANDROID__
 | 
			
		||||
#  define GTEST_OS_LINUX_ANDROID 1
 | 
			
		||||
# endif
 | 
			
		||||
#elif defined __MVS__
 | 
			
		||||
# define GTEST_OS_ZOS 1
 | 
			
		||||
#elif defined(__sun) && defined(__SVR4)
 | 
			
		||||
# define GTEST_OS_SOLARIS 1
 | 
			
		||||
#elif defined(_AIX)
 | 
			
		||||
# define GTEST_OS_AIX 1
 | 
			
		||||
#elif defined(__hpux)
 | 
			
		||||
# define GTEST_OS_HPUX 1
 | 
			
		||||
#elif defined __native_client__
 | 
			
		||||
# define GTEST_OS_NACL 1
 | 
			
		||||
#elif defined __OpenBSD__
 | 
			
		||||
# define GTEST_OS_OPENBSD 1
 | 
			
		||||
#elif defined __QNX__
 | 
			
		||||
# define GTEST_OS_QNX 1
 | 
			
		||||
#endif  // __CYGWIN__
 | 
			
		||||
 | 
			
		||||
// Macros for disabling Microsoft Visual C++ warnings.
 | 
			
		||||
//
 | 
			
		||||
//   GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385)
 | 
			
		||||
@@ -466,7 +416,10 @@ struct _RTL_CRITICAL_SECTION;
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_POSIX_RE
 | 
			
		||||
#if GTEST_USES_PCRE
 | 
			
		||||
// The appropriate headers have already been included.
 | 
			
		||||
 | 
			
		||||
#elif GTEST_HAS_POSIX_RE
 | 
			
		||||
 | 
			
		||||
// On some platforms, <regex.h> needs someone to define size_t, and
 | 
			
		||||
// won't compile otherwise.  We can #include it here as we already
 | 
			
		||||
@@ -488,7 +441,7 @@ struct _RTL_CRITICAL_SECTION;
 | 
			
		||||
// simple regex implementation instead.
 | 
			
		||||
# define GTEST_USES_SIMPLE_RE 1
 | 
			
		||||
 | 
			
		||||
#endif  // GTEST_HAS_POSIX_RE
 | 
			
		||||
#endif  // GTEST_USES_PCRE
 | 
			
		||||
 | 
			
		||||
#ifndef GTEST_HAS_EXCEPTIONS
 | 
			
		||||
// The user didn't tell us whether exceptions are enabled, so we need
 | 
			
		||||
@@ -946,7 +899,7 @@ using ::std::tuple_size;
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#define GTEST_IS_THREADSAFE \
 | 
			
		||||
    (0 \
 | 
			
		||||
    (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ \
 | 
			
		||||
     || (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) \
 | 
			
		||||
     || GTEST_HAS_PTHREAD)
 | 
			
		||||
 | 
			
		||||
@@ -1298,13 +1251,18 @@ class GTEST_API_ GTestLog {
 | 
			
		||||
  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define GTEST_LOG_(severity) \
 | 
			
		||||
#if !defined(GTEST_LOG_)
 | 
			
		||||
 | 
			
		||||
# define GTEST_LOG_(severity) \
 | 
			
		||||
    ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
 | 
			
		||||
                                  __FILE__, __LINE__).GetStream()
 | 
			
		||||
 | 
			
		||||
inline void LogToStderr() {}
 | 
			
		||||
inline void FlushInfoLog() { fflush(NULL); }
 | 
			
		||||
 | 
			
		||||
#endif  // !defined(GTEST_LOG_)
 | 
			
		||||
 | 
			
		||||
#if !defined(GTEST_CHECK_)
 | 
			
		||||
// INTERNAL IMPLEMENTATION - DO NOT USE.
 | 
			
		||||
//
 | 
			
		||||
// GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition
 | 
			
		||||
@@ -1319,12 +1277,13 @@ inline void FlushInfoLog() { fflush(NULL); }
 | 
			
		||||
//    condition itself, plus additional message streamed into it, if any,
 | 
			
		||||
//    and then it aborts the program. It aborts the program irrespective of
 | 
			
		||||
//    whether it is built in the debug mode or not.
 | 
			
		||||
#define GTEST_CHECK_(condition) \
 | 
			
		||||
# define GTEST_CHECK_(condition) \
 | 
			
		||||
    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
 | 
			
		||||
    if (::testing::internal::IsTrue(condition)) \
 | 
			
		||||
      ; \
 | 
			
		||||
    else \
 | 
			
		||||
      GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
 | 
			
		||||
#endif  // !defined(GTEST_CHECK_)
 | 
			
		||||
 | 
			
		||||
// An all-mode assert to verify that the given POSIX-style function
 | 
			
		||||
// call returns 0 (indicating success).  Known limitation: this
 | 
			
		||||
@@ -1418,6 +1377,11 @@ template <class Derived, class Base>
 | 
			
		||||
Derived* CheckedDowncastToActualType(Base* base) {
 | 
			
		||||
#if GTEST_HAS_RTTI
 | 
			
		||||
  GTEST_CHECK_(typeid(*base) == typeid(Derived));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_DOWNCAST_
 | 
			
		||||
  return ::down_cast<Derived*>(base);
 | 
			
		||||
#elif GTEST_HAS_RTTI
 | 
			
		||||
  return dynamic_cast<Derived*>(base);  // NOLINT
 | 
			
		||||
#else
 | 
			
		||||
  return static_cast<Derived*>(base);  // Poor man's downcast.
 | 
			
		||||
@@ -1466,7 +1430,10 @@ inline void SleepMilliseconds(int n) {
 | 
			
		||||
}
 | 
			
		||||
# endif  // GTEST_HAS_PTHREAD
 | 
			
		||||
 | 
			
		||||
# if 0  // OS detection
 | 
			
		||||
# if GTEST_HAS_NOTIFICATION_
 | 
			
		||||
// Notification has already been imported into the namespace.
 | 
			
		||||
// Nothing to do here.
 | 
			
		||||
 | 
			
		||||
# elif GTEST_HAS_PTHREAD
 | 
			
		||||
// Allows a controller thread to pause execution of newly created
 | 
			
		||||
// threads until notified.  Instances of this class must be created
 | 
			
		||||
@@ -1560,7 +1527,7 @@ class GTEST_API_ Notification {
 | 
			
		||||
 | 
			
		||||
  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
 | 
			
		||||
};
 | 
			
		||||
# endif  // OS detection
 | 
			
		||||
# endif  // GTEST_HAS_NOTIFICATION_
 | 
			
		||||
 | 
			
		||||
// On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD
 | 
			
		||||
// defined, but we don't want to use MinGW's pthreads implementation, which
 | 
			
		||||
@@ -1643,9 +1610,13 @@ class ThreadWithParam : public ThreadWithParamBase {
 | 
			
		||||
 | 
			
		||||
  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
 | 
			
		||||
};
 | 
			
		||||
# endif  // GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW
 | 
			
		||||
# endif  // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
 | 
			
		||||
         // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 | 
			
		||||
 | 
			
		||||
# if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 | 
			
		||||
// Mutex and ThreadLocal have already been imported into the namespace.
 | 
			
		||||
// Nothing to do here.
 | 
			
		||||
 | 
			
		||||
# if 0  // OS detection
 | 
			
		||||
# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
 | 
			
		||||
 | 
			
		||||
// Mutex implements mutex on Windows platforms.  It is used in conjunction
 | 
			
		||||
@@ -2066,7 +2037,7 @@ class ThreadLocal {
 | 
			
		||||
  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# endif  // OS detection
 | 
			
		||||
# endif  // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 | 
			
		||||
 | 
			
		||||
#else  // GTEST_IS_THREADSAFE
 | 
			
		||||
 | 
			
		||||
@@ -2442,11 +2413,14 @@ typedef TypeWithSize<8>::Int TimeInMillis;  // Represents time in milliseconds.
 | 
			
		||||
// Utilities for command line flags and environment variables.
 | 
			
		||||
 | 
			
		||||
// Macro for referencing flags.
 | 
			
		||||
#define GTEST_FLAG(name) FLAGS_gtest_##name
 | 
			
		||||
#if !defined(GTEST_FLAG)
 | 
			
		||||
# define GTEST_FLAG(name) FLAGS_gtest_##name
 | 
			
		||||
#endif  // !defined(GTEST_FLAG)
 | 
			
		||||
 | 
			
		||||
#if !defined(GTEST_DECLARE_bool_)
 | 
			
		||||
// Macros for declaring flags.
 | 
			
		||||
#define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
 | 
			
		||||
#define GTEST_DECLARE_int32_(name) \
 | 
			
		||||
# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
 | 
			
		||||
# define GTEST_DECLARE_int32_(name) \
 | 
			
		||||
    GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name)
 | 
			
		||||
#define GTEST_DECLARE_string_(name) \
 | 
			
		||||
    GTEST_API_ extern ::std::string GTEST_FLAG(name)
 | 
			
		||||
@@ -2459,9 +2433,13 @@ typedef TypeWithSize<8>::Int TimeInMillis;  // Represents time in milliseconds.
 | 
			
		||||
#define GTEST_DEFINE_string_(name, default_val, doc) \
 | 
			
		||||
    GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val)
 | 
			
		||||
 | 
			
		||||
#endif  // !defined(GTEST_DECLARE_bool_)
 | 
			
		||||
 | 
			
		||||
// Thread annotations
 | 
			
		||||
#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
 | 
			
		||||
#define GTEST_LOCK_EXCLUDED_(locks)
 | 
			
		||||
#if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
 | 
			
		||||
# define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
 | 
			
		||||
# define GTEST_LOCK_EXCLUDED_(locks)
 | 
			
		||||
#endif  // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
 | 
			
		||||
 | 
			
		||||
// Parses 'str' for a 32-bit signed integer.  If successful, writes the result
 | 
			
		||||
// to *value and returns true; otherwise leaves *value unchanged and returns
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user