README.md revision 13481
15347Ssaidi@eecs.umich.edu## Google Mock ## 23395Shsul@eecs.umich.edu 33395Shsul@eecs.umich.eduThe Google C++ mocking framework. 43395Shsul@eecs.umich.edu 53395Shsul@eecs.umich.edu### Overview ### 63395Shsul@eecs.umich.edu 73395Shsul@eecs.umich.eduGoogle's framework for writing and using C++ mock classes. 83395Shsul@eecs.umich.eduIt can help you derive better designs of your system and write better tests. 93395Shsul@eecs.umich.edu 103395Shsul@eecs.umich.eduIt is inspired by: 113395Shsul@eecs.umich.edu 123395Shsul@eecs.umich.edu * [jMock](http://www.jmock.org/), 133395Shsul@eecs.umich.edu * [EasyMock](http://www.easymock.org/), and 143395Shsul@eecs.umich.edu * [Hamcrest](http://code.google.com/p/hamcrest/), 153395Shsul@eecs.umich.edu 163395Shsul@eecs.umich.eduand designed with C++'s specifics in mind. 173395Shsul@eecs.umich.edu 183395Shsul@eecs.umich.eduGoogle mock: 193395Shsul@eecs.umich.edu 203395Shsul@eecs.umich.edu * lets you create mock classes trivially using simple macros. 213395Shsul@eecs.umich.edu * supports a rich set of matchers and actions. 223395Shsul@eecs.umich.edu * handles unordered, partially ordered, or completely ordered expectations. 233395Shsul@eecs.umich.edu * is extensible by users. 243395Shsul@eecs.umich.edu 253395Shsul@eecs.umich.eduWe hope you find it useful! 263395Shsul@eecs.umich.edu 273395Shsul@eecs.umich.edu### Features ### 283395Shsul@eecs.umich.edu 293395Shsul@eecs.umich.edu * Provides a declarative syntax for defining mocks. 303509Shsul@eecs.umich.edu * Can easily define partial (hybrid) mocks, which are a cross of real 316654Snate@binkert.org and mock objects. 323395Shsul@eecs.umich.edu * Handles functions of arbitrary types and overloaded functions. 336654Snate@binkert.org * Comes with a rich set of matchers for validating function arguments. 343395Shsul@eecs.umich.edu * Uses an intuitive syntax for controlling the behavior of a mock. 356654Snate@binkert.org * Does automatic verification of expectations (no record-and-replay needed). 366654Snate@binkert.org * Allows arbitrary (partial) ordering constraints on 376654Snate@binkert.org function calls to be expressed,. 383395Shsul@eecs.umich.edu * Lets a user extend it by defining new matchers and actions. 393481Shsul@eecs.umich.edu * Does not use exceptions. 403481Shsul@eecs.umich.edu * Is easy to learn and use. 413481Shsul@eecs.umich.edu 423481Shsul@eecs.umich.eduPlease see the project page above for more information as well as the 435347Ssaidi@eecs.umich.edumailing list for questions, discussions, and development. There is 443481Shsul@eecs.umich.edualso an IRC channel on OFTC (irc.oftc.net) #gtest available. Please 453681Sktlim@umich.edujoin us! 463681Sktlim@umich.edu 473681Sktlim@umich.eduPlease note that code under [scripts/generator](scripts/generator/) is 485347Ssaidi@eecs.umich.edufrom [cppclean](http://code.google.com/p/cppclean/) and released under 495869Sksewell@umich.eduthe Apache License, which is different from Google Mock's license. 505869Sksewell@umich.edu 515869Sksewell@umich.edu## Getting Started ## 525869Sksewell@umich.edu 535869Sksewell@umich.eduIf you are new to the project, we suggest that you read the user 543481Shsul@eecs.umich.edudocumentation in the following order: 555347Ssaidi@eecs.umich.edu 563481Shsul@eecs.umich.edu * Learn the [basics](../googletest/docs/Primer.md) of 573481Shsul@eecs.umich.edu Google Test, if you choose to use Google Mock with it (recommended). 583481Shsul@eecs.umich.edu * Read [Google Mock for Dummies](docs/ForDummies.md). 593481Shsul@eecs.umich.edu * Read the instructions below on how to build Google Mock. 603481Shsul@eecs.umich.edu 613481Shsul@eecs.umich.eduYou can also watch Zhanyong's [talk](http://www.youtube.com/watch?v=sYpCyLI47rM) on Google Mock's usage and implementation. 625369Ssaidi@eecs.umich.edu 633481Shsul@eecs.umich.eduOnce you understand the basics, check out the rest of the docs: 645347Ssaidi@eecs.umich.edu 653481Shsul@eecs.umich.edu * [CheatSheet](docs/CheatSheet.md) - all the commonly used stuff 663481Shsul@eecs.umich.edu at a glance. 673481Shsul@eecs.umich.edu * [CookBook](docs/CookBook.md) - recipes for getting things done, 683481Shsul@eecs.umich.edu including advanced techniques. 693481Shsul@eecs.umich.edu 703481Shsul@eecs.umich.eduIf you need help, please check the 713481Shsul@eecs.umich.edu[KnownIssues](docs/KnownIssues.md) and 723395Shsul@eecs.umich.edu[FrequentlyAskedQuestions](docs/FrequentlyAskedQuestions.md) before 733395Shsul@eecs.umich.eduposting a question on the 743395Shsul@eecs.umich.edu[discussion group](http://groups.google.com/group/googlemock). 754167Sbinkertn@umich.edu 763395Shsul@eecs.umich.edu 773395Shsul@eecs.umich.edu### Using Google Mock Without Google Test ### 783395Shsul@eecs.umich.edu 793511Shsul@eecs.umich.eduGoogle Mock is not a testing framework itself. Instead, it needs a 803395Shsul@eecs.umich.edutesting framework for writing tests. Google Mock works seamlessly 813395Shsul@eecs.umich.eduwith [Google Test](http://code.google.com/p/googletest/), but 823395Shsul@eecs.umich.eduyou can also use it with [any C++ testing framework](googlemock/ForDummies.md#Using_Google_Mock_with_Any_Testing_Framework). 835211Ssaidi@eecs.umich.edu 845211Ssaidi@eecs.umich.edu### Requirements for End Users ### 853395Shsul@eecs.umich.edu 863395Shsul@eecs.umich.eduGoogle Mock is implemented on top of [Google Test]( 873395Shsul@eecs.umich.eduhttp://github.com/google/googletest/), and depends on it. 885370Ssaidi@eecs.umich.eduYou must use the bundled version of Google Test when using Google Mock. 896654Snate@binkert.org 905370Ssaidi@eecs.umich.eduYou can also easily configure Google Mock to work with another testing 915371Shsul@eecs.umich.eduframework, although it will still need Google Test. Please read 926654Snate@binkert.org["Using_Google_Mock_with_Any_Testing_Framework"]( 935370Ssaidi@eecs.umich.edu docs/ForDummies.md#Using_Google_Mock_with_Any_Testing_Framework) 943395Shsul@eecs.umich.edufor instructions. 953395Shsul@eecs.umich.edu 963481Shsul@eecs.umich.eduGoogle Mock depends on advanced C++ features and thus requires a more 973481Shsul@eecs.umich.edumodern compiler. The following are needed to use Google Mock: 986144Sksewell@umich.edu 996144Sksewell@umich.edu#### Linux Requirements #### 1006144Sksewell@umich.edu 1016144Sksewell@umich.edu * GNU-compatible Make or "gmake" 1026641Sksewell@umich.edu * POSIX-standard shell 1036641Sksewell@umich.edu * POSIX(-2) Regular Expressions (regex.h) 1046641Sksewell@umich.edu * C++98-standard-compliant compiler (e.g. GCC 3.4 or newer) 1056641Sksewell@umich.edu 1063481Shsul@eecs.umich.edu#### Windows Requirements #### 1073481Shsul@eecs.umich.edu 1083481Shsul@eecs.umich.edu * Microsoft Visual C++ 8.0 SP1 or newer 1093481Shsul@eecs.umich.edu 1103481Shsul@eecs.umich.edu#### Mac OS X Requirements #### 1115361Srstrong@cs.ucsd.edu 1125369Ssaidi@eecs.umich.edu * Mac OS X 10.4 Tiger or newer 1133481Shsul@eecs.umich.edu * Developer Tools Installed 1146654Snate@binkert.org 1153481Shsul@eecs.umich.edu### Requirements for Contributors ### 1163481Shsul@eecs.umich.edu 1175369Ssaidi@eecs.umich.eduWe welcome patches. If you plan to contribute a patch, you need to 1185369Ssaidi@eecs.umich.edubuild Google Mock and its tests, which has further requirements: 1195369Ssaidi@eecs.umich.edu 1203481Shsul@eecs.umich.edu * Automake version 1.9 or newer 1215311Ssaidi@eecs.umich.edu * Autoconf version 2.59 or newer 1223481Shsul@eecs.umich.edu * Libtool / Libtoolize 1233395Shsul@eecs.umich.edu * Python version 2.3 or newer (for running some of the tests and 1243395Shsul@eecs.umich.edu re-generating certain source files from templates) 1253395Shsul@eecs.umich.edu 1263395Shsul@eecs.umich.edu### Building Google Mock ### 1273478Shsul@eecs.umich.edu 1283395Shsul@eecs.umich.edu#### Preparing to Build (Unix only) #### 1293478Shsul@eecs.umich.edu 1303395Shsul@eecs.umich.eduIf you are using a Unix system and plan to use the GNU Autotools build 1313395Shsul@eecs.umich.edusystem to build Google Mock (described below), you'll need to 1323478Shsul@eecs.umich.educonfigure it now. 1336654Snate@binkert.org 1343395Shsul@eecs.umich.eduTo prepare the Autotools build system: 1353478Shsul@eecs.umich.edu 1363395Shsul@eecs.umich.edu cd googlemock 1373478Shsul@eecs.umich.edu autoreconf -fvi 1383480Shsul@eecs.umich.edu 1395361Srstrong@cs.ucsd.eduTo build Google Mock and your tests that use it, you need to tell your 1405369Ssaidi@eecs.umich.edubuild system where to find its headers and source files. The exact 1415361Srstrong@cs.ucsd.eduway to do it depends on which build system you use, and is usually 1425361Srstrong@cs.ucsd.edustraightforward. 1435361Srstrong@cs.ucsd.edu 1445369Ssaidi@eecs.umich.eduThis section shows how you can integrate Google Mock into your 1455361Srstrong@cs.ucsd.eduexisting build system. 1465361Srstrong@cs.ucsd.edu 1475378Ssaidi@eecs.umich.eduSuppose you put Google Mock in directory `${GMOCK_DIR}` and Google Test 1486654Snate@binkert.orgin `${GTEST_DIR}` (the latter is `${GMOCK_DIR}/gtest` by default). To 1495361Srstrong@cs.ucsd.edubuild Google Mock, create a library build target (or a project as 1505361Srstrong@cs.ucsd.educalled by Visual Studio and Xcode) to compile 1515361Srstrong@cs.ucsd.edu 1525361Srstrong@cs.ucsd.edu ${GTEST_DIR}/src/gtest-all.cc and ${GMOCK_DIR}/src/gmock-all.cc 1535361Srstrong@cs.ucsd.edu 1545361Srstrong@cs.ucsd.eduwith 1555361Srstrong@cs.ucsd.edu 1565361Srstrong@cs.ucsd.edu ${GTEST_DIR}/include and ${GMOCK_DIR}/include 1575361Srstrong@cs.ucsd.edu 1585361Srstrong@cs.ucsd.eduin the system header search path, and 1595361Srstrong@cs.ucsd.edu 1605353Svilas.sridharan@gmail.com ${GTEST_DIR} and ${GMOCK_DIR} 1615353Svilas.sridharan@gmail.com 1625353Svilas.sridharan@gmail.comin the normal header search path. Assuming a Linux-like system and gcc, 1633514Sktlim@umich.edusomething like the following will do: 1643481Shsul@eecs.umich.edu 1656107Ssteve.reinhardt@amd.com g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \ 1666107Ssteve.reinhardt@amd.com -isystem ${GMOCK_DIR}/include -I${GMOCK_DIR} \ 1673395Shsul@eecs.umich.edu -pthread -c ${GTEST_DIR}/src/gtest-all.cc 1683514Sktlim@umich.edu g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \ 1693514Sktlim@umich.edu -isystem ${GMOCK_DIR}/include -I${GMOCK_DIR} \ 1703395Shsul@eecs.umich.edu -pthread -c ${GMOCK_DIR}/src/gmock-all.cc 1713478Shsul@eecs.umich.edu ar -rv libgmock.a gtest-all.o gmock-all.o 1723395Shsul@eecs.umich.edu 1735361Srstrong@cs.ucsd.edu(We need -pthread as Google Test and Google Mock use threads.) 1745369Ssaidi@eecs.umich.edu 1755361Srstrong@cs.ucsd.eduNext, you should compile your test source file with 1765361Srstrong@cs.ucsd.edu${GTEST\_DIR}/include and ${GMOCK\_DIR}/include in the header search 1775361Srstrong@cs.ucsd.edupath, and link it with gmock and any other necessary libraries: 1785361Srstrong@cs.ucsd.edu 1795361Srstrong@cs.ucsd.edu g++ -isystem ${GTEST_DIR}/include -isystem ${GMOCK_DIR}/include \ 1805378Ssaidi@eecs.umich.edu -pthread path/to/your_test.cc libgmock.a -o your_test 1816654Snate@binkert.org 1825369Ssaidi@eecs.umich.eduAs an example, the make/ directory contains a Makefile that you can 1835361Srstrong@cs.ucsd.eduuse to build Google Mock on systems where GNU make is available 1845361Srstrong@cs.ucsd.edu(e.g. Linux, Mac OS X, and Cygwin). It doesn't try to build Google 1855361Srstrong@cs.ucsd.eduMock's own tests. Instead, it just builds the Google Mock library and 1865361Srstrong@cs.ucsd.edua sample test. You can use it as a starting point for your own build 1875361Srstrong@cs.ucsd.eduscript. 1885361Srstrong@cs.ucsd.edu 1895361Srstrong@cs.ucsd.eduIf the default settings are correct for your environment, the 1905361Srstrong@cs.ucsd.edufollowing commands should succeed: 1915361Srstrong@cs.ucsd.edu 1925361Srstrong@cs.ucsd.edu cd ${GMOCK_DIR}/make 1933395Shsul@eecs.umich.edu make 1943395Shsul@eecs.umich.edu ./gmock_test 1955369Ssaidi@eecs.umich.edu 1965361Srstrong@cs.ucsd.eduIf you see errors, try to tweak the contents of 1973395Shsul@eecs.umich.edu[make/Makefile](make/Makefile) to make them go away. 1983395Shsul@eecs.umich.edu 1993395Shsul@eecs.umich.edu### Windows ### 2003395Shsul@eecs.umich.edu 2016654Snate@binkert.orgThe msvc/2005 directory contains VC++ 2005 projects and the msvc/2010 2023395Shsul@eecs.umich.edudirectory contains VC++ 2010 projects for building Google Mock and 2035361Srstrong@cs.ucsd.eduselected tests. 2045361Srstrong@cs.ucsd.edu 2055361Srstrong@cs.ucsd.eduChange to the appropriate directory and run "msbuild gmock.sln" to 2065361Srstrong@cs.ucsd.edubuild the library and tests (or open the gmock.sln in the MSVC IDE). 2076654Snate@binkert.orgIf you want to create your own project to use with Google Mock, you'll 2083395Shsul@eecs.umich.eduhave to configure it to use the `gmock_config` propety sheet. For that: 2095361Srstrong@cs.ucsd.edu 2105361Srstrong@cs.ucsd.edu * Open the Property Manager window (View | Other Windows | Property Manager) 2115361Srstrong@cs.ucsd.edu * Right-click on your project and select "Add Existing Property Sheet..." 2125361Srstrong@cs.ucsd.edu * Navigate to `gmock_config.vsprops` or `gmock_config.props` and select it. 2135361Srstrong@cs.ucsd.edu * In Project Properties | Configuration Properties | General | Additional 2145378Ssaidi@eecs.umich.edu Include Directories, type <path to Google Mock>/include. 2156654Snate@binkert.org 2163395Shsul@eecs.umich.edu### Tweaking Google Mock ### 2175361Srstrong@cs.ucsd.edu 2185369Ssaidi@eecs.umich.eduGoogle Mock can be used in diverse environments. The default 2193395Shsul@eecs.umich.educonfiguration may not work (or may not work well) out of the box in 2205361Srstrong@cs.ucsd.edusome environments. However, you can easily tweak Google Mock by 2215361Srstrong@cs.ucsd.edudefining control macros on the compiler command line. Generally, 2225361Srstrong@cs.ucsd.eduthese macros are named like `GTEST_XYZ` and you define them to either 1 2236654Snate@binkert.orgor 0 to enable or disable a certain feature. 2246654Snate@binkert.org 2253395Shsul@eecs.umich.eduWe list the most frequently used macros below. For a complete list, 2265361Srstrong@cs.ucsd.edusee file [${GTEST\_DIR}/include/gtest/internal/gtest-port.h]( 2275361Srstrong@cs.ucsd.edu../googletest/include/gtest/internal/gtest-port.h). 2285361Srstrong@cs.ucsd.edu 2295361Srstrong@cs.ucsd.edu### Choosing a TR1 Tuple Library ### 2305361Srstrong@cs.ucsd.edu 2315361Srstrong@cs.ucsd.eduGoogle Mock uses the C++ Technical Report 1 (TR1) tuple library 2325361Srstrong@cs.ucsd.eduheavily. Unfortunately TR1 tuple is not yet widely available with all 2335361Srstrong@cs.ucsd.educompilers. The good news is that Google Test 1.4.0+ implements a 2345361Srstrong@cs.ucsd.edusubset of TR1 tuple that's enough for Google Mock's need. Google Mock 2355361Srstrong@cs.ucsd.eduwill automatically use that implementation when the compiler doesn't 2365361Srstrong@cs.ucsd.eduprovide TR1 tuple. 2373999Ssaidi@eecs.umich.edu 2385361Srstrong@cs.ucsd.eduUsually you don't need to care about which tuple library Google Test 2395361Srstrong@cs.ucsd.eduand Google Mock use. However, if your project already uses TR1 tuple, 2405361Srstrong@cs.ucsd.eduyou need to tell Google Test and Google Mock to use the same TR1 tuple 2415361Srstrong@cs.ucsd.edulibrary the rest of your project uses, or the two tuple 2425361Srstrong@cs.ucsd.eduimplementations will clash. To do that, add 2436654Snate@binkert.org 2445361Srstrong@cs.ucsd.edu -DGTEST_USE_OWN_TR1_TUPLE=0 2455361Srstrong@cs.ucsd.edu 2465361Srstrong@cs.ucsd.eduto the compiler flags while compiling Google Test, Google Mock, and 2475361Srstrong@cs.ucsd.eduyour tests. If you want to force Google Test and Google Mock to use 2485361Srstrong@cs.ucsd.edutheir own tuple library, just add 2495361Srstrong@cs.ucsd.edu 2505361Srstrong@cs.ucsd.edu -DGTEST_USE_OWN_TR1_TUPLE=1 2513395Shsul@eecs.umich.edu 2523481Shsul@eecs.umich.eduto the compiler flags instead. 2535361Srstrong@cs.ucsd.edu 2545361Srstrong@cs.ucsd.eduIf you want to use Boost's TR1 tuple library with Google Mock, please 2555361Srstrong@cs.ucsd.edurefer to the Boost website (http://www.boost.org/) for how to obtain 2565361Srstrong@cs.ucsd.eduit and set it up. 2575361Srstrong@cs.ucsd.edu 2585361Srstrong@cs.ucsd.edu### As a Shared Library (DLL) ### 2595361Srstrong@cs.ucsd.edu 2605361Srstrong@cs.ucsd.eduGoogle Mock is compact, so most users can build and link it as a static 2615361Srstrong@cs.ucsd.edulibrary for the simplicity. Google Mock can be used as a DLL, but the 2625361Srstrong@cs.ucsd.edusame DLL must contain Google Test as well. See 2635361Srstrong@cs.ucsd.edu[Google Test's README][gtest_readme] 2645361Srstrong@cs.ucsd.edufor instructions on how to set up necessary compiler settings. 2653395Shsul@eecs.umich.edu 2665361Srstrong@cs.ucsd.edu### Tweaking Google Mock ### 2675361Srstrong@cs.ucsd.edu 2685361Srstrong@cs.ucsd.eduMost of Google Test's control macros apply to Google Mock as well. 2695361Srstrong@cs.ucsd.eduPlease see [Google Test's README][gtest_readme] for how to tweak them. 2705361Srstrong@cs.ucsd.edu 2713395Shsul@eecs.umich.edu### Upgrading from an Earlier Version ### 2723395Shsul@eecs.umich.edu 2733395Shsul@eecs.umich.eduWe strive to keep Google Mock releases backward compatible. 2743395Shsul@eecs.umich.eduSometimes, though, we have to make some breaking changes for the 2753395Shsul@eecs.umich.eduusers' long-term benefits. This section describes what you'll need to 2763481Shsul@eecs.umich.edudo if you are upgrading from an earlier version of Google Mock. 2775361Srstrong@cs.ucsd.edu 2785361Srstrong@cs.ucsd.edu#### Upgrading from 1.1.0 or Earlier #### 2795361Srstrong@cs.ucsd.edu 2805361Srstrong@cs.ucsd.eduYou may need to explicitly enable or disable Google Test's own TR1 2815361Srstrong@cs.ucsd.edutuple library. See the instructions in section "[Choosing a TR1 Tuple 2825361Srstrong@cs.ucsd.eduLibrary](../googletest/#choosing-a-tr1-tuple-library)". 2835361Srstrong@cs.ucsd.edu 2845353Svilas.sridharan@gmail.com#### Upgrading from 1.4.0 or Earlier #### 2855361Srstrong@cs.ucsd.edu 2865361Srstrong@cs.ucsd.eduOn platforms where the pthread library is available, Google Test and 2875361Srstrong@cs.ucsd.eduGoogle Mock use it in order to be thread-safe. For this to work, you 2885072Ssaidi@eecs.umich.edumay need to tweak your compiler and/or linker flags. Please see the 2893481Shsul@eecs.umich.edu"[Multi-threaded Tests](../googletest#multi-threaded-tests 2905072Ssaidi@eecs.umich.edu)" section in file Google Test's README for what you may need to do. 2913395Shsul@eecs.umich.edu 2923395Shsul@eecs.umich.eduIf you have custom matchers defined using `MatcherInterface` or 2933395Shsul@eecs.umich.edu`MakePolymorphicMatcher()`, you'll need to update their definitions to 2943395Shsul@eecs.umich.eduuse the new matcher API ( 2957489Ssteve.reinhardt@amd.com[monomorphic](http://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Monomorphic_Matchers), 2967489Ssteve.reinhardt@amd.com[polymorphic](http://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Polymorphic_Matchers)). 2977489Ssteve.reinhardt@amd.comMatchers defined using `MATCHER()` or `MATCHER_P*()` aren't affected. 2987489Ssteve.reinhardt@amd.com 2997489Ssteve.reinhardt@amd.com### Developing Google Mock ### 3007489Ssteve.reinhardt@amd.com 3017489Ssteve.reinhardt@amd.comThis section discusses how to make your own changes to Google Mock. 3027489Ssteve.reinhardt@amd.com 3037489Ssteve.reinhardt@amd.com#### Testing Google Mock Itself #### 3047489Ssteve.reinhardt@amd.com 3055361Srstrong@cs.ucsd.eduTo make sure your changes work as intended and don't break existing 3065361Srstrong@cs.ucsd.edufunctionality, you'll want to compile and run Google Test's own tests. 3075361Srstrong@cs.ucsd.eduFor that you'll need Autotools. First, make sure you have followed 3085361Srstrong@cs.ucsd.eduthe instructions above to configure Google Mock. 3095369Ssaidi@eecs.umich.eduThen, create a build output directory and enter it. Next, 3105361Srstrong@cs.ucsd.edu 3115369Ssaidi@eecs.umich.edu ${GMOCK_DIR}/configure # try --help for more info 3123395Shsul@eecs.umich.edu 3135361Srstrong@cs.ucsd.eduOnce you have successfully configured Google Mock, the build steps are 3145369Ssaidi@eecs.umich.edustandard for GNU-style OSS packages. 3155361Srstrong@cs.ucsd.edu 3163395Shsul@eecs.umich.edu make # Standard makefile following GNU conventions 3175361Srstrong@cs.ucsd.edu make check # Builds and runs all tests - all should pass. 3185361Srstrong@cs.ucsd.edu 3195361Srstrong@cs.ucsd.eduNote that when building your project against Google Mock, you are building 3203395Shsul@eecs.umich.eduagainst Google Test as well. There is no need to configure Google Test 3215361Srstrong@cs.ucsd.eduseparately. 3225361Srstrong@cs.ucsd.edu 3235361Srstrong@cs.ucsd.edu#### Contributing a Patch #### 3243999Ssaidi@eecs.umich.edu 3255361Srstrong@cs.ucsd.eduWe welcome patches. 3265361Srstrong@cs.ucsd.eduPlease read the [Developer's Guide](docs/DevGuide.md) 3275361Srstrong@cs.ucsd.edufor how you can contribute. In particular, make sure you have signed 3285361Srstrong@cs.ucsd.eduthe Contributor License Agreement, or we won't be able to accept the 3295361Srstrong@cs.ucsd.edupatch. 3305361Srstrong@cs.ucsd.edu 3313999Ssaidi@eecs.umich.eduHappy testing! 3325361Srstrong@cs.ucsd.edu 3335361Srstrong@cs.ucsd.edu[gtest_readme]: ../googletest/README.md "googletest" 3345361Srstrong@cs.ucsd.edu