Makes the code compile on Windows CE.
This commit is contained in:
		@@ -38,7 +38,11 @@
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <gmock/internal/gmock-internal-utils.h>
 | 
			
		||||
#include <gmock/internal/gmock-port.h>
 | 
			
		||||
 | 
			
		||||
@@ -601,6 +605,8 @@ class AssignAction {
 | 
			
		||||
  const T2 value_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
// Implements the SetErrnoAndReturn action to simulate return from
 | 
			
		||||
// various system calls and libc functions.
 | 
			
		||||
template <typename T>
 | 
			
		||||
@@ -619,6 +625,8 @@ class SetErrnoAndReturnAction {
 | 
			
		||||
  const T result_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
// Implements the SetArgumentPointee<N>(x) action for any function
 | 
			
		||||
// whose N-th argument (0-based) is a pointer to x's type.  The
 | 
			
		||||
// template parameter kIsProto is true iff type A is ProtocolMessage,
 | 
			
		||||
@@ -878,6 +886,8 @@ PolymorphicAction<internal::AssignAction<T1, T2> > Assign(T1* ptr, T2 val) {
 | 
			
		||||
  return MakePolymorphicAction(internal::AssignAction<T1, T2>(ptr, val));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
// Creates an action that sets errno and returns the appropriate error.
 | 
			
		||||
template <typename T>
 | 
			
		||||
PolymorphicAction<internal::SetErrnoAndReturnAction<T> >
 | 
			
		||||
@@ -886,6 +896,8 @@ SetErrnoAndReturn(int errval, T result) {
 | 
			
		||||
      internal::SetErrnoAndReturnAction<T>(errval, result));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
// Various overloads for InvokeWithoutArgs().
 | 
			
		||||
 | 
			
		||||
// Creates an action that invokes 'function_impl' with no argument.
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,9 @@ namespace {
 | 
			
		||||
 | 
			
		||||
using ::std::ostream;
 | 
			
		||||
 | 
			
		||||
#if GTEST_OS_WINDOWS
 | 
			
		||||
#ifdef _WIN32_WCE
 | 
			
		||||
#define snprintf _snprintf
 | 
			
		||||
#elif GTEST_OS_WINDOWS
 | 
			
		||||
#define snprintf _snprintf_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -157,9 +159,11 @@ static void PrintAsWideCharLiteralTo(wchar_t c, ostream* os) {
 | 
			
		||||
      *os << "\\v";
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      // isprint() takes an int and requires it to be either EOF or in
 | 
			
		||||
      // the range [0, 255]. We check that c is in this range before calling it.
 | 
			
		||||
      if ((c & 0xFF) == c && isprint(c)) {
 | 
			
		||||
      // Checks whether c is printable or not. Printable characters are in
 | 
			
		||||
      // the range [0x20,0x7E].
 | 
			
		||||
      // We test the value of c directly instead of calling isprint(), as
 | 
			
		||||
      // isprint() is buggy on Windows mobile.
 | 
			
		||||
      if (0x20 <= c && c <= 0x7E) {
 | 
			
		||||
        *os << static_cast<char>(c);
 | 
			
		||||
      } else {
 | 
			
		||||
        // Buffer size enough for the maximum number of digits and \0.
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,18 @@
 | 
			
		||||
#include <gmock/gmock.h>
 | 
			
		||||
#include <gtest/gtest.h>
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
// MS C++ compiler/linker has a bug on Windows (not on Windows CE), which
 | 
			
		||||
// causes a link error when _tmain is defined in a static library and UNICODE
 | 
			
		||||
// is enabled. For this reason instead of _tmain, main function is used on
 | 
			
		||||
// Windows. See the following link to track the current status of this bug:
 | 
			
		||||
// http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=394464  // NOLINT
 | 
			
		||||
#ifdef _WIN32_WCE
 | 
			
		||||
#include <tchar.h>  // NOLINT
 | 
			
		||||
 | 
			
		||||
int _tmain(int argc, TCHAR** argv) {
 | 
			
		||||
#else
 | 
			
		||||
int main(int argc, char** argv) {
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
  std::cout << "Running main() from gmock_main.cc\n";
 | 
			
		||||
  // Since Google Mock depends on Google Test, InitGoogleMock() is
 | 
			
		||||
  // also responsible for initializing Google Test.  Therefore there's
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,10 @@ using testing::ReturnNull;
 | 
			
		||||
using testing::ReturnRef;
 | 
			
		||||
using testing::SetArgumentPointee;
 | 
			
		||||
using testing::SetArrayArgument;
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
using testing::SetErrnoAndReturn;
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
#if GMOCK_HAS_PROTOBUF_
 | 
			
		||||
using testing::internal::TestMessage;
 | 
			
		||||
@@ -951,6 +954,8 @@ TEST(AssignTest, CompatibleTypes) {
 | 
			
		||||
  EXPECT_DOUBLE_EQ(5, x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
class SetErrnoAndReturnTest : public testing::Test {
 | 
			
		||||
 protected:
 | 
			
		||||
  virtual void SetUp() { errno = 0; }
 | 
			
		||||
@@ -976,4 +981,6 @@ TEST_F(SetErrnoAndReturnTest, CompatibleTypes) {
 | 
			
		||||
  EXPECT_EQ(EINVAL, errno);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
}  // Unnamed namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -116,7 +116,10 @@
 | 
			
		||||
 | 
			
		||||
#include <gmock/gmock.h>
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <gtest/gtest.h>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <vector>
 | 
			
		||||
@@ -161,7 +164,6 @@ using testing::ReturnNull;
 | 
			
		||||
using testing::ReturnRef;
 | 
			
		||||
using testing::SetArgumentPointee;
 | 
			
		||||
using testing::SetArrayArgument;
 | 
			
		||||
using testing::SetErrnoAndReturn;
 | 
			
		||||
using testing::StartsWith;
 | 
			
		||||
using testing::StrCaseEq;
 | 
			
		||||
using testing::StrCaseNe;
 | 
			
		||||
@@ -173,6 +175,10 @@ using testing::WithArg;
 | 
			
		||||
using testing::WithArgs;
 | 
			
		||||
using testing::WithoutArgs;
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
using testing::SetErrnoAndReturn;
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_EXCEPTIONS
 | 
			
		||||
using testing::Throw;
 | 
			
		||||
#endif  // GTEST_HAS_EXCEPTIONS
 | 
			
		||||
@@ -290,6 +296,8 @@ TEST(LinkTest, TestSetArrayArgument) {
 | 
			
		||||
  mock.VoidFromString(&ch);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
// Tests the linkage of the SetErrnoAndReturn action.
 | 
			
		||||
TEST(LinkTest, TestSetErrnoAndReturn) {
 | 
			
		||||
  Mock mock;
 | 
			
		||||
@@ -300,6 +308,8 @@ TEST(LinkTest, TestSetErrnoAndReturn) {
 | 
			
		||||
  errno = saved_errno;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // _WIN32_WCE
 | 
			
		||||
 | 
			
		||||
// Tests the linkage of the Invoke(function) and Invoke(object, method) actions.
 | 
			
		||||
TEST(LinkTest, TestInvoke) {
 | 
			
		||||
  Mock mock;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user