Index: sdch/open_vcdiff/depot/opensource/open-vcdiff/src/gtest/internal/gtest-port.h |
=================================================================== |
--- sdch/open_vcdiff/depot/opensource/open-vcdiff/src/gtest/internal/gtest-port.h (revision 2678) |
+++ sdch/open_vcdiff/depot/opensource/open-vcdiff/src/gtest/internal/gtest-port.h (working copy) |
@@ -1,620 +0,0 @@ |
-// Copyright 2005, 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. |
-// |
-// Authors: wan@google.com (Zhanyong Wan) |
-// |
-// Low-level types and utilities for porting Google Test to various |
-// platforms. They are subject to change without notice. DO NOT USE |
-// THEM IN USER CODE. |
- |
-#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ |
-#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ |
- |
-// The user can define the following macros in the build script to |
-// control Google Test's behavior: |
-// |
-// GTEST_HAS_STD_STRING - Define it to 1/0 to indicate that |
-// std::string does/doesn't work (Google Test can |
-// be used where std::string is unavailable). |
-// Leave it undefined to let Google Test define it. |
-// GTEST_HAS_GLOBAL_STRING - Define it to 1/0 to indicate that ::string |
-// is/isn't available (some systems define |
-// ::string, which is different to std::string). |
-// Leave it undefined to let Google Test define it. |
-// GTEST_HAS_STD_WSTRING - Define it to 1/0 to indicate that |
-// std::wstring does/doesn't work (Google Test can |
-// be used where std::wstring is unavailable). |
-// Leave it undefined to let Google Test define it. |
-// GTEST_HAS_GLOBAL_WSTRING - Define it to 1/0 to indicate that ::string |
-// is/isn't available (some systems define |
-// ::wstring, which is different to std::wstring). |
-// Leave it undefined to let Google Test define it. |
- |
-// This header defines the following utilities: |
-// |
-// Macros indicating the name of the Google C++ Testing Framework project: |
-// GTEST_NAME - a string literal of the project name. |
-// GTEST_FLAG_PREFIX - a string literal of the prefix all Google |
-// Test flag names share. |
-// GTEST_FLAG_PREFIX_UPPER - a string literal of the prefix all Google |
-// Test flag names share, in upper case. |
-// |
-// Macros indicating the current platform: |
-// GTEST_OS_CYGWIN - defined iff compiled on Cygwin. |
-// GTEST_OS_LINUX - defined iff compiled on Linux. |
-// GTEST_OS_MAC - defined iff compiled on Mac OS X. |
-// GTEST_OS_WINDOWS - defined iff compiled on Windows. |
-// Note that it is possible that none of the GTEST_OS_ macros are defined. |
-// |
-// Macros indicating available Google Test features: |
-// GTEST_HAS_DEATH_TEST - defined iff death tests are supported. |
-// |
-// Macros for basic C++ coding: |
-// GTEST_AMBIGUOUS_ELSE_BLOCKER - for disabling a gcc warning. |
-// GTEST_ATTRIBUTE_UNUSED - declares that a class' instances don't have to |
-// be used. |
-// GTEST_DISALLOW_COPY_AND_ASSIGN() - disables copy ctor and operator=. |
-// GTEST_MUST_USE_RESULT - declares that a function's result must be used. |
-// |
-// Synchronization: |
-// Mutex, MutexLock, ThreadLocal, GetThreadCount() |
-// - synchronization primitives. |
-// |
-// Template meta programming: |
-// is_pointer - as in TR1; needed on Symbian only. |
-// |
-// Smart pointers: |
-// scoped_ptr - as in TR2. |
-// |
-// Regular expressions: |
-// RE - a simple regular expression class using the POSIX |
-// Extended Regular Expression syntax. Not available on |
-// Windows. |
-// |
-// Logging: |
-// GTEST_LOG() - logs messages at the specified severity level. |
-// LogToStderr() - directs all log messages to stderr. |
-// FlushInfoLog() - flushes informational log messages. |
-// |
-// Stderr capturing: |
-// CaptureStderr() - starts capturing stderr. |
-// GetCapturedStderr() - stops capturing stderr and returns the captured |
-// string. |
-// |
-// Integer types: |
-// TypeWithSize - maps an integer to a int type. |
-// Int32, UInt32, Int64, UInt64, TimeInMillis |
-// - integers of known sizes. |
-// BiggestInt - the biggest signed integer type. |
-// |
-// Command-line utilities: |
-// GTEST_FLAG() - references a flag. |
-// GTEST_DECLARE_*() - declares a flag. |
-// GTEST_DEFINE_*() - defines a flag. |
-// GetArgvs() - returns the command line as a vector of strings. |
-// |
-// Environment variable utilities: |
-// GetEnv() - gets the value of an environment variable. |
-// BoolFromGTestEnv() - parses a bool environment variable. |
-// Int32FromGTestEnv() - parses an Int32 environment variable. |
-// StringFromGTestEnv() - parses a string environment variable. |
- |
-#include <stdlib.h> |
-#include <stdio.h> |
- |
-#define GTEST_NAME "Google Test" |
-#define GTEST_FLAG_PREFIX "gtest_" |
-#define GTEST_FLAG_PREFIX_UPPER "GTEST_" |
- |
-// Determines the platform on which Google Test is compiled. |
-#ifdef __CYGWIN__ |
-#define GTEST_OS_CYGWIN |
-#elif defined _MSC_VER |
-// TODO(kenton@google.com): GTEST_OS_WINDOWS is currently used to mean |
-// both "The OS is Windows" and "The compiler is MSVC". These |
-// meanings really should be separated in order to better support |
-// Windows compilers other than MSVC. |
-#define GTEST_OS_WINDOWS |
-#elif defined __APPLE__ |
-#define GTEST_OS_MAC |
-#elif defined __linux__ |
-#define GTEST_OS_LINUX |
-#endif // _MSC_VER |
- |
-// Determines whether ::std::string and ::string are available. |
- |
-#ifndef GTEST_HAS_STD_STRING |
-// The user didn't tell us whether ::std::string is available, so we |
-// need to figure it out. |
- |
-#ifdef GTEST_OS_WINDOWS |
-// Assumes that exceptions are enabled by default. |
-#ifndef _HAS_EXCEPTIONS |
-#define _HAS_EXCEPTIONS 1 |
-#endif // _HAS_EXCEPTIONS |
-// GTEST_HAS_EXCEPTIONS is non-zero iff exceptions are enabled. It is |
-// always defined, while _HAS_EXCEPTIONS is defined only on Windows. |
-#define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS |
-// On Windows, we can use ::std::string if the compiler version is VS |
-// 2005 or above, or if exceptions are enabled. |
-#define GTEST_HAS_STD_STRING ((_MSC_VER >= 1400) || GTEST_HAS_EXCEPTIONS) |
-#else // We are on Linux or Mac OS. |
-#define GTEST_HAS_EXCEPTIONS 0 |
-#define GTEST_HAS_STD_STRING 1 |
-#endif // GTEST_OS_WINDOWS |
- |
-#endif // GTEST_HAS_STD_STRING |
- |
-#ifndef GTEST_HAS_GLOBAL_STRING |
-// The user didn't tell us whether ::string is available, so we need |
-// to figure it out. |
- |
-#define GTEST_HAS_GLOBAL_STRING 0 |
- |
-#endif // GTEST_HAS_GLOBAL_STRING |
- |
-#ifndef GTEST_HAS_STD_WSTRING |
-// The user didn't tell us whether ::std::wstring is available, so we need |
-// to figure it out. |
-// TODO(wan@google.com): uses autoconf to detect whether ::std::wstring |
-// is available. |
- |
-#ifdef GTEST_OS_CYGWIN |
-// At least some versions of cygwin doesn't support ::std::wstring. |
-#define GTEST_HAS_STD_WSTRING 0 |
-#else |
-#define GTEST_HAS_STD_WSTRING GTEST_HAS_STD_STRING |
-#endif // GTEST_OS_CYGWIN |
- |
-#endif // GTEST_HAS_STD_WSTRING |
- |
-#ifndef GTEST_HAS_GLOBAL_WSTRING |
-// The user didn't tell us whether ::wstring is available, so we need |
-// to figure it out. |
-#define GTEST_HAS_GLOBAL_WSTRING GTEST_HAS_GLOBAL_STRING |
-#endif // GTEST_HAS_GLOBAL_WSTRING |
- |
-#if GTEST_HAS_STD_STRING || GTEST_HAS_GLOBAL_STRING || \ |
- GTEST_HAS_STD_WSTRING || GTEST_HAS_GLOBAL_WSTRING |
-#include <string> // NOLINT |
-#endif // GTEST_HAS_STD_STRING || GTEST_HAS_GLOBAL_STRING || |
- // GTEST_HAS_STD_WSTRING || GTEST_HAS_GLOBAL_WSTRING |
- |
-#if GTEST_HAS_STD_STRING |
-#include <sstream> // NOLINT |
-#else |
-#include <strstream> // NOLINT |
-#endif // GTEST_HAS_STD_STRING |
- |
-// Determines whether to support death tests. |
-#if GTEST_HAS_STD_STRING && defined(GTEST_OS_LINUX) |
-#define GTEST_HAS_DEATH_TEST |
-// On some platforms, <regex.h> needs someone to define size_t, and |
-// won't compile otherwise. We can #include it here as we already |
-// included <stdlib.h>, which is guaranteed to define size_t through |
-// <stddef.h>. |
-#include <regex.h> |
-#include <vector> |
-#include <fcntl.h> |
-#include <sys/mman.h> |
-#endif // GTEST_HAS_STD_STRING && defined(GTEST_OS_LINUX) |
- |
-// Defines some utility macros. |
- |
-// The GNU compiler emits a warning if nested "if" statements are followed by |
-// an "else" statement and braces are not used to explicitly disambiguate the |
-// "else" binding. This leads to problems with code like: |
-// |
-// if (gate) |
-// ASSERT_*(condition) << "Some message"; |
-// |
-// The "switch (0) case 0:" idiom is used to suppress this. |
-#ifdef __INTEL_COMPILER |
-#define GTEST_AMBIGUOUS_ELSE_BLOCKER |
-#else |
-#define GTEST_AMBIGUOUS_ELSE_BLOCKER switch (0) case 0: // NOLINT |
-#endif |
- |
-// Use this annotation at the end of a struct / class definition to |
-// prevent the compiler from optimizing away instances that are never |
-// used. This is useful when all interesting logic happens inside the |
-// c'tor and / or d'tor. Example: |
-// |
-// struct Foo { |
-// Foo() { ... } |
-// } GTEST_ATTRIBUTE_UNUSED; |
-#if defined(GTEST_OS_WINDOWS) || (defined(GTEST_OS_LINUX) && defined(SWIG)) |
-#define GTEST_ATTRIBUTE_UNUSED |
-#else |
-#define GTEST_ATTRIBUTE_UNUSED __attribute__ ((unused)) |
-#endif // GTEST_OS_WINDOWS || (GTEST_OS_LINUX && SWIG) |
- |
-// A macro to disallow the evil copy constructor and operator= functions |
-// This should be used in the private: declarations for a class. |
-#define GTEST_DISALLOW_COPY_AND_ASSIGN(type)\ |
- type(const type &);\ |
- void operator=(const type &) |
- |
-// 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: |
-// |
-// Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT; |
-#if defined(__GNUC__) \ |
- && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) \ |
- && !defined(COMPILER_ICC) |
-#define GTEST_MUST_USE_RESULT __attribute__ ((warn_unused_result)) |
-#else |
-#define GTEST_MUST_USE_RESULT |
-#endif // (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 4) |
- |
-namespace testing { |
- |
-class Message; |
- |
-namespace internal { |
- |
-class String; |
- |
-// std::strstream is deprecated. However, we have to use it on |
-// Windows as std::stringstream won't compile on Windows when |
-// exceptions are disabled. We use std::stringstream on other |
-// platforms to avoid compiler warnings there. |
-#if GTEST_HAS_STD_STRING |
-typedef ::std::stringstream StrStream; |
-#else |
-typedef ::std::strstream StrStream; |
-#endif // GTEST_HAS_STD_STRING |
- |
-// Defines scoped_ptr. |
- |
-// This implementation of scoped_ptr is PARTIAL - it only contains |
-// enough stuff to satisfy Google Test's need. |
-template <typename T> |
-class scoped_ptr { |
- public: |
- explicit scoped_ptr(T* p = NULL) : ptr_(p) {} |
- ~scoped_ptr() { reset(); } |
- |
- T& operator*() const { return *ptr_; } |
- T* operator->() const { return ptr_; } |
- T* get() const { return ptr_; } |
- |
- T* release() { |
- T* const ptr = ptr_; |
- ptr_ = NULL; |
- return ptr; |
- } |
- |
- void reset(T* p = NULL) { |
- if (p != ptr_) { |
- if (sizeof(T) > 0) { // Makes sure T is a complete type. |
- delete ptr_; |
- } |
- ptr_ = p; |
- } |
- } |
- private: |
- T* ptr_; |
- |
- GTEST_DISALLOW_COPY_AND_ASSIGN(scoped_ptr); |
-}; |
- |
-#ifdef GTEST_HAS_DEATH_TEST |
- |
-// Defines RE. Currently only needed for death tests. |
- |
-// A simple C++ wrapper for <regex.h>. It uses the POSIX Enxtended |
-// Regular Expression syntax. |
-class RE { |
- public: |
- // Constructs an RE from a string. |
-#if GTEST_HAS_STD_STRING |
- RE(const ::std::string& regex) { Init(regex.c_str()); } // NOLINT |
-#endif // GTEST_HAS_STD_STRING |
- |
-#if GTEST_HAS_GLOBAL_STRING |
- RE(const ::string& regex) { Init(regex.c_str()); } // NOLINT |
-#endif // GTEST_HAS_GLOBAL_STRING |
- |
- RE(const char* regex) { Init(regex); } // NOLINT |
- ~RE(); |
- |
- // Returns the string representation of the regex. |
- const char* pattern() const { return pattern_; } |
- |
- // Returns true iff str contains regular expression re. |
- |
- // TODO(wan): make PartialMatch() work when str contains NUL |
- // characters. |
-#if GTEST_HAS_STD_STRING |
- static bool PartialMatch(const ::std::string& str, const RE& re) { |
- return PartialMatch(str.c_str(), re); |
- } |
-#endif // GTEST_HAS_STD_STRING |
- |
-#if GTEST_HAS_GLOBAL_STRING |
- static bool PartialMatch(const ::string& str, const RE& re) { |
- return PartialMatch(str.c_str(), re); |
- } |
-#endif // GTEST_HAS_GLOBAL_STRING |
- |
- static bool PartialMatch(const char* str, const RE& re); |
- |
- private: |
- void Init(const char* regex); |
- |
- // We use a const char* instead of a string, as Google Test may be used |
- // where string is not available. We also do not use Google Test's own |
- // String type here, in order to simplify dependencies between the |
- // files. |
- const char* pattern_; |
- regex_t regex_; |
- bool is_valid_; |
-}; |
- |
-#endif // GTEST_HAS_DEATH_TEST |
- |
-// Defines logging utilities: |
-// GTEST_LOG() - logs messages at the specified severity level. |
-// LogToStderr() - directs all log messages to stderr. |
-// FlushInfoLog() - flushes informational log messages. |
- |
-enum GTestLogSeverity { |
- GTEST_INFO, |
- GTEST_WARNING, |
- GTEST_ERROR, |
- GTEST_FATAL |
-}; |
- |
-void GTestLog(GTestLogSeverity severity, const char* file, |
- int line, const char* msg); |
- |
-#define GTEST_LOG(severity, msg)\ |
- ::testing::internal::GTestLog(\ |
- ::testing::internal::GTEST_##severity, __FILE__, __LINE__, \ |
- (::testing::Message() << (msg)).GetString().c_str()) |
- |
-inline void LogToStderr() {} |
-inline void FlushInfoLog() { fflush(NULL); } |
- |
-// Defines the stderr capturer: |
-// CaptureStderr - starts capturing stderr. |
-// GetCapturedStderr - stops capturing stderr and returns the captured string. |
- |
-#ifdef GTEST_HAS_DEATH_TEST |
- |
-// A copy of all command line arguments. Set by InitGoogleTest(). |
-extern ::std::vector<String> g_argvs; |
- |
-void CaptureStderr(); |
-// GTEST_HAS_DEATH_TEST implies we have ::std::string. |
-::std::string GetCapturedStderr(); |
-const ::std::vector<String>& GetArgvs(); |
- |
-#endif // GTEST_HAS_DEATH_TEST |
- |
-// Defines synchronization primitives. |
- |
-// A dummy implementation of synchronization primitives (mutex, lock, |
-// and thread-local variable). Necessary for compiling Google Test where |
-// mutex is not supported - using Google Test in multiple threads is not |
-// supported on such platforms. |
- |
-class Mutex { |
- public: |
- Mutex() {} |
- explicit Mutex(int /*unused*/) {} |
- void AssertHeld() const {} |
- enum { NO_CONSTRUCTOR_NEEDED_FOR_STATIC_MUTEX = 0 }; |
-}; |
- |
-// We cannot call it MutexLock directly as the ctor declaration would |
-// conflict with a macro named MutexLock, which is defined on some |
-// platforms. Hence the typedef trick below. |
-class GTestMutexLock { |
- public: |
- explicit GTestMutexLock(Mutex*) {} // NOLINT |
-}; |
- |
-typedef GTestMutexLock MutexLock; |
- |
-template <typename T> |
-class ThreadLocal { |
- public: |
- T* pointer() { return &value_; } |
- const T* pointer() const { return &value_; } |
- const T& get() const { return value_; } |
- void set(const T& value) { value_ = value; } |
- private: |
- T value_; |
-}; |
- |
-// There's no portable way to detect the number of threads, so we just |
-// return 0 to indicate that we cannot detect it. |
-inline size_t GetThreadCount() { return 0; } |
- |
-// Defines tr1::is_pointer (only needed for Symbian). |
- |
-#ifdef __SYMBIAN32__ |
- |
-// Symbian does not have tr1::type_traits, so we define our own is_pointer |
-// These are needed as the Nokia Symbian Compiler cannot decide between |
-// const T& and const T* in a function template. |
- |
-template <bool bool_value> |
-struct bool_constant { |
- typedef bool_constant<bool_value> type; |
- static const bool value = bool_value; |
-}; |
-template <bool bool_value> const bool bool_constant<bool_value>::value; |
- |
-typedef bool_constant<false> false_type; |
-typedef bool_constant<true> true_type; |
- |
-template <typename T> |
-struct is_pointer : public false_type {}; |
- |
-template <typename T> |
-struct is_pointer<T*> : public true_type {}; |
- |
-#endif // __SYMBIAN32__ |
- |
-// Defines BiggestInt as the biggest signed integer type the compiler |
-// supports. |
- |
-#ifdef GTEST_OS_WINDOWS |
-typedef __int64 BiggestInt; |
-#else |
-typedef long long BiggestInt; // NOLINT |
-#endif // GTEST_OS_WINDOWS |
- |
-// The maximum number a BiggestInt can represent. This definition |
-// works no matter BiggestInt is represented in one's complement or |
-// two's complement. |
-// |
-// We cannot rely on numeric_limits in STL, as __int64 and long long |
-// are not part of standard C++ and numeric_limits doesn't need to be |
-// defined for them. |
-const BiggestInt kMaxBiggestInt = |
- ~(static_cast<BiggestInt>(1) << (8*sizeof(BiggestInt) - 1)); |
- |
-// This template class serves as a compile-time function from size to |
-// type. It maps a size in bytes to a primitive type with that |
-// size. e.g. |
-// |
-// TypeWithSize<4>::UInt |
-// |
-// is typedef-ed to be unsigned int (unsigned integer made up of 4 |
-// bytes). |
-// |
-// Such functionality should belong to STL, but I cannot find it |
-// there. |
-// |
-// Google Test uses this class in the implementation of floating-point |
-// comparison. |
-// |
-// For now it only handles UInt (unsigned int) as that's all Google Test |
-// needs. Other types can be easily added in the future if need |
-// arises. |
-template <size_t size> |
-class TypeWithSize { |
- public: |
- // This prevents the user from using TypeWithSize<N> with incorrect |
- // values of N. |
- typedef void UInt; |
-}; |
- |
-// The specialization for size 4. |
-template <> |
-class TypeWithSize<4> { |
- public: |
- // unsigned int has size 4 in both gcc and MSVC. |
- // |
- // As base/basictypes.h doesn't compile on Windows, we cannot use |
- // uint32, uint64, and etc here. |
- typedef int Int; |
- typedef unsigned int UInt; |
-}; |
- |
-// The specialization for size 8. |
-template <> |
-class TypeWithSize<8> { |
- public: |
-#ifdef GTEST_OS_WINDOWS |
- typedef __int64 Int; |
- typedef unsigned __int64 UInt; |
-#else |
- typedef long long Int; // NOLINT |
- typedef unsigned long long UInt; // NOLINT |
-#endif // GTEST_OS_WINDOWS |
-}; |
- |
-// Integer types of known sizes. |
-typedef TypeWithSize<4>::Int Int32; |
-typedef TypeWithSize<4>::UInt UInt32; |
-typedef TypeWithSize<8>::Int Int64; |
-typedef TypeWithSize<8>::UInt UInt64; |
-typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. |
- |
-// Utilities for command line flags and environment variables. |
- |
-// A wrapper for getenv() that works on Linux, Windows, and Mac OS. |
-inline const char* GetEnv(const char* name) { |
-#ifdef _WIN32_WCE // We are on Windows CE. |
- // CE has no environment variables. |
- return NULL; |
-#elif defined(GTEST_OS_WINDOWS) // We are on Windows proper. |
- // MSVC 8 deprecates getenv(), so we want to suppress warning 4996 |
- // (deprecated function) there. |
-#pragma warning(push) // Saves the current warning state. |
-#pragma warning(disable:4996) // Temporarily disables warning 4996. |
- return getenv(name); |
-#pragma warning(pop) // Restores the warning state. |
-#else // We are on Linux or Mac OS. |
- return getenv(name); |
-#endif |
-} |
- |
-// Macro for referencing flags. |
-#define GTEST_FLAG(name) FLAGS_gtest_##name |
- |
-// Macros for declaring flags. |
-#define GTEST_DECLARE_bool(name) extern bool GTEST_FLAG(name) |
-#define GTEST_DECLARE_int32(name) \ |
- extern ::testing::internal::Int32 GTEST_FLAG(name) |
-#define GTEST_DECLARE_string(name) \ |
- extern ::testing::internal::String GTEST_FLAG(name) |
- |
-// Macros for defining flags. |
-#define GTEST_DEFINE_bool(name, default_val, doc) \ |
- bool GTEST_FLAG(name) = (default_val) |
-#define GTEST_DEFINE_int32(name, default_val, doc) \ |
- ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) |
-#define GTEST_DEFINE_string(name, default_val, doc) \ |
- ::testing::internal::String GTEST_FLAG(name) = (default_val) |
- |
-// Parses 'str' for a 32-bit signed integer. If successful, writes the result |
-// to *value and returns true; otherwise leaves *value unchanged and returns |
-// false. |
-// TODO(chandlerc): Find a better way to refactor flag and environment parsing |
-// out of both gtest-port.cc and gtest.cc to avoid exporting this utility |
-// function. |
-bool ParseInt32(const Message& src_text, const char* str, Int32* value); |
- |
-// Parses a bool/Int32/string from the environment variable |
-// corresponding to the given Google Test flag. |
-bool BoolFromGTestEnv(const char* flag, bool default_val); |
-Int32 Int32FromGTestEnv(const char* flag, Int32 default_val); |
-const char* StringFromGTestEnv(const char* flag, const char* default_val); |
- |
-} // namespace internal |
-} // namespace testing |
- |
-#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ |