Index: testing/gmock/README |
diff --git a/testing/gmock/README b/testing/gmock/README |
deleted file mode 100644 |
index 8e4150aaaac0d53bfac3050ee57f6dfa521e6c75..0000000000000000000000000000000000000000 |
--- a/testing/gmock/README |
+++ /dev/null |
@@ -1,352 +0,0 @@ |
-Google C++ Mocking Framework |
-============================ |
- |
-http://code.google.com/p/googlemock/ |
- |
-Overview |
--------- |
- |
-Google's framework for writing and using C++ mock classes on a variety |
-of platforms (Linux, Mac OS X, Windows, Windows CE, Symbian, etc). |
-Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s |
-specifics in mind, it can help you derive better designs of your |
-system and write better tests. |
- |
-Google Mock: |
- |
-- provides a declarative syntax for defining mocks, |
-- can easily define partial (hybrid) mocks, which are a cross of real |
- and mock objects, |
-- handles functions of arbitrary types and overloaded functions, |
-- comes with a rich set of matchers for validating function arguments, |
-- uses an intuitive syntax for controlling the behavior of a mock, |
-- does automatic verification of expectations (no record-and-replay |
- needed), |
-- allows arbitrary (partial) ordering constraints on |
- function calls to be expressed, |
-- lets a user extend it by defining new matchers and actions. |
-- does not use exceptions, and |
-- is easy to learn and use. |
- |
-Please see the project page above for more information as well as the |
-mailing list for questions, discussions, and development. There is |
-also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please |
-join us! |
- |
-Please note that code under scripts/generator/ is from the cppclean |
-project (http://code.google.com/p/cppclean/) and under the Apache |
-License, which is different from Google Mock's license. |
- |
-Requirements for End Users |
--------------------------- |
- |
-Google Mock is implemented on top of the Google Test C++ testing |
-framework (http://code.google.com/p/googletest/), and includes the |
-latter as part of the SVN repositary and distribution package. You |
-must use the bundled version of Google Test when using Google Mock, or |
-you may get compiler/linker errors. |
- |
-You can also easily configure Google Mock to work with another testing |
-framework of your choice; although it will still need Google Test as |
-an internal dependency. Please read |
-http://code.google.com/p/googlemock/wiki/ForDummies#Using_Google_Mock_with_Any_Testing_Framework |
-for how to do it. |
- |
-Google Mock depends on advanced C++ features and thus requires a more |
-modern compiler. The following are needed to use Google Mock: |
- |
-### Linux Requirements ### |
- |
-These are the base requirements to build and use Google Mock from a source |
-package (as described below): |
- |
- * GNU-compatible Make or "gmake" |
- * POSIX-standard shell |
- * POSIX(-2) Regular Expressions (regex.h) |
- * C++98-standard-compliant compiler (e.g. GCC 3.4 or newer) |
- |
-### Windows Requirements ### |
- |
- * Microsoft Visual C++ 8.0 SP1 or newer |
- |
-### Mac OS X Requirements ### |
- |
- * Mac OS X 10.4 Tiger or newer |
- * Developer Tools Installed |
- |
-Requirements for Contributors |
------------------------------ |
- |
-We welcome patches. If you plan to contribute a patch, you need to |
-build Google Mock and its own tests from an SVN checkout (described |
-below), which has further requirements: |
- |
- * Automake version 1.9 or newer |
- * Autoconf version 2.59 or newer |
- * Libtool / Libtoolize |
- * Python version 2.3 or newer (for running some of the tests and |
- re-generating certain source files from templates) |
- |
-Getting the Source |
------------------- |
- |
-There are two primary ways of getting Google Mock's source code: you |
-can download a stable source release in your preferred archive format, |
-or directly check out the source from our Subversion (SVN) repositary. |
-The SVN checkout requires a few extra steps and some extra software |
-packages on your system, but lets you track development and make |
-patches much more easily, so we highly encourage it. |
- |
-### Source Package ### |
- |
-Google Mock is released in versioned source packages which can be |
-downloaded from the download page [1]. Several different archive |
-formats are provided, but the only difference is the tools needed to |
-extract their contents, and the size of the resulting file. Download |
-whichever you are most comfortable with. |
- |
- [1] http://code.google.com/p/googlemock/downloads/list |
- |
-Once downloaded expand the archive using whichever tools you prefer |
-for that type. This will always result in a new directory with the |
-name "gmock-X.Y.Z" which contains all of the source code. Here are |
-some examples on Linux: |
- |
- tar -xvzf gmock-X.Y.Z.tar.gz |
- tar -xvjf gmock-X.Y.Z.tar.bz2 |
- unzip gmock-X.Y.Z.zip |
- |
-### SVN Checkout ### |
- |
-To check out the main branch (also known as the "trunk") of Google |
-Mock, run the following Subversion command: |
- |
- svn checkout http://googlemock.googlecode.com/svn/trunk/ gmock-svn |
- |
-If you are using a *nix system and plan to use the GNU Autotools build |
-system to build Google Mock (described below), you'll need to |
-configure it now. Otherwise you are done with getting the source |
-files. |
- |
-To prepare the Autotools build system, enter the target directory of |
-the checkout command you used ('gmock-svn') and proceed with the |
-following command: |
- |
- autoreconf -fvi |
- |
-Once you have completed this step, you are ready to build the library. |
-Note that you should only need to complete this step once. The |
-subsequent 'make' invocations will automatically re-generate the bits |
-of the build system that need to be changed. |
- |
-If your system uses older versions of the autotools, the above command |
-will fail. You may need to explicitly specify a version to use. For |
-instance, if you have both GNU Automake 1.4 and 1.9 installed and |
-'automake' would invoke the 1.4, use instead: |
- |
- AUTOMAKE=automake-1.9 ACLOCAL=aclocal-1.9 autoreconf -fvi |
- |
-Make sure you're using the same version of automake and aclocal. |
- |
-Setting up the Build |
--------------------- |
- |
-To build Google Mock and your tests that use it, you need to tell your |
-build system where to find its headers and source files. The exact |
-way to do it depends on which build system you use, and is usually |
-straightforward. |
- |
-### Generic Build Instructions ### |
- |
-This section shows how you can integrate Google Mock into your |
-existing build system. |
- |
-Suppose you put Google Mock in directory ${GMOCK_DIR} and Google Test |
-in ${GTEST_DIR} (the latter is ${GMOCK_DIR}/gtest by default). To |
-build Google Mock, create a library build target (or a project as |
-called by Visual Studio and Xcode) to compile |
- |
- ${GTEST_DIR}/src/gtest-all.cc and ${GMOCK_DIR}/src/gmock-all.cc |
- |
-with |
- |
- ${GTEST_DIR}/include, ${GTEST_DIR}, ${GMOCK_DIR}/include, and ${GMOCK_DIR} |
- |
-in the header search path. Assuming a Linux-like system and gcc, |
-something like the following will do: |
- |
- g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -I${GMOCK_DIR}/include \ |
- -I${GMOCK_DIR} -c ${GTEST_DIR}/src/gtest-all.cc |
- g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -I${GMOCK_DIR}/include \ |
- -I${GMOCK_DIR} -c ${GMOCK_DIR}/src/gmock-all.cc |
- ar -rv libgmock.a gtest-all.o gmock-all.o |
- |
-Next, you should compile your test source file with |
-${GTEST_DIR}/include and ${GMOCK_DIR}/include in the header search |
-path, and link it with gmock and any other necessary libraries: |
- |
- g++ -I${GTEST_DIR}/include -I${GMOCK_DIR}/include \ |
- path/to/your_test.cc libgmock.a -o your_test |
- |
-As an example, the make/ directory contains a Makefile that you can |
-use to build Google Mock on systems where GNU make is available |
-(e.g. Linux, Mac OS X, and Cygwin). It doesn't try to build Google |
-Mock's own tests. Instead, it just builds the Google Mock library and |
-a sample test. You can use it as a starting point for your own build |
-script. |
- |
-If the default settings are correct for your environment, the |
-following commands should succeed: |
- |
- cd ${GMOCK_DIR}/make |
- make |
- ./gmock_test |
- |
-If you see errors, try to tweak the contents of make/Makefile to make |
-them go away. There are instructions in make/Makefile on how to do |
-it. |
- |
-### Windows ### |
- |
-The msvc/ directory contains VC++ 2005 projects for building Google |
-Mock and selected tests. |
- |
-Open msvc/gmock.sln and build the library and tests. If you want to |
-create your own project to use with Google Mock, you'll have to |
-configure it to use the gmock_config propety sheet. For that: |
- |
- * Open the Property Manager window (View | Other Windows | Property Manager) |
- * Right-click on your project and select "Add Existing Property Sheet..." |
- * Navigate to gmock_config.vsprops and select it. |
- * In Project Properties | Configuration Properties | General | Additional |
- Include Directories, type <path to Google Mock>/include. |
- |
-Tweaking Google Mock |
--------------------- |
- |
-Google Mock can be used in diverse environments. The default |
-configuration may not work (or may not work well) out of the box in |
-some environments. However, you can easily tweak Google Mock by |
-defining control macros on the compiler command line. Generally, |
-these macros are named like GTEST_XYZ and you define them to either 1 |
-or 0 to enable or disable a certain feature. |
- |
-We list the most frequently used macros below. For a complete list, |
-see file ${GTEST_DIR}/include/gtest/internal/gtest-port.h. |
- |
-### Choosing a TR1 Tuple Library ### |
- |
-Google Mock uses the C++ Technical Report 1 (TR1) tuple library |
-heavily. Unfortunately TR1 tuple is not yet widely available with all |
-compilers. The good news is that Google Test 1.4.0+ implements a |
-subset of TR1 tuple that's enough for Google Mock's need. Google Mock |
-will automatically use that implementation when the compiler doesn't |
-provide TR1 tuple. |
- |
-Usually you don't need to care about which tuple library Google Test |
-and Google Mock use. However, if your project already uses TR1 tuple, |
-you need to tell Google Test and Google Mock to use the same TR1 tuple |
-library the rest of your project uses, or the two tuple |
-implementations will clash. To do that, add |
- |
- -DGTEST_USE_OWN_TR1_TUPLE=0 |
- |
-to the compiler flags while compiling Google Test, Google Mock, and |
-your tests. If you want to force Google Test and Google Mock to use |
-their own tuple library, just add |
- |
- -DGTEST_USE_OWN_TR1_TUPLE=1 |
- |
-to the compiler flags instead. |
- |
-If you want to use Boost's TR1 tuple library with Google Mock, please |
-refer to the Boost website (http://www.boost.org/) for how to obtain |
-it and set it up. |
- |
-### Tweaking Google Test ### |
- |
-Most of Google Test's control macros apply to Google Mock as well. |
-Please see file ${GTEST_DIR}/README for how to tweak them. |
- |
-Upgrading from an Earlier Version |
---------------------------------- |
- |
-We strive to keep Google Mock releases backward compatible. |
-Sometimes, though, we have to make some breaking changes for the |
-users' long-term benefits. This section describes what you'll need to |
-do if you are upgrading from an earlier version of Google Mock. |
- |
-### Upgrading from 1.1.0 or Earlier ### |
- |
-You may need to explicitly enable or disable Google Test's own TR1 |
-tuple library. See the instructions in section "Choosing a TR1 Tuple |
-Library". |
- |
-### Upgrading from 1.4.0 or Earlier ### |
- |
-On platforms where the pthread library is available, Google Test and |
-Google Mock use it in order to be thread-safe. For this to work, you |
-may need to tweak your compiler and/or linker flags. Please see the |
-"Multi-threaded Tests" section in file ${GTEST_DIR}/README for what |
-you may need to do. |
- |
-If you have custom matchers defined using MatcherInterface or |
-MakePolymorphicMatcher(), you'll need to update their definitions to |
-use the new matcher API [2]. Matchers defined using MATCHER() or |
-MATCHER_P*() aren't affected. |
- |
- [2] http://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Monomorphic_Matchers, |
- http://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Polymorphic_Matchers |
- |
-Developing Google Mock |
----------------------- |
- |
-This section discusses how to make your own changes to Google Mock. |
- |
-### Testing Google Mock Itself ### |
- |
-To make sure your changes work as intended and don't break existing |
-functionality, you'll want to compile and run Google Test's own tests. |
-For that you'll need Autotools. First, make sure you have followed |
-the instructions in section "SVN Checkout" to configure Google Mock. |
-Then, create a build output directory and enter it. Next, |
- |
- ${GMOCK_DIR}/configure # Standard GNU configure script, --help for more info |
- |
-Once you have successfully configured Google Mock, the build steps are |
-standard for GNU-style OSS packages. |
- |
- make # Standard makefile following GNU conventions |
- make check # Builds and runs all tests - all should pass. |
- |
-Note that when building your project against Google Mock, you are building |
-against Google Test as well. There is no need to configure Google Test |
-separately. |
- |
-### Regenerating Source Files ### |
- |
-Some of Google Mock's source files are generated from templates (not |
-in the C++ sense) using a script. A template file is named FOO.pump, |
-where FOO is the name of the file it will generate. For example, the |
-file include/gmock/gmock-generated-actions.h.pump is used to generate |
-gmock-generated-actions.h in the same directory. |
- |
-Normally you don't need to worry about regenerating the source files, |
-unless you need to modify them. In that case, you should modify the |
-corresponding .pump files instead and run the 'pump' script (for Pump |
-is Useful for Meta Programming) to regenerate them. You can find |
-pump.py in the ${GTEST_DIR}/scripts/ directory. Read the Pump manual |
-[3] for how to use it. |
- |
- [3] http://code.google.com/p/googletest/wiki/PumpManual. |
- |
-### Contributing a Patch ### |
- |
-We welcome patches. Please read the Google Mock developer's guide [4] |
-for how you can contribute. In particular, make sure you have signed |
-the Contributor License Agreement, or we won't be able to accept the |
-patch. |
- |
- [4] http://code.google.com/p/googlemock/wiki/DevGuide |
- |
-Happy testing! |