gmock_test.cc revision dc0f95d653279beabeb9817299e2902918ba123e
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright 2008, Google Inc. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// All rights reserved. 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Redistribution and use in source and binary forms, with or without 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// modification, are permitted provided that the following conditions are 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// met: 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// * Redistributions of source code must retain the above copyright 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// notice, this list of conditions and the following disclaimer. 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// * Redistributions in binary form must reproduce the above 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// copyright notice, this list of conditions and the following disclaimer 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// in the documentation and/or other materials provided with the 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// distribution. 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// * Neither the name of Google Inc. nor the names of its 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// contributors may be used to endorse or promote products derived from 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// this software without specific prior written permission. 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Author: wan@google.com (Zhanyong Wan) 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Google Mock - a framework for writing C++ mock classes. 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This file tests code in gmock.cc. 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "gmock/gmock.h" 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string> 39dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "gtest/gtest.h" 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing testing::GMOCK_FLAG(verbose); 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing testing::InitGoogleMock; 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing testing::internal::g_init_gtest_count; 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Verifies that calling InitGoogleMock() on argv results in new_argv, 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// and the gmock_verbose flag's value is set to expected_gmock_verbose. 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochtemplate <typename Char, int M, int N> 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid TestInitGoogleMock(const Char* (&argv)[M], const Char* (&new_argv)[N], 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const ::std::string& expected_gmock_verbose) { 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const ::std::string old_verbose = GMOCK_FLAG(verbose); 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int argc = M; 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch InitGoogleMock(&argc, const_cast<Char**>(argv)); 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_EQ(N, argc) << "The new argv has wrong number of elements."; 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch for (int i = 0; i < N; i++) { 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_STREQ(new_argv[i], argv[i]); 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(expected_gmock_verbose, GMOCK_FLAG(verbose).c_str()); 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GMOCK_FLAG(verbose) = old_verbose; // Restores the gmock_verbose flag. 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(InitGoogleMockTest, ParsesInvalidCommandLine) { 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* argv[] = { 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* new_argv[] = { 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(InitGoogleMockTest, ParsesEmptyCommandLine) { 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* argv[] = { 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* new_argv[] = { 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(InitGoogleMockTest, ParsesSingleFlag) { 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* argv[] = { 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--gmock_verbose=info", 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* new_argv[] = { 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, "info"); 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(InitGoogleMockTest, ParsesUnrecognizedFlag) { 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* argv[] = { 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--non_gmock_flag=blah", 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* new_argv[] = { 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--non_gmock_flag=blah", 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 118c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(InitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag) { 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* argv[] = { 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--non_gmock_flag=blah", 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--gmock_verbose=error", 126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* new_argv[] = { 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--non_gmock_flag=blah", 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 134c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 135c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, "error"); 136c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(InitGoogleMockTest, CallsInitGoogleTest) { 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const int old_init_gtest_count = g_init_gtest_count; 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* argv[] = { 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--non_gmock_flag=blah", 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--gmock_verbose=error", 144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 147c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* new_argv[] = { 148c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "foo.exe", 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "--non_gmock_flag=blah", 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 153c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, "error"); 154c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(old_init_gtest_count + 1, g_init_gtest_count); 155c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 156c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 157c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(WideInitGoogleMockTest, ParsesInvalidCommandLine) { 158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* argv[] = { 159c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 161c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* new_argv[] = { 163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 166c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); 167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 168c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 169c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(WideInitGoogleMockTest, ParsesEmptyCommandLine) { 170c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* argv[] = { 171c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 172c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 173c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 174c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* new_argv[] = { 176c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 177c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 178c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 179c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 180c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); 181c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 182c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 183c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(WideInitGoogleMockTest, ParsesSingleFlag) { 184c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* argv[] = { 185c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 186c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--gmock_verbose=info", 187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 188c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 189c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 190c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* new_argv[] = { 191c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 192c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 193c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 194c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 195c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, "info"); 196c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 197c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 198c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(WideInitGoogleMockTest, ParsesUnrecognizedFlag) { 199c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* argv[] = { 200c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 201c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--non_gmock_flag=blah", 202c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 203c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 204c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 205c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* new_argv[] = { 206c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 207c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--non_gmock_flag=blah", 208c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 209c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 210c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 211c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); 212c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 213c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 214c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(WideInitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag) { 215c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* argv[] = { 216c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 217c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--non_gmock_flag=blah", 218c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--gmock_verbose=error", 219c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 220c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 221c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 222c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* new_argv[] = { 223c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 224c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--non_gmock_flag=blah", 225c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 226c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 227c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 228c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, "error"); 229c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 230c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 231c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(WideInitGoogleMockTest, CallsInitGoogleTest) { 232c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const int old_init_gtest_count = g_init_gtest_count; 233c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* argv[] = { 234c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 235c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--non_gmock_flag=blah", 236c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--gmock_verbose=error", 237c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 238c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 239c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 240c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* new_argv[] = { 241c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"foo.exe", 242c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch L"--non_gmock_flag=blah", 243c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL 244c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 245c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 246c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestInitGoogleMock(argv, new_argv, "error"); 247c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(old_init_gtest_count + 1, g_init_gtest_count); 248c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 249c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 250c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Makes sure Google Mock flags can be accessed in code. 251c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(FlagTest, IsAccessibleInCode) { 252c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch bool dummy = testing::GMOCK_FLAG(catch_leaked_mocks) && 253c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch testing::GMOCK_FLAG(verbose) == ""; 254dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen (void)dummy; // Avoids the "unused local variable" warning. 255c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 256