diff options
Diffstat (limited to 'include/gtest/internal/gtest-port.h')
-rw-r--r-- | include/gtest/internal/gtest-port.h | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/include/gtest/internal/gtest-port.h b/include/gtest/internal/gtest-port.h index 886e2dd8..e67a498d 100644 --- a/include/gtest/internal/gtest-port.h +++ b/include/gtest/internal/gtest-port.h @@ -154,10 +154,13 @@ // Int32FromGTestEnv() - parses an Int32 environment variable. // StringFromGTestEnv() - parses a string environment variable. +#include <stddef.h> // For ptrdiff_t #include <stdlib.h> #include <stdio.h> #include <string.h> +#ifndef _WIN32_WCE #include <sys/stat.h> +#endif // !_WIN32_WCE #include <iostream> // NOLINT @@ -191,7 +194,7 @@ #define GTEST_OS_SOLARIS 1 #endif // __CYGWIN__ -#if GTEST_OS_CYGWIN || GTEST_OS_LINUX || GTEST_OS_MAC +#if GTEST_OS_CYGWIN || GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_SYMBIAN // On some platforms, <regex.h> needs someone to define size_t, and // won't compile otherwise. We can #include it here as we already @@ -206,8 +209,10 @@ #elif GTEST_OS_WINDOWS +#ifndef _WIN32_WCE #include <direct.h> // NOLINT #include <io.h> // NOLINT +#endif // !_WIN32_WCE // <regex.h> is not available on Windows. Use our own simple regex // implementation instead. @@ -445,7 +450,8 @@ #if GTEST_HAS_STD_STRING && (GTEST_OS_LINUX || \ GTEST_OS_MAC || \ GTEST_OS_CYGWIN || \ - (GTEST_OS_WINDOWS && _MSC_VER >= 1400)) + (GTEST_OS_WINDOWS && (_MSC_VER >= 1400) && \ + !defined(_WIN32_WCE))) #define GTEST_HAS_DEATH_TEST 1 #include <vector> // NOLINT #endif @@ -813,20 +819,30 @@ inline int StrCaseCmp(const char* s1, const char* s2) { return stricmp(s1, s2); } inline char* StrDup(const char* src) { return strdup(src); } -#else +#else // !__BORLANDC__ +#ifdef _WIN32_WCE +inline int IsATTY(int /* fd */) { return 0; } +#else // !_WIN32_WCE inline int IsATTY(int fd) { return _isatty(fd); } +#endif // _WIN32_WCE inline int StrCaseCmp(const char* s1, const char* s2) { return _stricmp(s1, s2); } inline char* StrDup(const char* src) { return _strdup(src); } #endif // __BORLANDC__ +#ifdef _WIN32_WCE +inline int FileNo(FILE* file) { return reinterpret_cast<int>(_fileno(file)); } +// Stat(), RmDir(), and IsDir() are not needed on Windows CE at this +// time and thus not defined there. +#else // !_WIN32_WCE inline int FileNo(FILE* file) { return _fileno(file); } inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); } inline int RmDir(const char* dir) { return _rmdir(dir); } inline bool IsDir(const StatStruct& st) { return (_S_IFDIR & st.st_mode) != 0; } +#endif // _WIN32_WCE #else @@ -855,15 +871,25 @@ inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); } inline const char* StrNCpy(char* dest, const char* src, size_t n) { return strncpy(dest, src, n); } + +// ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and +// StrError() aren't needed on Windows CE at this time and thus not +// defined there. + +#ifndef _WIN32_WCE inline int ChDir(const char* dir) { return chdir(dir); } +#endif inline FILE* FOpen(const char* path, const char* mode) { return fopen(path, mode); } +#ifndef _WIN32_WCE inline FILE *FReopen(const char* path, const char* mode, FILE* stream) { return freopen(path, mode, stream); } inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); } +#endif inline int FClose(FILE* fp) { return fclose(fp); } +#ifndef _WIN32_WCE inline int Read(int fd, void* buf, unsigned int count) { return static_cast<int>(read(fd, buf, count)); } @@ -872,6 +898,7 @@ inline int Write(int fd, const void* buf, unsigned int count) { } inline int Close(int fd) { return close(fd); } inline const char* StrError(int errnum) { return strerror(errnum); } +#endif inline const char* GetEnv(const char* name) { #ifdef _WIN32_WCE // We are on Windows CE, which has no environment variables. return NULL; @@ -992,7 +1019,7 @@ class GTestCheckProvider { } ~GTestCheckProvider() { ::std::cerr << ::std::endl; - abort(); + posix::Abort(); } void FormatFileLocation(const char* file, int line) { if (file == NULL) |