forked from google/googletest
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request google#512 from google/unification
Unify googlemock into googletest
- Loading branch information
Showing
314 changed files
with
65,882 additions
and
428 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
Changes for 1.7.0: | ||
|
||
* All new improvements in Google Test 1.7.0. | ||
* New feature: matchers DoubleNear(), FloatNear(), | ||
NanSensitiveDoubleNear(), NanSensitiveFloatNear(), | ||
UnorderedElementsAre(), UnorderedElementsAreArray(), WhenSorted(), | ||
WhenSortedBy(), IsEmpty(), and SizeIs(). | ||
* Improvement: Google Mock can now be built as a DLL. | ||
* Improvement: when compiled by a C++11 compiler, matchers AllOf() | ||
and AnyOf() can accept an arbitrary number of matchers. | ||
* Improvement: when compiled by a C++11 compiler, matchers | ||
ElementsAreArray() can accept an initializer list. | ||
* Improvement: when exceptions are enabled, a mock method with no | ||
default action now throws instead crashing the test. | ||
* Improvement: added class testing::StringMatchResultListener to aid | ||
definition of composite matchers. | ||
* Improvement: function return types used in MOCK_METHOD*() macros can | ||
now contain unprotected commas. | ||
* Improvement (potentially breaking): EXPECT_THAT() and ASSERT_THAT() | ||
are now more strict in ensuring that the value type and the matcher | ||
type are compatible, catching potential bugs in tests. | ||
* Improvement: Pointee() now works on an optional<T>. | ||
* Improvement: the ElementsAreArray() matcher can now take a vector or | ||
iterator range as input, and makes a copy of its input elements | ||
before the conversion to a Matcher. | ||
* Improvement: the Google Mock Generator can now generate mocks for | ||
some class templates. | ||
* Bug fix: mock object destruction triggerred by another mock object's | ||
destruction no longer hangs. | ||
* Improvement: Google Mock Doctor works better with newer Clang and | ||
GCC now. | ||
* Compatibility fixes. | ||
* Bug/warning fixes. | ||
|
||
Changes for 1.6.0: | ||
|
||
* Compilation is much faster and uses much less memory, especially | ||
when the constructor and destructor of a mock class are moved out of | ||
the class body. | ||
* New matchers: Pointwise(), Each(). | ||
* New actions: ReturnPointee() and ReturnRefOfCopy(). | ||
* CMake support. | ||
* Project files for Visual Studio 2010. | ||
* AllOf() and AnyOf() can handle up-to 10 arguments now. | ||
* Google Mock doctor understands Clang error messages now. | ||
* SetArgPointee<> now accepts string literals. | ||
* gmock_gen.py handles storage specifier macros and template return | ||
types now. | ||
* Compatibility fixes. | ||
* Bug fixes and implementation clean-ups. | ||
* Potentially incompatible changes: disables the harmful 'make install' | ||
command in autotools. | ||
|
||
Potentially breaking changes: | ||
|
||
* The description string for MATCHER*() changes from Python-style | ||
interpolation to an ordinary C++ string expression. | ||
* SetArgumentPointee is deprecated in favor of SetArgPointee. | ||
* Some non-essential project files for Visual Studio 2005 are removed. | ||
|
||
Changes for 1.5.0: | ||
|
||
* New feature: Google Mock can be safely used in multi-threaded tests | ||
on platforms having pthreads. | ||
* New feature: function for printing a value of arbitrary type. | ||
* New feature: function ExplainMatchResult() for easy definition of | ||
composite matchers. | ||
* The new matcher API lets user-defined matchers generate custom | ||
explanations more directly and efficiently. | ||
* Better failure messages all around. | ||
* NotNull() and IsNull() now work with smart pointers. | ||
* Field() and Property() now work when the matcher argument is a pointer | ||
passed by reference. | ||
* Regular expression matchers on all platforms. | ||
* Added GCC 4.0 support for Google Mock Doctor. | ||
* Added gmock_all_test.cc for compiling most Google Mock tests | ||
in a single file. | ||
* Significantly cleaned up compiler warnings. | ||
* Bug fixes, better test coverage, and implementation clean-ups. | ||
|
||
Potentially breaking changes: | ||
|
||
* Custom matchers defined using MatcherInterface or MakePolymorphicMatcher() | ||
need to be updated after upgrading to Google Mock 1.5.0; matchers defined | ||
using MATCHER or MATCHER_P* aren't affected. | ||
* Dropped support for 'make install'. | ||
|
||
Changes for 1.4.0 (we skipped 1.2.* and 1.3.* to match the version of | ||
Google Test): | ||
|
||
* Works in more environments: Symbian and minGW, Visual C++ 7.1. | ||
* Lighter weight: comes with our own implementation of TR1 tuple (no | ||
more dependency on Boost!). | ||
* New feature: --gmock_catch_leaked_mocks for detecting leaked mocks. | ||
* New feature: ACTION_TEMPLATE for defining templatized actions. | ||
* New feature: the .After() clause for specifying expectation order. | ||
* New feature: the .With() clause for for specifying inter-argument | ||
constraints. | ||
* New feature: actions ReturnArg<k>(), ReturnNew<T>(...), and | ||
DeleteArg<k>(). | ||
* New feature: matchers Key(), Pair(), Args<...>(), AllArgs(), IsNull(), | ||
and Contains(). | ||
* New feature: utility class MockFunction<F>, useful for checkpoints, etc. | ||
* New feature: functions Value(x, m) and SafeMatcherCast<T>(m). | ||
* New feature: copying a mock object is rejected at compile time. | ||
* New feature: a script for fusing all Google Mock and Google Test | ||
source files for easy deployment. | ||
* Improved the Google Mock doctor to diagnose more diseases. | ||
* Improved the Google Mock generator script. | ||
* Compatibility fixes for Mac OS X and gcc. | ||
* Bug fixes and implementation clean-ups. | ||
|
||
Changes for 1.1.0: | ||
|
||
* New feature: ability to use Google Mock with any testing framework. | ||
* New feature: macros for easily defining new matchers | ||
* New feature: macros for easily defining new actions. | ||
* New feature: more container matchers. | ||
* New feature: actions for accessing function arguments and throwing | ||
exceptions. | ||
* Improved the Google Mock doctor script for diagnosing compiler errors. | ||
* Bug fixes and implementation clean-ups. | ||
|
||
Changes for 1.0.0: | ||
|
||
* Initial Open Source release of Google Mock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
######################################################################## | ||
# CMake build script for Google Mock. | ||
# | ||
# To run the tests for Google Mock itself on Linux, use 'make test' or | ||
# ctest. You can select which tests to run using 'ctest -R regex'. | ||
# For more options, run 'ctest --help'. | ||
|
||
# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to | ||
# make it prominent in the GUI. | ||
option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) | ||
|
||
option(gmock_build_tests "Build all of Google Mock's own tests." OFF) | ||
|
||
# A directory to find Google Test sources. | ||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gtest/CMakeLists.txt") | ||
set(gtest_dir gtest) | ||
else() | ||
set(gtest_dir ../gtest) | ||
endif() | ||
|
||
# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build(). | ||
include("${gtest_dir}/cmake/hermetic_build.cmake" OPTIONAL) | ||
|
||
if (COMMAND pre_project_set_up_hermetic_build) | ||
# Google Test also calls hermetic setup functions from add_subdirectory, | ||
# although its changes will not affect things at the current scope. | ||
pre_project_set_up_hermetic_build() | ||
endif() | ||
|
||
######################################################################## | ||
# | ||
# Project-wide settings | ||
|
||
# Name of the project. | ||
# | ||
# CMake files in this project can refer to the root source directory | ||
# as ${gmock_SOURCE_DIR} and to the root binary directory as | ||
# ${gmock_BINARY_DIR}. | ||
# Language "C" is required for find_package(Threads). | ||
project(gmock CXX C) | ||
cmake_minimum_required(VERSION 2.6.2) | ||
|
||
if (COMMAND set_up_hermetic_build) | ||
set_up_hermetic_build() | ||
endif() | ||
|
||
# Instructs CMake to process Google Test's CMakeLists.txt and add its | ||
# targets to the current scope. We are placing Google Test's binary | ||
# directory in a subdirectory of our own as VC compilation may break | ||
# if they are the same (the default). | ||
add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/gtest") | ||
|
||
# Although Google Test's CMakeLists.txt calls this function, the | ||
# changes there don't affect the current scope. Therefore we have to | ||
# call it again here. | ||
config_compiler_and_linker() # from ${gtest_dir}/cmake/internal_utils.cmake | ||
|
||
# Adds Google Mock's and Google Test's header directories to the search path. | ||
include_directories("${gmock_SOURCE_DIR}/include" | ||
"${gmock_SOURCE_DIR}" | ||
"${gtest_SOURCE_DIR}/include" | ||
# This directory is needed to build directly from Google | ||
# Test sources. | ||
"${gtest_SOURCE_DIR}") | ||
|
||
# Summary of tuple support for Microsoft Visual Studio: | ||
# Compiler version(MS) version(cmake) Support | ||
# ---------- ----------- -------------- ----------------------------- | ||
# <= VS 2010 <= 10 <= 1600 Use Google Tests's own tuple. | ||
# VS 2012 11 1700 std::tr1::tuple + _VARIADIC_MAX=10 | ||
# VS 2013 12 1800 std::tr1::tuple | ||
if (MSVC AND MSVC_VERSION EQUAL 1700) | ||
add_definitions(/D _VARIADIC_MAX=10) | ||
endif() | ||
|
||
######################################################################## | ||
# | ||
# Defines the gmock & gmock_main libraries. User tests should link | ||
# with one of them. | ||
|
||
# Google Mock libraries. We build them using more strict warnings than what | ||
# are used for other targets, to ensure that Google Mock can be compiled by | ||
# a user aggressive about warnings. | ||
cxx_library(gmock | ||
"${cxx_strict}" | ||
"${gtest_dir}/src/gtest-all.cc" | ||
src/gmock-all.cc) | ||
|
||
cxx_library(gmock_main | ||
"${cxx_strict}" | ||
"${gtest_dir}/src/gtest-all.cc" | ||
src/gmock-all.cc | ||
src/gmock_main.cc) | ||
|
||
######################################################################## | ||
# | ||
# Google Mock's own tests. | ||
# | ||
# You can skip this section if you aren't interested in testing | ||
# Google Mock itself. | ||
# | ||
# The tests are not built by default. To build them, set the | ||
# gmock_build_tests option to ON. You can do it by running ccmake | ||
# or specifying the -Dgmock_build_tests=ON flag when running cmake. | ||
|
||
if (gmock_build_tests) | ||
# This must be set in the root directory for the tests to be run by | ||
# 'make test' or ctest. | ||
enable_testing() | ||
|
||
############################################################ | ||
# C++ tests built with standard compiler flags. | ||
|
||
cxx_test(gmock-actions_test gmock_main) | ||
cxx_test(gmock-cardinalities_test gmock_main) | ||
cxx_test(gmock_ex_test gmock_main) | ||
cxx_test(gmock-generated-actions_test gmock_main) | ||
cxx_test(gmock-generated-function-mockers_test gmock_main) | ||
cxx_test(gmock-generated-internal-utils_test gmock_main) | ||
cxx_test(gmock-generated-matchers_test gmock_main) | ||
cxx_test(gmock-internal-utils_test gmock_main) | ||
cxx_test(gmock-matchers_test gmock_main) | ||
cxx_test(gmock-more-actions_test gmock_main) | ||
cxx_test(gmock-nice-strict_test gmock_main) | ||
cxx_test(gmock-port_test gmock_main) | ||
cxx_test(gmock-spec-builders_test gmock_main) | ||
cxx_test(gmock_link_test gmock_main test/gmock_link2_test.cc) | ||
cxx_test(gmock_test gmock_main) | ||
|
||
if (CMAKE_USE_PTHREADS_INIT) | ||
cxx_test(gmock_stress_test gmock) | ||
endif() | ||
|
||
# gmock_all_test is commented to save time building and running tests. | ||
# Uncomment if necessary. | ||
# cxx_test(gmock_all_test gmock_main) | ||
|
||
############################################################ | ||
# C++ tests built with non-standard compiler flags. | ||
|
||
cxx_library(gmock_main_no_exception "${cxx_no_exception}" | ||
"${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) | ||
|
||
cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" | ||
"${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) | ||
|
||
if (NOT MSVC OR MSVC_VERSION LESS 1600) # 1600 is Visual Studio 2010. | ||
# Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that | ||
# conflict with our own definitions. Therefore using our own tuple does not | ||
# work on those compilers. | ||
cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}" | ||
"${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) | ||
|
||
cxx_test_with_flags(gmock_use_own_tuple_test "${cxx_use_own_tuple}" | ||
gmock_main_use_own_tuple test/gmock-spec-builders_test.cc) | ||
endif() | ||
|
||
cxx_test_with_flags(gmock-more-actions_no_exception_test "${cxx_no_exception}" | ||
gmock_main_no_exception test/gmock-more-actions_test.cc) | ||
|
||
cxx_test_with_flags(gmock_no_rtti_test "${cxx_no_rtti}" | ||
gmock_main_no_rtti test/gmock-spec-builders_test.cc) | ||
|
||
cxx_shared_library(shared_gmock_main "${cxx_default}" | ||
"${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) | ||
|
||
# Tests that a binary can be built with Google Mock as a shared library. On | ||
# some system configurations, it may not possible to run the binary without | ||
# knowing more details about the system configurations. We do not try to run | ||
# this binary. To get a more robust shared library coverage, configure with | ||
# -DBUILD_SHARED_LIBS=ON. | ||
cxx_executable_with_flags(shared_gmock_test_ "${cxx_default}" | ||
shared_gmock_main test/gmock-spec-builders_test.cc) | ||
set_target_properties(shared_gmock_test_ | ||
PROPERTIES | ||
COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") | ||
|
||
############################################################ | ||
# Python tests. | ||
|
||
cxx_executable(gmock_leak_test_ test gmock_main) | ||
py_test(gmock_leak_test) | ||
|
||
cxx_executable(gmock_output_test_ test gmock) | ||
py_test(gmock_output_test) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# This file contains a list of people who've made non-trivial | ||
# contribution to the Google C++ Mocking Framework project. People | ||
# who commit code to the project are encouraged to add their names | ||
# here. Please keep the list sorted by first names. | ||
|
||
Benoit Sigoure <[email protected]> | ||
Bogdan Piloca <[email protected]> | ||
Chandler Carruth <[email protected]> | ||
Dave MacLachlan <[email protected]> | ||
David Anderson <[email protected]> | ||
Dean Sturtevant | ||
Gene Volovich <[email protected]> | ||
Hal Burch <[email protected]> | ||
Jeffrey Yasskin <[email protected]> | ||
Jim Keller <[email protected]> | ||
Joe Walnes <[email protected]> | ||
Jon Wray <[email protected]> | ||
Keir Mierle <[email protected]> | ||
Keith Ray <[email protected]> | ||
Kostya Serebryany <[email protected]> | ||
Lev Makhlis | ||
Manuel Klimek <[email protected]> | ||
Mario Tanev <[email protected]> | ||
Mark Paskin | ||
Markus Heule <[email protected]> | ||
Matthew Simmons <[email protected]> | ||
Mike Bland <[email protected]> | ||
Neal Norwitz <[email protected]> | ||
Nermin Ozkiranartli <[email protected]> | ||
Owen Carlsen <[email protected]> | ||
Paneendra Ba <[email protected]> | ||
Paul Menage <[email protected]> | ||
Piotr Kaminski <[email protected]> | ||
Russ Rufer <[email protected]> | ||
Sverre Sundsdal <[email protected]> | ||
Takeshi Yoshino <[email protected]> | ||
Vadim Berman <[email protected]> | ||
Vlad Losev <[email protected]> | ||
Wolfgang Klier <[email protected]> | ||
Zhanyong Wan <[email protected]> |
File renamed without changes.
Oops, something went wrong.