We include a snapshot of gmock from http://googlemock.googlecode.com/svn/trunk with chromium.patch applied. Current revision: 157 -- HOW TO USE -- If you are unfamiliar with gmock, there is an example of how to write a test based on gmock in base/gmock_unittest.cc. To use gmock, just add a dependency onto testing/gmock.gyp:gmock in your gyp target. For more general informaiton, there is a lot of good documentation availble on the googlemock website: http://code.google.com/p/googlemock/ In particular, the "For Dummies" guide is a good place to start. The "CheatSheet" and "CookBook" are better as references. -- RECREATING PACKAGE -- Gmock requires tr1 tuple. However, Visual Studio 2005 does not include tr1 tuple, so a version of boost tuple was added into the third_party tree for chromium. Our version of gmock has been patched to search for this version of tuple inside our source tree. chromium.patch modifies gmock/include/gmock/internal/gmock-port.h so that for _MSC_VER < 1500 (anything newer than Visual Studio 2008), boost tuple is loaded from boost/tr1/tr1/tuple. To recreate this install, do the following: *1) Checkout a copy from svn trunk using --ignore-externals to avoid getting an extra copy of gtest. Use the following command: svn export --ignore-externals \ http://googlemock.googlecode.com/svn/trunk/ gmock 2) Patch it with chromium.patch. * Pass -r [revision number] to svn export if you want a specific revision. The current revision of the source is listed at the top of the README. -- ALTERNATIVES TO PATCHING -- The patching of gmock to use boost in VS2005 was settled upon as the lowest impact solution for getting gmock working in VS2005. Patching gmock trades making some assumptions regarding the internal implementations of gmock and boost for a simple, easy to underatnd, implementation that provides relatively good insulation for the rest of the build from the boost dependency. Alternate soltuions are: 1) Drop support for VS2005 -- too heavy-handed. 2) Add a "tuple" file parallel to gmock-port.h -- still makes assumptions about boost's structure. 3) Add boost/tr1/tr1 into the include path -- dirties the include path for all dependencies.